Highlights
Reflected XSS: 3 prior fixes. Scrutinize any change in this area.
js/fileinput.js: most-fixed (4 issues). Treat as high-risk during review.
1 high-severity fix in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Reflected XSS: Filenames are directly interpolated into preview captions via string replacement, allowing crafted filenames to inject HTML/script. Multiple fixes were needed to harden slug() against path traversal and special characters, indicating incomplete sanitization over time.
Stored XSS: The zoom cache, which stores previously rendered preview HTML, was not fully sanitized, allowing stored payloads to execute when the cache is reused. The fix expanded sanitization to remove additional dangerous HTML elements, but the underlying risk is that any cached HTML must be treated as untrusted.