@asymmetric-effort/specifyjs: CSS expression sanitization is bypassable in renderToString
Moderate severity
GitHub Reviewed
Published
May 29, 2026
in
asymmetric-effort/specifyjs
•
Updated Jul 2, 2026
Description
Published to the GitHub Advisory Database
Jul 2, 2026
Reviewed
Jul 2, 2026
Last updated
Jul 2, 2026
Finding
Location:
core/src/server/render-to-string.ts:307-311CSS value sanitization stripped
expression(andurl(javascript:using simple regex, but could be bypassed with CSS unicode escapes (\65xpression(), null bytes, or CSS comments (exp/**/ression().Mitigating Factor: These CSS injection vectors only work in legacy browsers (IE6-IE10). SpecifyJS targets modern browsers.
Status
Fixed in v0.2.136 — CSS sanitization now normalizes unicode escapes and strips CSS comments before pattern matching. Also checks for
behavior:,-moz-binding, and-o-linkpatterns.References