Skip to content

Commit eb642ff

Browse files
committed
docs(harness): log XSS-severity-overstatement drift (claimed open vuln from a memo)
1 parent 4350a65 commit eb642ff

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

.harness/drift-log.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,3 +1357,37 @@ CHANGELOG. (2) Corrective docs added before this entry: `modules/mcp/README.md`
13571357
`tutorial/15-quarkus.md` §MCP servers on Quarkus — all JVM-scoped (no native, no
13581358
sample). No automated gate detects "shipped-but-undocumented"; the bidirectional
13591359
per-claim audit is the control.
1360+
1361+
---
1362+
1363+
## 2026-06-11 — Called a skipped XSS test suite an "open security hole" without reading the sanitizer
1364+
1365+
### Factual drift (security severity asserted from an audit memo, not the code)
1366+
1367+
**Claim (to the maintainer):** While triaging the deferral inventory I told the maintainer
1368+
the disabled `xss-protection.spec.ts` e2e suite was "a security hole hiding behind green" —
1369+
the security-embarrassing item tied to the known console v-html XSS blocker — and ranked
1370+
re-enabling it as the highest-urgency drain target.
1371+
1372+
**Truth:** the console v-html XSS is already fixed and tested. `markdown.ts` routes every
1373+
render through `DOMPurify.sanitize()`; both `v-html` sinks (`ChatMessage.vue` via
1374+
`renderMarkdown(message.content)`, `ToolCard.vue` via `renderMarkdown(text)`) use it; and a
1375+
LIVE (non-skipped) unit test `markdown.test.ts` asserts `<script>`, `onerror`, `javascript:`,
1376+
and `<iframe>` are stripped. The skipped `xss-protection.spec.ts` is a browser-level coverage
1377+
gap, NOT an open vulnerability.
1378+
1379+
**Slip path:** I inferred the severity from the 2026-06-11 deferral-audit memo (which filed
1380+
"XSS suite disabled" under test-debt) plus the older gap-analysis "console v-html XSS" blocker,
1381+
and propagated it to the maintainer BEFORE reading `markdown.ts` / the `v-html` sinks — the
1382+
exact "infer from the narrative instead of reading the code" failure the No-Hallucinations rule
1383+
names. Self-caught one turn later by reading the sink + sanitizer, and corrected the severity
1384+
to the maintainer in the same session.
1385+
1386+
**Gate added:** before characterizing a skipped/quarantined SECURITY test as an open
1387+
vulnerability, verify the underlying control in code first — grep the sink, its
1388+
sanitizer/encoder, and any live unit test — and distinguish "control absent (real vuln)" from
1389+
"control present, e2e coverage skipped (hygiene gap)". Process gate; reading the code before
1390+
asserting severity is the control. (Same session also had a non-drift fix-quality lapse — an
1391+
LTM-disconnect timeout band-aid declared green that a re-test later failed — corrected by
1392+
root-causing the reaper-poisoning client close; noted here as context, not a separate
1393+
factual-drift entry.)

0 commit comments

Comments
 (0)