← Back to CVE Explorer

CVE-2025-9714

Full vulnerability record from the local CVENow database.

Description

Uncontrolled recursion in XPath evaluation in libxml2 up to and including version 2.9.14 allows a local attacker to cause a stack overflow via crafted expressions. XPath processing functions `xmlXPathRunEval`, `xmlXPathCtxtCompile`, and `xmlXPathEvalExpr` were resetting recursion depth to zero before making potentially recursive calls. When such functions were called recursively this could allow for uncontrolled recursion and lead to a stack overflow. These functions now preserve recursion depth across recursive calls, allowing recursion depth to be controlled.

Severity
MEDIUM
CVSS score
5.5 (v3.1)
Vulnerability status
Modified
Source identifier
Published
2025-09-10 19:15:42.707000
Last modified
2026-10-19 17:10:00.173000
View original CVE JSON
{
  "id": "CVE-2025-9714",
  "sourceIdentifier": "[email protected]",
  "published": "2025-09-10T19:15:42.707",
  "lastModified": "2026-10-19T17:10:00.173",
  "vulnStatus": "Modified",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Uncontrolled recursion in XPath evaluation in libxml2 up to and including version 2.9.14 allows a local attacker to cause a stack overflow via crafted expressions. XPath processing functions `xmlXPathRunEval`, `xmlXPathCtxtCompile`, and `xmlXPathEvalExpr` were resetting recursion depth to zero before making potentially recursive calls. When such functions were called recursively this could allow for uncontrolled recursion and lead to a stack overflow. These functions now preserve recursion depth across recursive calls, allowing recursion depth to be controlled."
    },
    {
      "lang": "es",
      "value": "La recursión incontrolada en la evaluación de XPath en libxml2 hasta la versión 2.9.14 inclusive permite a un atacante local causar un desbordamiento de pila mediante expresiones manipuladas. Las funciones de procesamiento de XPath 'xmlXPathRunEval', 'xmlXPathCtxtCompile' y 'xmlXPathEvalExpr' estaban restableciendo la profundidad de recursión a cero antes de realizar llamadas potencialmente recursivas. Cuando dichas funciones eran llamadas recursivamente, esto podía permitir una recursión incontrolada y conducir a un desbordamiento de pila. Estas funciones ahora preservan la profundidad de recursión a través de las llamadas recursivas, permitiendo que la profundidad de recursión sea controlada."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "libxml2",
          "product": "libxml2",
          "defaultStatus": "unaffected",
          "collectionURL": "https://gitlab.gnome.org/GNOME/libxml2",
          "packageName": "libxml2",
          "modules": [
            "xpath"
          ],
          "platforms": [
            "Linux"
          ],
          "programFiles": [
            "xpath.c"
          ],
          "repo": "https://gitlab.gnome.org/GNOME/libxml2",
          "versions": [
            {
              "version": "0",
              "lessThan": "2.10.0",
              "versionType": "semver",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.12.7+dfsg+really2.9.14-0.4ubuntu0.3",
              "versionType": "dpkg",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.9.14+dfsg-1.3ubuntu3.5",
              "versionType": "dpkg",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.9.13+dfsg-1ubuntu0.9",
              "versionType": "dpkg",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.9.10+dfsg-5ubuntu0.20.04.10+esm2",
              "versionType": "dpkg",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.9.4+dfsg1-6.1ubuntu1.9+esm5",
              "versionType": "dpkg",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.9.3+dfsg1-1ubuntu0.7+esm10",
              "versionType": "dpkg",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.9.1+dfsg1-3ubuntu4.13+esm9",
              "versionType": "dpkg",
              "status": "affected"
            }
          ]
        }
      ]
    },
    {
      "source": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
      "affectedData": [
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX MX5000",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX MX5000RE",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1400",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1500",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1501",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1510",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1511",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1512",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1524",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX1536",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Siemens",
          "product": "RUGGEDCOM ROX RX5000",
          "defaultStatus": "unknown",
          "versions": [
            {
              "version": "0",
              "lessThan": "V2.17.1",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
          "baseScore": 6.2,
          "baseSeverity": "MEDIUM",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 2.5,
        "impactScore": 3.6
      },
      {
        "source": "[email protected]",
        "type": "Primary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
          "baseScore": 5.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.8,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2025-09-10T18:46:42.383800Z",
          "id": "CVE-2025-9714",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-674"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:xmlsoft:libxml2:*:*:*:*:*:*:*:*",
              "versionEndExcluding": "2.10.0",
              "matchCriteriaId": "6A6A3E8A-FBA5-4AA0-B9D8-F2536DB076F0"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://gitlab.gnome.org/GNOME/libxml2/-/commit/677a42645ef22b5a50741bad5facf9d8a8bc6d21",
      "source": "[email protected]",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://lists.debian.org/debian-lts-announce/2025/09/msg00035.html",
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    },
    {
      "url": "https://cert-portal.siemens.com/productcert/html/ssa-577017.html",
      "source": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e"
    }
  ]
}