{"id":"CVE-2026-50290","summary":"@asymmetric-effort/specifyjs: CSS expression sanitization is bypassable in renderToString","details":"SpecifyJS is a declarative TypeScript user interface framework. Prior to version 0.2.136, CSS value sanitization stripped `expression(` and `url(javascript:` using simple regex, but could be bypassed with CSS unicode escapes (`\\65xpression(`), null bytes, or CSS comments (`exp/**/ression(`). These CSS injection vectors only work in legacy browsers (IE6-IE10). SpecifyJS targets modern browsers. Starting in version 0.2.136, CSS sanitization now normalizes unicode escapes and strips CSS comments before pattern matching. Also checks for `behavior:`, `-moz-binding`, and `-o-link` patterns.","aliases":["GHSA-93q6-wwjh-jc6h"],"modified":"2026-08-23T03:53:39.246675586Z","published":"2026-08-21T19:55:51.086Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-79"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/50xxx/CVE-2026-50290.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/50xxx/CVE-2026-50290.json"},{"type":"ADVISORY","url":"https://github.com/asymmetric-effort/specifyjs/security/advisories/GHSA-93q6-wwjh-jc6h"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50290"},{"type":"FIX","url":"https://github.com/asymmetric-effort/specifyjs/commit/25d1fb491d99479efdf501f5f75e0bb80c908f0a"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/asymmetric-effort/specifyjs","events":[{"introduced":"0"},{"fixed":"25d1fb491d99479efdf501f5f75e0bb80c908f0a"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"0.2.136"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v0.2.135","v0.2.134","v0.2.133","v0.2.132","v0.2.131","v0.2.130","v0.2.129","v0.2.128","v0.2.127","v0.2.126","v0.2.125","v0.2.124","v0.2.123","v0.2.122","v0.2.121","v0.2.120","v0.2.119","v0.2.118","v0.2.117","v0.2.116","v0.2.115","v0.2.114","v0.2.113","v0.2.112","v0.2.111","v0.2.110","v0.2.109","v0.2.108","v0.2.107","v0.2.106","v0.2.105","v0.2.104","v0.2.103","v0.2.102","v0.2.101","v0.2.100","v0.2.98","v0.2.97","v0.2.96","v0.2.95","v0.2.94","v0.2.93","v0.2.92","v0.2.91","v0.2.90","v0.2.89","v0.2.88","v0.2.87","v0.2.86","v0.2.85","v0.2.84","v0.2.83","v0.2.82","v0.2.81","v0.2.80","v0.2.79","v0.2.78","v0.2.77","v0.2.76","v0.2.75","v0.2.74","v0.2.73","v0.2.72","v0.2.71","v0.2.70","v0.2.69","v0.2.68","v0.2.67","v0.2.66","v0.2.65","v0.2.64","v0.2.63","v0.2.62","v0.2.61","v0.2.60","v0.2.59","v0.2.58","v0.2.57","v0.2.56","v0.2.55","v0.2.54","v0.2.53","v0.2.52","v0.2.51","v0.2.50","v0.2.49","v0.2.48","v0.2.47","v0.2.46","v0.2.45","v0.2.44","v0.2.43","v0.2.42","v0.2.41","v0.2.40","v0.2.39","v0.2.38","v0.2.37","v0.2.36","v0.2.35","v0.2.34","v0.2.33","v0.2.32","v0.2.31","v0.2.30","v0.2.29","v0.2.28","v0.2.27","v0.2.26","v0.2.25","v0.2.24","v0.2.23","v0.2.22","v0.2.21","v0.2.20","v0.2.19","v0.2.18","v0.2.17","v0.2.16","v0.2.15","v0.2.14","v0.2.13","v0.2.12","v0.2.11","v0.2.10","v0.2.9","v0.2.8","v0.2.7","v0.2.6","v0.2.5","v0.2.4","v0.2.3","v0.2.2","v0.2.1","v0.2.0","v0.1.10","v0.1.9","v0.1.8","v0.1.7","v0.1.6","v0.1.5","v0.1.4","v0.1.3","v0.1.1","v0.1.0","v0.0.12","v0.0.11","v0.0.10","v0.0.9","v0.0.7"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-50290.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N"}]}