Security: MarkdownSafetyScanner mist eventhandlers na een solidus #1691
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1691
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kwetsbaarheid
De fail-closed MarkdownSafetyScanner herkent inline eventhandlers alleen wanneer vóór on...= een whitespace staat. HTML-tokenisatie accepteert echter ook een onverwachte solidus vóór een attribuutnaam. Daardoor passeert bijvoorbeeld <svg/onload=alert(1)> de ingangsscan, terwijl het als element met eventhandler kan worden geïnterpreteerd.
Export-time DOMPurify/CSP blijft defense-in-depth, maar de expliciete belofte dat uitvoerbare inhoud bij openen wordt geweigerd is hiermee omzeilbaar en andere consumers kunnen niet op de gate vertrouwen.
Reproductie
Verwacht
De scanner normaliseert/parset tagattributen robuust of herkent alle HTML-separators die tot een on...-attribuut kunnen leiden. Regressietests omvatten solidus- en vergelijkbare tokenizer-randgevallen.
Technische oorzaak
lib/services/markdown_safety.dart gebruikt voor inline handlers RegExp(r'<[a-z][^>\n]\son[a-z]+\s='); de verplichte \s laat de solidusvariant door.
Afbakening
Openbare plaatsing is door de opdrachtgever/repositorybeheerder expliciet geautoriseerd voor directe afhandeling.
Gevonden bij audit van commit
d439638c6b.