Skip to content

Adds a local source for separate Control implementations.#329

Merged
data-douser merged 9 commits intomainfrom
mbaluda/control-source
Mar 18, 2026
Merged

Adds a local source for separate Control implementations.#329
data-douser merged 9 commits intomainfrom
mbaluda/control-source

Conversation

@mbaluda
Copy link
Contributor

@mbaluda mbaluda commented Mar 12, 2026

This pull request introduces improved detection of XSS vulnerabilities in UI5 custom controls, especially when string properties are used and the control implementation is separated from the main UI5 app.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the UI5 XSS query test expectations to account for a newly introduced “local source” representing custom control property metadata, so that XSS flows are also reported when the tainted value is modeled as coming from a custom control’s (string) property definition.

Changes:

  • Added a new DomBasedXss::Source (LocalModelStringPropertySource) in UI5DataFlow.qll that maps a binding path’s target property to the corresponding custom control PropertyMetadata.
  • Updated multiple UI5Xss.expected files to include the additional result path where the source is the custom control property metadata (e.g., { type: "string" }).

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
javascript/frameworks/ui5/lib/advanced_security/javascript/frameworks/ui5/dataflow/UI5DataFlow.qll Adds a new “local” source class based on custom control property metadata reached from a binding path.
javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer/UI5Xss.expected Adds an additional expected result selecting the custom control property metadata as the source.
javascript/frameworks/ui5/test/queries/UI5Xss/xss-separate-renderer-byname/UI5Xss.expected Same as above for renderer resolved by name.
javascript/frameworks/ui5/test/queries/UI5Xss/xss-indirect-control/UI5Xss.expected Same as above for indirect control inheritance case.
javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-jquery/UI5Xss.expected Same as above for jQuery-based custom control variant.
javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api1/UI5Xss.expected Same as above for API v1-style renderer access.
javascript/frameworks/ui5/test/queries/UI5Xss/xss-custom-control-api2/UI5Xss.expected Same as above for API v2-style renderer access.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

@mbaluda mbaluda marked this pull request as ready for review March 12, 2026 15:03
Copy link
Contributor

@knewbury01 knewbury01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@mbaluda mbaluda self-assigned this Mar 13, 2026
@data-douser data-douser enabled auto-merge (squash) March 18, 2026 15:08
@data-douser data-douser merged commit e54e3fb into main Mar 18, 2026
15 checks passed
@data-douser data-douser deleted the mbaluda/control-source branch March 18, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants