| Version | Supported |
|---|---|
| Latest release | Yes |
| Previous releases | No |
We recommend always using the latest version of abap2UI5. "Latest release"
is the newest entry on the releases page;
an installation reads its own version from the version constant in
z2ui5_if_app.
We take security issues seriously. If you discover a security vulnerability, please report it responsibly.
Do not open a public GitHub issue for security vulnerabilities.
Instead, please use the GitHub Security Advisory "Report a Vulnerability" tab.
- A description of the vulnerability
- Steps to reproduce the issue
- The potential impact
- Any suggested fixes (optional)
- Acknowledgment: Within 3 business days
- Initial assessment: Within 7 business days
- Resolution target: Depends on severity, typically within 30 days
- Report the vulnerability via GitHub Security Advisory
- We will acknowledge receipt and begin investigation
- We will work with you to understand and validate the issue
- A fix will be developed and tested
- A security advisory will be published with the fix release
This policy applies to the abap2UI5 core framework (src/ directory). For vulnerabilities in dependencies or related repositories, please report them to the respective maintainers.
Note that the UI5 frontend under app/webapp/ is in scope here, even
though it looks like a separate deliverable: it is authored in this
repository and vendored into src/01/03/ as the embedded frontend every
installation serves.
The following are deliberate design decisions of the framework, not vulnerabilities. A report that reduces to one of them will be answered with this section - which is exactly why it exists here, where external reporters look first.
- A draft id is not a secret, and does not have to be. It travels in
bookmark URLs and the clipboard app-state. Access to the serialized app
state is bound to the creating user (
UNAMEonZ2UI5_T_01, enforced fail-closed on read, existence checks and the create/upsert path); a leaked or guessed id degrades to a fresh app start for anyone else. - App-start authorization is the app's job. Any class implementing
z2ui5_if_appcan be started via URL parameter or hash route; the framework performs noAUTHORITY-CHECKof its own. An app that needs one performs it in itsmain( )method. - The backend response is trusted by the frontend.
follow_up_actiondeliberately lets the ABAP app hand the browser JavaScript to execute; every bound attribute is writable from the client by design. Whoever can change ABAP app code can run code in the user's browser - that is the product, not a flaw. - Error details are visible by default. The 500 body renders the full
exception chain (class names, source positions, kernel ids, and the
public attributes of every exception in the chain) for diagnosability;
hardened installations turn this off via the user exit
(
check_hide_error_details). Host name, client and user are never part of the body. Be aware that the attribute dump renders whatever a customer's or SAP's exception classes carry - an installation whose exceptions hold sensitive payloads belongs in the hardened camp. - The default CSP carries
unsafe-inline/unsafe-evalbecause UI5 1.71 requires them; an exit can replace the whole policy, including switching to a realContent-Security-Policyresponse header viat_security_header.data:/blob:sources are confined to the non-script directives (an explicitscript-srcshadows thedefault-srcfallback). - The default bootstrap loads UI5 from a public CDN
(
sdk.openui5.org) so a fresh installation runs with zero configuration. That makes the CDN a trusted party of the DEFAULT setup: it serves the entire JS runtime into an authenticated SAP session, and no integrity pinning is possible against a cachebuster URL. Productive installations should repointcs_config-srcin their exit to an on-stack or otherwise controlled UI5 (/sap/public/bc/ui5_ui5/resources/sap-ui-core.json systems that ship it) - the default CSP allows only the UI5 CDN hosts, nothing else (npm run check:cspholds this claim, and the script-src one above, to the shipped source).
We appreciate responsible disclosure and will credit reporters in the security advisory (unless you prefer to remain anonymous).