Skip to content
Back to evidence wall

ammonia / GHSA-x43w-36pp-96g3

Case-sensitive CSS URL filtering gap

Original discoveryFixed-version regression verifiedCargo

The upstream advisory says uppercase URL() can bypass configured CSS URL filtering and permit tracking pixels in some settings; it explicitly says this is not XSS.

What this evidence supports

Vettalon supply-chain hunt surfaced a needs_human candidate in ammonia 4.1.7 and generated a disclosure draft on 2026-10-14 UTC. A human reproduced and submitted it; upstream fixed it. The maintainer publicly confirms receiving an email from zhixuli0406, and RustSec credits Louis Li as reporter. Scoped policy tests passed 3/5 on 4.2.3 and 5/5 on official 4.2.4.

Test method

A curated source excerpt preserves the product candidate, its needs_human state and draft-generation record. After manual reproduction and submission, the same five caller-policy methods and seven inputs were tested on 4.2.3 and official 4.2.4 in isolated offline runs.

Download public record (JSON)

Vettalon finding and draft record

Archived Vettalon hunt output lists the ammonia 4.1.7 needs_human candidate and generated disclosure draft. The public attachment is limited to this case; the original hunt.json, JSONL line, email and send-system receipt are unavailable, so the line digest alone cannot independently verify the historical output. The maintainer confirms email receipt in the fix PR.

Product output date
2026-10-14 UTC
Finding status
needs_human
Download product-output excerpt (JSON)
Excerpt artifact SHA-2567bb0de375942bfd31ff6a2296db7fbbf4127997a6ca612b1d39d585a22c25413

Post-report version regression

Pass/fail describes library policy assertions. Two failed on 4.2.3; all five passed on the official 4.2.4 crate. This scoped post-fix test does not validate the complete product scan flow or browser behavior.

Policy test4.2.34.2.4
lowercase httpPassedPassed
uppercase HTTPFailedPassed
HTTPS normal controlPassedPassed
lowercase relative URLPassedPassed
mixed-case relative URLFailedPassed
Download five-check summary (JSON)
Summary artifact SHA-256afa1001f97d97edbabc477436bbd88d9b82d5a0c481854edaab599448b14da3b

Public upstream attribution

Public upstream attribution

Limits and prerequisites

The full original hunt.json, historical source bytes, original email and send-system receipt are unavailable. The product excerpt alone does not prove submission; the maintainer publicly confirms receiving the email. The second 4.2.3 controller failed an extra fingerprint check; a corrected read-only validator checked saved output without rerunning the target. Browser loading, application integration, 4.1.8 and the full affected range were not tested. No CVE or CWE is assigned.

Sources and attribution

Vettalon produced the original candidate and disclosure draft. Louis Li manually reproduced and submitted the report; the maintainer confirms receiving it by email. RustSec publicly credits Louis Li as reporter. Ammonia maintainers produced the fix and advisory.