CVE-2026-59728
Astro is a web framework for content-driven websites. In versions 1.0.0 through 4.0.18, the source.title and enclosure.type item fields in packages/astro-rss/src/index.ts are interpolated directly into XML template strings without XML-character escaping before being parsed by fast-xml-parser. Both fields are validated only as z.string(), placing no restriction on XML special characters. An attacker who controls these values can inject arbitrary XML into the generated RSS feed: a value containing " can break out of an attribute (as with enclosure.type), and a value containing </source> can close an element early and inject additional nodes (as with source.title). This corrupts feed structure, injects false metadata (for example, a fake <link> pointing to a malicious URL), and can cause feed readers to misparse or display attacker-controlled content. In SSR mode (output: 'server'), the poisoned feed is served on every request to all subscribers. This issue has been fixed in version 4.0.19.
- CVSS 3.1
- 4.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N - EPSS
- 0.3% chance of exploitation in the next 30 days; higher than 25% of CVEs (scores of 2026-10-25)
- CWE
- CWE-91
- Published
- Modified
- Record from
- the NVD, synced
Packages (OSV)
| Advisory | Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|---|
| GHSA-8j5q-mfj2-5q9q | npm | @astrojs/rss | >=1.0.0 <4.0.19 | 4.0.19 |
References
- https://github.com/withastro/astro/commit/fbcfa039dfe3d700b239f595a6c55ee35e45bd06
- https://github.com/withastro/astro/pull/17209
- https://github.com/withastro/astro/releases/tag/@astrojs/rss@4.0.19
- https://github.com/withastro/astro/security/advisories/GHSA-8j5q-mfj2-5q9q
- https://github.com/withastro/astro/security/advisories/GHSA-8j5q-mfj2-5q9q