---
id: CVE-2017-16931
title: >-
  parser.c in libxml2 before 2.9.5 mishandles parameter-entity references
  because the NEXTL macro calls the xmlParserHandlePEReference function in the
  case of a '%' character in a DTD name.
summary: >-
  parser.c in libxml2 before 2.9.5 mishandles parameter-entity references
  because the NEXTL macro calls the xmlParserHandlePEReference function in the
  case of a '%' character in a DTD name.
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-119
vendor: xmlsoft
product: libxml2
affected:
  - libxml2 <= 2.9.4
published: '2017-11-23'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T07:16:39.460'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2017-16931'
references:
  - url: 'http://xmlsoft.org/news.html'
    label: cve@mitre.org
  - url: 'https://bugzilla.gnome.org/show_bug.cgi?id=766956'
    label: cve@mitre.org
  - url: >-
      https://github.com/GNOME/libxml2/commit/e26630548e7d138d2c560844c43820b6767251e3
    label: cve@mitre.org
  - url: 'https://lists.debian.org/debian-lts-announce/2017/11/msg00041.html'
    label: cve@mitre.org
  - url: 'https://www.oracle.com//security-alerts/cpujul2021.html'
    label: cve@mitre.org
  - url: 'http://xmlsoft.org/news.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://bugzilla.gnome.org/show_bug.cgi?id=766956'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: >-
      https://github.com/GNOME/libxml2/commit/e26630548e7d138d2c560844c43820b6767251e3
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://lists.debian.org/debian-lts-announce/2017/11/msg00041.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://www.oracle.com//security-alerts/cpujul2021.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-398330.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
epss: 0.04332
epssPercentile: 0.90983
ingestedAt: '2026-10-14T07:21:04.797Z'
---

## Overview

parser.c in libxml2 before 2.9.5 mishandles parameter-entity references because the NEXTL macro calls the xmlParserHandlePEReference function in the case of a '%' character in a DTD name.

## Affected

- `libxml2 <= 2.9.4`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
