fix: sanitize HTML with DOMPurify to prevent stored XSS#5
Merged
Conversation
Member
mpge
commented
Feb 15, 2026
- Add DOMPurify sanitization to ReplyThread.vue and PinnedNotes.vue
- All v-html rendered content is now sanitized before rendering
- Closes stored XSS vector from inbound email bodies and user-submitted HTML
- Add DOMPurify sanitization to ReplyThread.vue and PinnedNotes.vue - All v-html rendered content is now sanitized before rendering - Closes stored XSS vector from inbound email bodies and user-submitted HTML
3ca4ffa to
607d19a
Compare
DOMPurify caused import resolution failures in CI. Replace with a built-in sanitizer that mirrors the server-side approach (strip disallowed tags, event handlers, javascript: URIs, CSS expressions). Revert test export count to 28 (i18n exports are not on this branch).
- Commit useI18n.js and locale files that were untracked (CI failure) - Loop event handler removal until stable to prevent bypass via nested/overlapping patterns (CodeQL incomplete sanitization fix)
Replace regex-based sanitization with DOMParser tree-walking approach. Parses HTML into a DOM tree, removes dangerous elements (script, iframe, etc.), strips event handler attributes and javascript: URIs by inspecting parsed attribute names/values. This avoids the incomplete multi-character sanitization pattern that CodeQL flags with regex replacements.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.