ammonia / GHSA-x43w-36pp-96g3
Case-sensitive CSS URL filtering gap
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
Excerpt artifact SHA-256
7bb0de375942bfd31ff6a2296db7fbbf4127997a6ca612b1d39d585a22c25413Post-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 test | 4.2.3 | 4.2.4 |
|---|---|---|
| lowercase http | Passed | Passed |
| uppercase HTTP | Failed | Passed |
| HTTPS normal control | Passed | Passed |
| lowercase relative URL | Passed | Passed |
| mixed-case relative URL | Failed | Passed |
Summary artifact SHA-256
afa1001f97d97edbabc477436bbd88d9b82d5a0c481854edaab599448b14da3bPublic upstream attribution
Public upstream attributionLimits 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.