Horizon Alert
Summary of the vulnerability and why it matters
This vulnerability in Apache OpenNLP allows an attacker to exploit how dictionary files are processed, potentially leading to the disclosure of sensitive information or unauthorized actions on the server. This is concerning because the parsing of untrusted dictionary inputs is not adequately secured, creating an opening before any legitimate data is handled.
- Data Exposure: Local files could be read.
- System Compromise: Unauthorized requests could be made.
- Widespread Impact: Affects applications using this library.
Attack Path
How an attacker could exploit the issue
An attacker can weaponize this by crafting a malicious dictionary file containing an XXE payload. When an application using the vulnerable OpenNLP library parses this file, it will trigger the XXE, allowing the attacker to read local files or perform SSRF. This attack path is feasible because the library's documented API directly handles user-supplied dictionaries without sufficient security controls.
- Attacker supplies crafted dictionary file.
- Vulnerable API parses XML dictionary.
- Local file disclosure or SSRF occurs.
Live Threat
Current exploitation, exposure, and threat context
This XML External Entity vulnerability in Apache OpenNLP's DictionaryEntryPersistor allows attackers to read local files or perform server-side requests by supplying a crafted dictionary file. The vulnerability is present in versions before 2.5.9 and 3.0.0-M3, and it can be triggered during the parsing of untrusted input. While the severity is high, the actual threat picture is less clear due to the library's nature.
- Exploitation requires application-level design.
- No public exploit code observed.
- No KEV listing.
Priority actions
Operational Fix
Recommended remediation, mitigation, and detection steps
Prioritize blocking or isolating any service that accepts user-supplied dictionary files to prevent XML external entity injection. This vulnerability allows attackers to read local files or perform server-side requests, posing a significant risk to data confidentiality and integrity. If patching is delayed, implement input validation to reject XML with DOCTYPE declarations before parsing.
- Upgrade OpenNLP to 2.5.9 or 3.0.0-M3.
- Block or validate untrusted dictionary inputs.
- Monitor for suspicious file access or network requests.