Exploitation status
No KEV listing in available snapshot
Absence from KEV does not establish absence of exploitation.
Indicator investigation
Loading the current evidence view. Navigation and account controls remain available.
Loading verdict, provenance, relationships and sightings.
Indicator
Type cve · source NVD CVE
CRITICAL SEVERITY (CVSS 9.8)
Vulnerability investigation
The available snapshot does not list this vulnerability in CISA KEV; that is not proof exploitation has not occurred. NVD rates the technical severity critical at CVSS 9.8. These are public vulnerability signals, not proof that a specific environment runs an affected version.
Exploitation status
No KEV listing in available snapshot
Absence from KEV does not establish absence of exploitation.
30-day exploitation likelihood
Unavailable
FIRST EPSS did not return a score.
Technical severity
9.8 · critical
NVD base score; exploit likelihood is measured separately.
Affected surface
2 parsed products
Apache Opennlp, Apache Opennlp 3.0.0
Weakness class
CWE-470, CWE-502: Deserialization of Untrusted Data
CWE describes the weakness category, not whether a deployed product is reachable or exploitable.
Corpus evidence
1 connectors · 7 citations
No related report text is available in the local corpus.
Findings stay bounded to named sources and observable infrastructure.
Arbitrary Class Instantiation via Model Manifest in Apache OpenNLP ExtensionLoader Versions Affected: before 1.9.5, before 2.5.9, before 3.0.0-M3 Description: The ExtensionLoader.instantiateExtension(Class, String) method loads a class by its fully-qualified name via Class.forName() and invokes its no-arg constructor, with the class name sourced from the manifest.properties entry of a model archive. The existing isAssignableFrom check correctly rejects classes that are not subtypes of the expected extension interface (BaseToolFactory for factory=, ArtifactSerializer for serializer-class-*), but the check runs after Class.forName() has already loaded and initialized the named class. Class.forName() with default initialization semantics executes the target class's static initializer before returning, so an attacker who can supply a crafted model archive can cause the static initializer of any class on the classpath to run during model loading, regardless of whether that class passes the subsequent type check. Exploitation requires a class with attacker-useful side effects in its static initializer (for example, JNDI lookup, outbound network I/O, or filesystem access) to be present on the classpath, so this is not a drop-in remote code execution; however, the attack surface grows as third-party model distribution becomes more common (community model repositories, Hugging Face-style sharing), where users routinely load model files from origins they do not control. A secondary, narrower vector affects deployments that ship legitimate BaseToolFactory or ArtifactSerializer subclasses with side-effecting no-arg constructors: a malicious manifest can name such a class and force its constructor to run during model load. Mitigation: * 2.x users should upgrade to 2.5.9. * 3.x users should upgrade to 3.0.0-M3. Note: The fix introduces a package-prefix allowlist that is consulted before Class.forName() is invoked, so the static initializer of a disallowed class is never executed. Classes under the opennlp. prefix remain permitted by default. Deployments that load models referencing factories or serializers outside opennlp.* must opt those packages in, either programmatically via ExtensionLoader.registerAllowedPackage(String) before the first model load, or by setting the OPENNLP_EXT_ALLOWED_PACKAGES system property to a comma-separated list of allowed package prefixes. Users who cannot upgrade immediately should ensure that all model files are sourced from trusted origins and should audit their classpath for classes with side-effecting static initializers or constructors, particularly any that perform JNDI lookups, network requests, or filesystem operations during class initialization.
The base CVE appears first. Independent evidence is added without blocking the page.
Investigation status
Checking for newly completed evidence
NIST NVD
NVD evidence is available in this response
CISA KEV
Known-exploitation catalog check is pending
FIRST EPSS
Forensia does not request or publish EPSS while source rights are under review
Reports
Report links are still being resolved
Relationships
Product and vulnerability relationships are still being prepared
Local EPSS row, KEV flag, and catalog notes from stored metadata only.
Vendor/product strings parsed from local CPE URIs (no inferred ATT&CK).
| Product | CPE (truncated) |
|---|---|
| Apache Opennlp 3.0.0 | cpe:2.3:a:apache:opennlp:3.0.0:m2:*:*:*:*:*:* |
| Apache Opennlp 3.0.0 | cpe:2.3:a:apache:opennlp:3.0.0:m1:*:*:*:*:*:* |
| Apache Opennlp | cpe:2.3:a:apache:opennlp:*:*:*:*:*:*:*:* |
Neighborhood topology. Open the graph for interactive pivots.
Loading connected indicators, reports and entities.
High-signal pivots without leaving the thread you started in search.
Structured pivots from local graph context.
Full investigation canvas with neighbor expansion.