Description
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.
Published: 2026-07-27
Score: 4.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises in the @astrojs/rss component of the Astro web framework, where source.title and enclosure.type are inserted directly into XML template strings without escaping. The fields are only validated as generic strings, which permits an attacker to inject arbitrary XML. This can break attributes or prematurely close elements, enabling the attacker to inject false metadata, such as malicious links, or to manipulate feed readers into displaying attacker‑controlled content. In server‑side rendering mode, the corrupted feed is served to all subscribers on every request, potentially exposing many users to the injected content.

Affected Systems

The flaw affects the Astro framework and its RSS component @astrojs/rss. It exists in Astro releases from 1.0.0 through 4.0.18. Any project that relies on this package without updating beyond version 4.0.19 is vulnerable.

Risk and Exploitability

The CVSS score of 4.3 indicates low to moderate severity. The EPSS score is < 1%, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector requires the attacker to control the values of source.title or enclosure.type, which are typically derived from user‑supplied content or a content management system. If the attacker can supply these values, they can corrupt the RSS feed structure, insert malicious links or content, and cause feed readers to misparse or display attacker‑controlled data. In server‑side rendering mode, the poisoned feed would be delivered to all subscribers on each request until the library is updated.

Generated by OpenCVE AI on August 3, 2026 at 16:48 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade @astrojs/rss to version 4.0.19 or later, which adds XML escaping for title and type fields.
  • If upgrading is not immediately feasible, enforce strict validation or escape the source.title and enclosure.type inputs before passing them to the library.
  • Implement feed sanitization or reject feeds containing unexpected XML elements to mitigate the impact of injected content.

Generated by OpenCVE AI on August 3, 2026 at 16:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-8j5q-mfj2-5q9q @astrojs/rss: XML Injection via Unescaped RSS Feed Fields
History

Tue, 28 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 28 Jul 2026 03:30:00 +0000

Type Values Removed Values Added
First Time appeared Withastro
Withastro astro
Vendors & Products Withastro
Withastro astro

Mon, 27 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Description 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.
Title @astrojs/rss: XML Injection via Unescaped RSS Feed Fields
Weaknesses CWE-91
References
Metrics cvssV3_1

{'score': 4.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-28T14:27:56.334Z

Reserved: 2026-07-06T15:34:16.917Z

Link: CVE-2026-59728

cve-icon Vulnrichment

Updated: 2026-07-28T14:27:52.024Z

cve-icon NVD

Status : Deferred

Published: 2026-07-27T21:17:05.700

Modified: 2026-07-28T16:17:16.127

Link: CVE-2026-59728

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T17:00:06Z

Weaknesses
  • CWE-91

    XML Injection (aka Blind XPath Injection)