CVE-2026-59728
mediumPriorität · verfolgen · 0EPSS 0.003 · 25. PerzentilEUUSEPSS · bewertet 2026-10-27
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
Technischer Schweregrad, 0–10. Eine Zeile je Quelle.
Basiswert 0–10 · höher = schwerwiegender · Vektor überfahren zum Auflösen
SSVC
Eine Handlungsentscheidung — aus Ausnutzung und Auswirkung.
schwächen
Die CWE-Schwächeklassen, zu denen dies gehört.
betroffene Produkte (2)
Betroffene Produkte und Versionsbereiche.
Advisories (1)
Hersteller- und Ökosystem-Meldungen dazu.
- GHSA-8j5q-mfj2-5q9q@astrojs/rss: XML Injection via Unescaped RSS Feed Fields2026-07-20ghsa · osvUS
## 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` ```typescript 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` ```typescript 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: ```javascript 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: ```javascript 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 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. ## Patches Fixed in `@astrojs/rss@4.0.19`.
auch bekannt als (3)
Weitere Namen und Kennungen dieser Entität.
quellen
Welche Quellen diesen Datensatz belegen und wann.
Referenzen (12)
Externe Belege — Patches, Meldungen, Analysen.
- https://github.com/withastro/astro/commit/fbcfa039dfe3d700b239f595a6c55ee35e45bd06cnnvd
- https://github.com/withastro/astro/pull/17209cnnvd
- https://github.com/withastro/astro/releases/tag/@astrojs/rss@4.0.19cnnvd
- https://github.com/withastro/astro/security/advisories/GHSA-8j5q-mfj2-5q9qcnnvd
- https://github.com/withastro/astro/commit/fbcfa039dfe3d700b239f595a6c55ee35e45bd06enisa_euvd
- https://github.com/withastro/astro/pull/17209enisa_euvd
- https://github.com/withastro/astro/releases/tag/@astrojs/rss@4.0.19enisa_euvd
- https://github.com/withastro/astro/security/advisories/GHSA-8j5q-mfj2-5q9qenisa_euvd
Angreifer nutzen Schwachstellen wie diese gegen im Internet exponierte Dienste aus. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.
Kostenloser Scan