Files
ElyOffice/tasks/reviews/M-11-r3.md
T
ZacharyZhang-NYandClaude Opus 5.5 c5cb153f72 Page warnings log their line only, never words or source (M-11)
A document can forge both a console message and its source (KaTeX's
\errmessage, data: scripts, sourceURL, encoded paths), so the display
handler logs a line number and nothing the page wrote. The page's own
diagnostics reach the app over elyQuery: a missed reveal sends its
line; the visual failure and diagram lines already did. A test calls
the real handler and checks the captured log.

Round 5 found only the missing test; it is added and mutation-checked,
with no sixth review under the five-round cap. M-15 is new: the print
page runs a document's scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:02:06 -04:00

4 lines
1.3 KiB
Markdown

FAIL
- crates/ely-web-content/src/handlers.rs:453 — `warned()` trusts every `file://` console source as a bundled script and logs its final URL segment, including query/fragment text. JavaScript's `sourceURL` can supply this metadata without loading that file. Extend round 2's data-script Markdown fixture with `console.warn('hidden message');\n//# sourceURL=file:///not-bundled/M11_PRIVATE_SOURCE_SENTINEL.js`: the actual page renderer retains it, and the staged print page's warning becomes `web: the page warned at M11_PRIVATE_SOURCE_SENTINEL.js:1`. Native CEF probes using the unchanged production display handler and resource fence reproduce this on Windows and WSL; both privacy assertions fail. A source ending in `main.js?M11_PRIVATE_QUERY_SENTINEL` also leaks its query. This still violates PRD §18.2 and agents.md rule 4. The previous plain `data:` source and KaTeX message cases are fixed; script execution itself is outside this finding. Fix direction: log only verified bundled script identifiers, exclude URL queries/fragments, and use the fixed inline-script diagnostic for all other sources. Add regressions for forged `file://` sources and URL suffixes; the current two-case test passes despite this leak. Evidence: `.work/m11-r3/windows-cef-export.log`, `.work/m11-r3/linux-cef-export.log`, both `*-privacy-assert.log`, and `evidence.log`.