Skip to content

JS: Accept MaD sanitizers for queries with MaD sinks#21336

Open
owen-mc wants to merge 3 commits intogithub:mainfrom
owen-mc:js/accept-mad-sanitizers
Open

JS: Accept MaD sanitizers for queries with MaD sinks#21336
owen-mc wants to merge 3 commits intogithub:mainfrom
owen-mc:js/accept-mad-sanitizers

Conversation

@owen-mc
Copy link
Contributor

@owen-mc owen-mc commented Feb 17, 2026

I looked through all the existing sanitizers but didn't find any more that could be converted.

Note that two sanitizers for one query were converted in #21004, but actually I have found it necessary to revert the commits for that. The problem is that there isn't a natural sink kind for the query (js/incomplete-html-attribute-sanitization). request-forgery was used, but one of those two methods should not be sanitizers for request forgery.

Copilot AI review requested due to automatic review settings February 17, 2026 12:47
@owen-mc owen-mc requested a review from a team as a code owner February 17, 2026 12:47
@owen-mc owen-mc added the no-change-note-required This PR does not need a change note label Feb 17, 2026
@github-actions github-actions bot added the JS label Feb 17, 2026
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

This PR adds support for MaD (Models-as-Data) sanitizers/barriers to JavaScript security queries, following the pattern established in Python (PR #21004). The change enables external model contributors to define sanitizers for security queries that already use MaD sinks.

Changes:

  • Added SanitizerFromModel classes to 14 JavaScript security query customization files
  • Each sanitizer uses ModelOutput::barrierNode with a kind matching the corresponding SinkFromModel kind
  • HardcodedCredentials uses a special pattern to match multiple credential types (credentials-key, credentials-password, credentials-username)

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
UnsafeDeserializationCustomizations.qll Adds MaD sanitizer support for "unsafe-deserialization" kind
TaintedPathCustomizations.qll Adds MaD sanitizer support for "path-injection" kind
SqlInjectionCustomizations.qll Adds MaD sanitizer support for "sql-injection" kind
ServerSideUrlRedirectCustomizations.qll Adds MaD sanitizer support for "url-redirection" kind
RequestForgeryCustomizations.qll Adds MaD sanitizer support for "request-forgery" kind
ReflectedXssCustomizations.qll Adds MaD sanitizer support for "html-injection" kind
NosqlInjectionCustomizations.qll Adds MaD sanitizer support for "nosql-injection" kind
LogInjectionQuery.qll Adds MaD sanitizer support for "log-injection" kind
HardcodedCredentialsCustomizations.qll Adds MaD sanitizer support for "credentials-*" kinds with documentation explaining that all credential sanitizers work for all credential sink types
DomBasedXssCustomizations.qll Adds MaD sanitizer support for "html-injection" kind
CommandInjectionCustomizations.qll Adds MaD sanitizer support for "command-injection" kind
CodeInjectionCustomizations.qll Adds MaD sanitizer support for "code-injection" kind
ClientSideUrlRedirectCustomizations.qll Adds MaD sanitizer support for "url-redirection" kind
CorsPermissiveConfigurationCustomizations.qll Adds MaD sanitizer support for "cors-origin" kind

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

JS no-change-note-required This PR does not need a change note

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments