Description
SWC is a TypeScript / JavaScript compiler written in Rust. Prior to @swc/html 1.15.47-nightly-20260729.1 and swc_html_minifier 59.0.0, the minifyJson processing in crates/swc_html_minifier/src/lib.rs parsed and serialized attacker-controlled JSON in application/json and application/ld+json script elements without the escape_json_for_html_script behavior to re-escape less-than signs, allowing a closing script sequence to terminate the element early and execute script in the generated page's origin. This issue is fixed in @swc/html 1.15.47-nightly-20260729.1 and swc_html_minifier 59.0.0.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| swc-project | swc | < 1.15.47 | — |
| @swc | html | < 1.15.47-nightly-20260729.1 | — |
| swc-project | swc_html_minifier | < 59.0.0 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | swc_html_minifier | < 59.0.0 | 59.0.0 | GHSA-5qr2-v392-m9g8 |
| npm | @swc/html | < 1.15.47-nightly-20260729.1 | 1.15.47-nightly-20260729.1 | GHSA-5qr2-v392-m9g8 |
References
- https://github.com/swc-project/swc/security/advisories/GHSA-5qr2-v392-m9g8
- https://github.com/swc-project/swc/pull/12080
- https://github.com/swc-project/swc/commit/e1877b44bdac8abc9fd51e984d584f40f6999832
- https://github.com/swc-project/swc/releases/tag/v1.15.47
- https://github.com/swc-project/swc/releases/tag/v1.15.47-nightly-20260729.1