CVE intelligence and bounded remediation

CVE-2026-42027 — Apache Opennlp security vulnerability

Critical CVSS 9.8

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 o…

Severity
Critical
CVSS
9.8 (3.1)
Published
2026-05-04
CISA KEV
Not currently listed
Ecosystem
software/application
Weaknesses
CWE-470, CWE-502

Affected products

  • apache / opennlp
  • apache / opennlp / 3.0.0

Showing 2 representative product identities from 3 source matches. Confirm exact affected versions with the linked vendor and NVD evidence.

Matched remediation archetype

Unsafe deserialization and object reconstruction

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Inventory serialization formats accepted from requests, queues, caches, files, cookies, and cross-service messages.
  • Trace whether untrusted input can select classes, types, callbacks, constructors, or object hooks during decoding.
  • Identify signing, schema validation, trust-boundary, and compatibility settings for each decoder.

Remediate safely

  • Replace native object deserialization with a data-only format and explicit schema validation.
  • If replacement is not immediate, use a safe decoder with a minimal type allowlist and disable polymorphic or executable hooks.
  • Update the affected library and add inert tests for unknown types, extra fields, malformed nesting, and unsigned data.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.