StartedApr 13, 2026, 8:07 PM
EndedApr 13, 2026, 8:09 PM
Casecase_2db7f1c9331a45f29cb2976cc30f2bc9
Modelgpt-5.4
Context
Blind label
—
Advisory
GHSA-cjmm-f4jc-qw8r • DOMPurify ADD_ATTR predicate skips URI validation
Judge score
n/a
Prompt1,391 chars
Blind label: blind_e83293d45da9
Answer key:
{
"advisoryGhsaId": "GHSA-cjmm-f4jc-qw8r",
"repoFullName": "cure53/DOMPurify",
"checkoutRef": "3.3.2",
"checkoutRefKind": "tag",
"vulnerabilityClasses": [
"dom-based xss",
"uri validation bypass"
],
"expectedComponents": [
"_isValidAttribute attribute validation logic",
"EXTRA_ELEMENT_HANDLING.attributeCheck / ADD_ATTR predicate handling"
],
"sinkPaths": [
"src/purify.ts"
],
"requiredEvidence": [
"`_isValidAttribute` has a predicate-based allow/accept path tied to `EXTRA_ELEMENT_HANDLING.attributeCheck` or `ADD_ATTR`",
"that allow path returns or short-circuits before the normal URI/protocol safety validation for attributes such as `href` runs",
"because of the short-circuit, an accepted `href` on an anchor can retain a `javascript:` URL through sanitization"
],
"disallowedClaims": [
"remote code execution",
"sql injection",
"server-side request forgery"
],
"notes": [
"Use the advisory text as ground truth: the issue is specifically that predicate-based attribute acceptance skips later URI validation.",
"The benchmark checkout was supplied as tag `3.3.2` even though the advisory metadata states `<= 3.3.1` is vulnerable and `3.3.2` is first patched; judge findings against the described sink behavior, not against speculative version claims."
]
}OutputJSON
{
"overallScore": 93,
"verdict": "excellent",
"normalizedFindingCount": 1,
"dimensionScores": [
{
"key": "target-alignment",
"score": 29,
"rationale": "Correctly identifies the vulnerable subsystem and sink-bearing path in `src/purify.ts`, centering the issue on `_isValidAttribute` and the predicate-based allow path for `EXTRA_ELEMENT_HANDLING.attributeCheck` / functional `ADD_ATTR`. This matches the advisory’s expected components very closely."
},
{
"key": "source-to-sink-reasoning",
"score": 29,
"rationale": "Provides the required reasoning that attacker-controlled markup with `href=\"javascript:...\"` reaches `_isValidAttribute`, that the custom predicate returns true based on attribute/tag, and that this short-circuits later URI/protocol validation before returning true. This is the core advisory mechanism."
},
{
"key": "impact-and-exploitability",
"score": 18,
"rationale": "Impact is described credibly as DOM-based XSS via preserved `javascript:` URLs in sanitized output, which is proportional and grounded in code. Slight deduction because the narrative broadens to other attributes like `src` and `action` without the same level of code-specific support as the anchor `href` case called out in the answer key."
},
{
"key": "evidence-quality",
"score": 9,
"rationale": "Cites concrete file paths, specific code regions, and the call site where invalid attributes are removed. The evidence is specific and code-focused. Minor deduction because the line ranges are presented somewhat schematically rather than with fuller code context tying `ADD_ATTR` to `EXTRA_ELEMENT_HANDLING.attributeCheck`."
},
{
"key": "overclaim-control",
"score": 8,
"rationale": "Avoids forbidden claims such as RCE/SQLi/SSRF and stays within DOM-based XSS. Minor deduction for somewhat expansive language suggesting an array of execution-associated attributes beyond the strongly supported `href`/anchor scenario in the advisory."
}
],
"strengths": [
"Accurately identifies the predicate-based attribute acceptance path as the vulnerability.",
"Explicitly explains the short-circuit before normal URI/protocol validation, which is the key advisory fact.",
"Names the correct file (`src/purify.ts`) and relevant function (`_isValidAttribute`).",
"Provides a plausible reproduction using functional `ADD_ATTR` and a `javascript:` URL in `href`."
],
"misses": [
"Could more explicitly tie functional `ADD_ATTR` to the internal `EXTRA_ELEMENT_HANDLING.attributeCheck` setup path rather than mainly discussing the latter as the sink condition.",
"Broadens impact to additional attributes (`src`, `action`) without equivalent concrete evidence in the report."
],
"redFlags": [],
"summary": "This is a strong, mostly complete match to GHSA-cjmm-f4jc-qw8r. The submission correctly locates the issue in `_isValidAttribute` within `src/pTool calls
(0)No bash calls recorded.