CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

GHSA-8j5q-mfj2-5q9q: @astrojs/rss: XML Injection via Unescaped RSS Feed Fields

mediumCVSS 4.3CVE-2026-59728
Summary In @astrojs/rss, the source.title and enclosure.type item fields are interpolated directly into XML template strings without XML-character escaping before being parsed by fast-xml-parser. An attacker who controls these field values can inject arbitrary XML elements into the generated RSS feed. Details Two fields in packages/astro-rss/src/index.ts are affected: source.title item.source = parser.parse( <source url="${result.source.url}">${result.source.title}</source>, ).source; source.title is validated only as z.string(), with no restriction on XML special characters. A value containing </source> followed by arbitrary XML is parsed as real XML elements, merging injected nodes into the RSS item. enclosure.type item.enclosure = parser.parse( <enclosure url="${enclosureURL}" length="${result.enclosure.length}" type="${result.enclosure.type}"/>, ).enclosure; enclosure.type is also z.string() and is interpolated into an XML attribute without escaping. A value containing " followed by additional XML can break out of the attribute and inject extra elements. Proof of Concept source.title injection: source: { url: 'https://legit.example.com', title: '</source><item><title>INJECTED</title><link>https://evil.com</link></item><source>', } // Result: RSS feed contains an injected <item> element with an evil.com link enclosure.type injection: enclosure: { url: 'https://example.com/a.mp3', length: 0, type: 'audio/mpeg" /><link>https://evil.example.com</link><enclosure fake="', } // Result: RSS feed contains an injected <link> element Both injections were confirmed with fast-xml-parser: the injected "link": "https://evil.com" appears in the parsed output. Impact An attacker who can control source.title or enclosure.type values (e.g., via a CMS, database, or user-submitted content that populates RSSFeedItem) can inject arbitrary XML into the generated RSS feed. This corrupts feed structure, injects false metadata (e.g., a fake <link> pointing to a malicious

Details

Source
GitHub Security Advisories (INTL · database · site)
Severity
medium — CVSS 4.3
Published
2026-07-20
Last updated
2026-07-20
Exploitation
Not in CISA KEV at last sync

Original advisory: https://github.com/advisories/GHSA-8j5q-mfj2-5q9q

Exploitation outlook

EPSS (FIRST.org) estimates each CVE’s probability of exploitation in the next 30 days — here is the CSIRTS.com read on those numbers.

Referenced CVEs

CVECSIRTS overviewExternal
CVE-2026-59728coverage & exploitation statusNVD · CVE.org

Same CVEs, other sources

How other CERTs, PSIRTs and databases cover the vulnerabilities in this advisory.

More from GitHub Security Advisories