Herstel van een document slaat de Markdown-veiligheidsscan over #1643

Closed
opened 2026-08-21 11:59:01 +00:00 by brenno · 0 comments
Owner

Wat er misgaat

Elke .md die via Openen, slepen of recent binnenkomt, gaat door MarkdownSafetyScanner (<script>, javascript:, iframe, …). Een autosave-herstel van een documenttabblad parseert de snapshot direct:

restoreRecoveredMarkdownDocument.parse(snap.markdown) in lib/state/tabs_provider.dart.

Geen scan. De herstelmap is lokaal, maar het is dezelfde klasse invoer als een bestand: bytes die later HTML/PDF/LaTeX worden. Een gewijzigd of vervangen herstelbestand (crash, gedeelde machine, malware in de gebruikersmap) omzeilt de poort die overal anders fail-closed is.

Presentatie-herstel gaat via parseDeck en heeft hetzelfde soort gat; dit issue betreft de documentkant omdat daar de bron verbatim de editor in gaat.

Wat het met het formaat doet

Niets op het meesterbestand; wél uitvoerbare markup in de sessie.

Regressie

Snapshot met <script> of javascript:-link → herstel weigert of scant net als openDocumentDetailed.

## Wat er misgaat Elke `.md` die via Openen, slepen of recent binnenkomt, gaat door `MarkdownSafetyScanner` (`<script>`, `javascript:`, iframe, …). Een **autosave-herstel** van een documenttabblad parseert de snapshot direct: `restoreRecovered` → `MarkdownDocument.parse(snap.markdown)` in `lib/state/tabs_provider.dart`. Geen scan. De herstelmap is lokaal, maar het is dezelfde klasse invoer als een bestand: bytes die later HTML/PDF/LaTeX worden. Een gewijzigd of vervangen herstelbestand (crash, gedeelde machine, malware in de gebruikersmap) omzeilt de poort die overal anders fail-closed is. Presentatie-herstel gaat via `parseDeck` en heeft hetzelfde soort gat; dit issue betreft de documentkant omdat daar de bron verbatim de editor in gaat. ## Wat het met het formaat doet Niets op het meesterbestand; wél uitvoerbare markup in de sessie. ## Regressie Snapshot met `<script>` of `javascript:`-link → herstel weigert of scant net als `openDocumentDetailed`.
brenno 2026-08-21 22:17:54 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1643
No description provided.