CVE-2026-43825 Details
Description
Untrusted Java Deserialization in Apache OpenNLP SvmDoccatModel Versions Affected: before 3.0.0-M4 (libsvm document categorization module; introduced in OPENNLP-1808 and only present on the 3.x line) Description: SvmDoccatModel.deserialize(InputStream) reads an attacker-controlled stream with java.io.ObjectInputStream and calls readObject() without an ObjectInputFilter installed. ObjectInputStream materialises every class referenced in the stream before the resulting object is cast to SvmDoccatModel, so the cast that follows readObject() executes only after the foreign object graph has already been deserialised in full. If a Java deserialization gadget chain is available on the consumer's classpath, a crafted payload supplied to deserialize() executes arbitrary code in the JVM that loads it. Apache OpenNLP itself does not ship a known gadget chain, so the realistic risk is to downstream applications that embed the libsvm module alongside vulnerable transitive dependencies. The method is public and static, so any caller can pass an untrusted stream to it directly. The practical impact is remote code execution against processes that load SvmDoccatModel instances from untrusted or semi-trusted origins. Mitigation: 3.x users should upgrade to 3.0.0-M4. Users who cannot upgrade immediately should treat all serialized SvmDoccatModel streams as untrusted input unless their provenance is verified, and should avoid invoking SvmDoccatModel.deserialize() on streams supplied by end users or fetched from third-party sources without integrity checks.
A vulnerability exists in the Apache OpenNLP SvmDoccatModel component, specifically in versions prior to 3.0.0-M4. This issue arises from untrusted Java deserialization, where the method SvmDoccatModel.deserialize(InputStream) processes an attacker-controlled stream using java.io.ObjectInputStream. The method calls readObject() without an ObjectInputFilter, allowing the deserialization of foreign object graphs before they are cast to SvmDoccatModel. If a Java deserialization gadget chain is available in the consumer's classpath, a crafted payload can be used to execute arbitrary code in the JVM. While Apache OpenNLP does not include a known gadget chain, this vulnerability poses a risk to downstream applications that use the libsvm module with vulnerable transitive dependencies. The public and static nature of the method allows any caller to directly pass untrusted streams, leading to remote code execution in processes that load SvmDoccatModel instances from untrusted or semi-trusted sources.
Users of Apache OpenNLP 3.x should upgrade to version 3.0.0-M4. For those unable to upgrade immediately, it is recommended to treat all serialized SvmDoccatModel streams as untrusted unless their origin can be verified. Avoid using SvmDoccatModel.deserialize() on streams provided by end users or obtained from third-party sources without proper integrity checks.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed Jul 6, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| http://www.openwall.com/lists/oss-security/2026/07/06/9 | CVE | Mailing ListThird Party Advisory |
| https://lists.apache.org/thread/c7kom0pgk9cbpfnbooh5m3g85ndf50hn | [email protected] | Mailing ListVendor Advisory |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-502 | Deserialization of Untrusted Data | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| apache opennlp | 3.0.0 m1 3.0.0 m2 3.0.0 m3 |
CPE
Remediation
| |
Change History
4 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jul 8, 2026 | Initial Analysis | [email protected] |
| Jul 6, 2026 | CVE Modified | CVE |
| Jul 6, 2026 | CVE Modified | CISA-ADP |
| Jul 6, 2026 | New CVE Received | [email protected] |