Apache Opennlp
CVE-2026-40682
XML External Entity (XXE) via Unsanitized Dictionary Parsing in Apache OpenNLP DictionaryEntryPersistor Versions Affected: before 2.5.9, before 3.0.0-M3 Description: The DictionaryEntryPersistor class initializes a static SAXParserFactory at class-load time without enabling FEATURE_SECURE_PROCESSING or disabling DTD processing. When create(InputStream, EntryInserter) is invoked, the only feature set on the XMLReader is namespace support — external entity resolution and DOCTYPE declarations remain fully enabled. An attacker who can supply a crafted dictionary file (e.g., a stop-word list or domain dictionary) containing a malicious DOCTYPE declaration can trigger local file disclosure via file:// entity references or server-side request forgery via http:// entity references during SAX parsing, before the application processes a single dictionary entry. This is inconsistent with the project's own XmlUtil.createSaxParser() helper, which correctly sets FEATURE_SECURE_PROCESSING and disallow-doctype-decl and is used by all other XML parsing paths in the codebase. The public Dictionary(InputStream) constructor delegates directly to this method and is the documented API for loading user-supplied dictionaries, making untrusted input a realistic scenario. Mitigation: 2.x users should upgrade to 2.5.9. 3.x users should upgrade to 3.0.0-M3. Users who cannot upgrade immediately should ensure that all dictionary files are sourced from trusted origins and should consider wrapping the Dictionary(InputStream) constructor with input validation that rejects any XML containing a DOCTYPE declaration before it reaches the parser.
What this means for your business
- It affects Apache Opennlp. It matters if your company, or a supplier that handles your data, runs it.
- An attacker can use it remotely, over a network, without a login, and without anyone at your company clicking anything.
- FIRST's prediction model gives it a 0.5% chance of attack attempts being seen in the next 30 days, ranking above 40% of all known flaws.
What to do
- 1Check whether your company or your suppliers run Apache Opennlp, and which version. The affected versions are listed further down this page.
- 2If you do, apply the vendor's fix. A patch or vendor advisory has been published.
Not sure if your company is exposed?
Fastnexa’s certified penetration testers can check whether attackers could use this flaw, or others like it, against your websites, apps and network. The full test is free for our first 10 founding clients until 31 December 2026.
Scoring
- CVSS
- 9.1 (v3.1)
- Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N- Weakness
- CWE-611
- Assigned by
- security@apache.org
Dates
- Published
- 2026-05-04
- Last modified
- 2026-09-02
- Sources
- NVD
Affected products
- Apache Opennlp- 2.5.9, 3.0.0
As listed in the NVD configuration data. Not a statement about your estate.
References
- https://lists.apache.org/thread/r6jpt0qr9nj67gqhppqg7jxf8vsbo0w6
- http://www.openwall.com/lists/oss-security/2026/05/01/19
- https://access.redhat.com/security/cve/CVE-2026-40682
- https://bugzilla.redhat.com/show_bug.cgi?id=2466484
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-40682.json