fix(security): harden document export boundaries #1698

Merged
brenno merged 1 commit from codex/security-1640-1642 into main 2026-08-21 23:00:39 +00:00
Owner

Samenvatting

  • weigert grafiekbronnen waarvan een projectinterne symlink buiten de projectmap eindigt
  • beperkt interactieve exportlinks centraal tot http, https, mailto en interne ankers
  • maakt onveilige PDF-linkdoelen platte tekst vóór ze de PDF-renderer bereiken
  • laat LaTeX alleen bekende wiskundecommando's native door en zet onbekende TeX-primitieven zichtbaar en geëscapet neer
  • weigert injecteerbare, absolute, externe en traverserende afbeeldingspaden in LaTeX
  • ontsmet ook math-achtige payloads in afbeeldings-alttekst en alle overige generieke tekstcontexten fail-closed

Kritische analyse

De mathcontrole staat bewust niet op een bloklijst van alleen input en write18. Onbekende TeX-commando's worden geweigerd, zodat macro-aliassen en minder bekende IO-primitieven niet langs een onvolledige denylist glippen. Normale formules met de expliciete wiskunde-allowlist blijven native LaTeX.

URL-validatie gebeurt vóór de PDF-tussenvorm. Daardoor zijn niet alleen documentalinea's, maar ook kop-/voetbanden en andere gebruikers van PdfSpan beschermd.

Validatie

  • make check — 10.346 tests geslaagd; 87,2% line coverage; beide coveragevloeren groen
  • na de laatste defense-in-depth aanscherping: 48 betrokken LaTeX/exporttests opnieuw geslaagd
  • make check-static — groen op de definitieve patch
  • make sast — 0 bevindingen op de definitieve patch
  • gerichte security- en bronkaartset — 68 tests geslaagd

Closes #1640
Closes #1641
Closes #1642

## Samenvatting - weigert grafiekbronnen waarvan een projectinterne symlink buiten de projectmap eindigt - beperkt interactieve exportlinks centraal tot http, https, mailto en interne ankers - maakt onveilige PDF-linkdoelen platte tekst vóór ze de PDF-renderer bereiken - laat LaTeX alleen bekende wiskundecommando's native door en zet onbekende TeX-primitieven zichtbaar en geëscapet neer - weigert injecteerbare, absolute, externe en traverserende afbeeldingspaden in LaTeX - ontsmet ook math-achtige payloads in afbeeldings-alttekst en alle overige generieke tekstcontexten fail-closed ## Kritische analyse De mathcontrole staat bewust niet op een bloklijst van alleen input en write18. Onbekende TeX-commando's worden geweigerd, zodat macro-aliassen en minder bekende IO-primitieven niet langs een onvolledige denylist glippen. Normale formules met de expliciete wiskunde-allowlist blijven native LaTeX. URL-validatie gebeurt vóór de PDF-tussenvorm. Daardoor zijn niet alleen documentalinea's, maar ook kop-/voetbanden en andere gebruikers van PdfSpan beschermd. ## Validatie - make check — 10.346 tests geslaagd; 87,2% line coverage; beide coveragevloeren groen - na de laatste defense-in-depth aanscherping: 48 betrokken LaTeX/exporttests opnieuw geslaagd - make check-static — groen op de definitieve patch - make sast — 0 bevindingen op de definitieve patch - gerichte security- en bronkaartset — 68 tests geslaagd Closes #1640 Closes #1641 Closes #1642
fix(security): harden document export boundaries
All checks were successful
scans / scans (pull_request) Successful in 2m41s
static-gate / static-gate (pull_request) Successful in 5m52s
eadbd9e276
brenno changed title from WIP: fix(security): harden document export boundaries to fix(security): harden document export boundaries 2026-08-21 23:00:32 +00:00
brenno merged commit 23f2304a99 into main 2026-08-21 23:00:39 +00:00
Sign in to join this conversation.
No description provided.