CVE-2024-6961: Guardrails AI vulnerable to Improper Restriction of XML External Entity Reference
5.9
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.09618%
CWE
Published
7/21/2024
Updated
11/18/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| guardrails-ai | pip | < 0.5.0 | 0.5.0 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from XML parsing without disabling external entity resolution. The commit diff shows both locations used ET.XMLParser without 'resolve_entities=False':
- In constants_container.py, the fill_constants method reads external XML files
- In rail_schema.py, rail_string_to_schema processes user-provided RAIL strings Both functions parse untrusted XML input and were patched by adding resolve_entities=False to their XML parsers, directly addressing the XXE vulnerability. The PoC demonstrates exploitation through RAIL document processing, confirming these are the entry points.