Skip to content

Expand CAP and UI5 analysis - #460

Merged
mbaluda merged 7 commits into
mainfrom
fix/restore-ui5-sink-sharing
Oct 28, 2026
Merged

mbaluda merged 7 commits into
mainfrom
fix/restore-ui5-sink-sharing

Conversation

@mbaluda

@mbaluda mbaluda commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

What This PR Contributes

Reintroduces the CAP and UI5 security-analysis improvements from #456, #450, and #459, while keeping sink sharing with standard queries close to its historical behavior.

  • Broader CQL injection detection in CAP applications
    • Detects user input that controls query structure, including entities, selected columns, conditions, grouping, ordering, aliases, and database hints across read and write operations.
    • Distinguishes unsafe query construction from safely bound values, including tagged templates and fixed-key object predicates.
    • Clarifies the query help: parameter binding protects values, while structural inputs need validation against allowed choices.
  • Detection of sensitive CAP data written to logs
    • Tracks personal or sensitive CDS fields from query results into CAP and standard application loggers.
    • Handles query variables, projections, aliases, and collections, while excluding fields known to be non-sensitive.
  • More complete UI5 model, binding, and rendering coverage
    • Tracks input through JSON and XML models declared in manifests, inferred from data sources, or assigned programmatically.
    • Supports bindings across XML, JSON, HTML, and JavaScript views, including relative paths, nested lists, static binding contexts, and fragment references.
    • Keeps model paths and owning controllers, views, components, and applications separate to avoid unrelated flows.
    • Improves detection of input reaching native jQuery HTML operations through UI5 control and element lookups, fluent chains, and callbacks.
    • Retains checks for safe output, binding modes, getter return types, and unrelated model properties.

mbaluda and others added 2 commits October 16, 2026 16:33
Keep standard-query sink sharing close to a2a5461 while retaining newer UI5 query models. Clarify CQL value parameterization in query help.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Record the rollback on main without changing the saved feature tree, so the follow-up pull request shows the complete reintroduction of the CAP and UI5 analysis improvements.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 16, 2026 14:49
@mbaluda mbaluda changed the title Expand CAP and UI5 analysis with historical sink sharing Expand CAP and UI5 analysis Oct 16, 2026

This comment was marked as resolved.

@mbaluda mbaluda added the javascript Pull requests that update javascript code label Oct 22, 2026
Copilot AI balanced review requested due to automatic review settings October 22, 2026 12:55

This comment was marked as resolved.

Restore client-side URL redirect sink sharing, include UI5 browser sources in regex-injection analysis, and resolve legacy localResources registrations. Add focused tests while retaining control ownership checks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 26, 2026 18:35

This comment was marked as resolved.

Apply conservative metadata barriers and support named/aliased loader factories.
Expand request-forgery opt-in coverage and private imports, and fix JSON/JS
fixtures. This refresh follows 20 passing focused CodeQL tests and real
OpenUI5 1.148.0 browser checks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 27, 2026 12:21
Source workflow run: 40503187335
Two intentional new any-property findings are included. Total results: 282. SARIF diff: zero.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

This comment was marked as resolved.

Copilot AI balanced review requested due to automatic review settings October 27, 2026 12:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The changes require final human review because they are too complex or risky for automated approval.

No open issues 🎉

1 file not reviewed
  • javascript/frameworks/ui5/test/queries/UI5Xss/xss-searchfield-jquery-html/package-lock.json: Generated file

Review effort: Balanced

@mbaluda
mbaluda marked this pull request as ready for review October 27, 2026 13:19
Copilot AI balanced review requested due to automatic review settings October 27, 2026 16:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

One or more issues must be addressed before approval.

1 open issue
1 file not reviewed
  • javascript/frameworks/ui5/test/queries/UI5Xss/xss-searchfield-jquery-html/package-lock.json: Generated file

Review effort: Balanced

@mbaluda
mbaluda enabled auto-merge (squash) October 28, 2026 11:15
@mbaluda
mbaluda requested a review from a team October 28, 2026 11:19
@mbaluda
mbaluda merged commit 97aec10 into main Oct 28, 2026
20 checks passed
@mbaluda
mbaluda deleted the fix/restore-ui5-sink-sharing branch October 28, 2026 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants