Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2026-42440— Apache OpenNLP: OOM DoS via Unbounded Array Allocation in AbstractModelReader

EPSS 0.19% · P40
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2026-42440

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Apache OpenNLP: OOM DoS via Unbounded Array Allocation in AbstractModelReader
Source: NVD (National Vulnerability Database)
Vulnerability Description
OOM Denial of Service via Unbounded Array Allocation in Apache OpenNLP AbstractModelReader  Versions Affected:  before 2.5.9 before 3.0.0-M3  Description: The AbstractModelReader methods getOutcomes(), getOutcomePatterns(), and getPredicates() each read a 32-bit signed integer count field from a binary model stream and pass that value directly to an array allocation (new String[numOutcomes], new int[numOCTypes][], new String[NUM_PREDS]) without validating that the value is non-negative or within a reasonable bound. The count is therefore fully attacker-controlled when the model file originates from an untrusted source. A crafted .bin model file in which any of these count fields is set to Integer.MAX_VALUE (or any value large enough to exhaust the available heap) triggers an OutOfMemoryError at the array allocation itself, before the corresponding label or pattern data is consumed from the stream. The error occurs very early in deserialization: for a GIS model, getOutcomes() is reached after only the model-type string, the correction constant, and the correction parameter have been read; so the attacker pays no meaningful size cost to weaponize a payload, and a single small file can crash a JVM that loads it. Any code path that deserializes a .bin model is affected, including direct use of GenericModelReader and any higher-level component that delegates to it during model load. The practical impact is denial of service against processes that load model files from untrusted or semi-trusted origins.   Mitigation: * 2.x users should upgrade to 2.5.9. * 3.x users should upgrade to 3.0.0-M3. Note: The fix introduces an upper bound on each of the three count fields, checked before array allocation; counts that are negative or exceed the bound cause an IllegalArgumentException to be thrown and the read to fail fast with no large allocation. The default bound is 10,000,000, which is well above the entry counts of legitimate OpenNLP models but far below any value that would threaten heap exhaustion. Deployments that legitimately need to load models with more entries than the default can raise the limit at JVM startup by setting the OPENNLP_MAX_ENTRIES system property to the desired positive integer (e.g. -DOPENNLP_MAX_ENTRIES=50000000); invalid or non-positive values fall back to the default. Users who cannot upgrade immediately should treat all .bin model files as untrusted input unless their provenance is verified, and should avoid loading models supplied by end users or fetched from third-party repositories without integrity checks.
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
未经控制的内存分配
Source: NVD (National Vulnerability Database)
Vulnerability Title
Apache OpenNLP 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Apache OpenNLP是Apache基金会的一个自然语言处理工具库。 Apache OpenNLP存在安全漏洞,该漏洞源于AbstractModelReader未验证数组分配中的计数是否为非负或合理范围,可能导致特制模型文件触发OutOfMemoryError。以下版本受到影响:2.5.9之前版本和3.0.0-M3之前版本。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
Apache Software FoundationApache OpenNLP 0 ~ 2.5.9 -

II. Public POCs for CVE-2026-42440

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-42440

登录查看更多情报信息。

Same Patch Batch · Apache Software Foundation · 2026-05-04 · 17 CVEs total

CVE-2026-428109.9 CRITICALApache Polaris: could broaden vended S3 credentials through wildcard-bearing namespace or
CVE-2026-428119.9 CRITICALApache Polaris: could broaden vended GCS credentials through unescaped identifier content
CVE-2026-428099.9 CRITICALApache Polaris: staged table creation could vend storage credentials for unvalidated locat
CVE-2026-428129.9 CRITICALApache Polaris: No protection on `write.metadata.path`
CVE-2026-40682Apache OpenNLP: XXE via Dictionary Parsing in DictionaryEntryPersistor
CVE-2026-42027Apache OpenNLP: Arbitrary Class Instantiation via Model Manifest in ExtensionLoader
CVE-2026-40563Apache Atlas: Script injection allows access to unintended data
CVE-2026-29169Apache HTTP Server: mod_dav_lock indirect lock crash
CVE-2026-23918Apache HTTP Server: http2: double free and possible RCE on early reset
CVE-2026-33006Apache HTTP Server: mod_auth_digest timing attack
CVE-2026-33007Apache HTTP Server: mod_authn_socache crash
CVE-2026-33523Apache HTTP Server: multiple modules: HTTP response splitting forwarding malicious status
CVE-2026-33857Apache HTTP Server: Off-by-one OOB reads in AJP getter functions
CVE-2026-34032Apache HTTP Server: mod_proxy_ajp: Heap Buffer Over-Read Due to Missing Null-Termination C
CVE-2026-34059Apache HTTP Server: mod_proxy_ajp: Heap Over-Read and memory disclosure in ajp_parse_data
CVE-2026-24072Apache HTTP Server: mod_rewrite elevation of privileges via ap_expr

IV. Related Vulnerabilities

V. Comments for CVE-2026-42440

No comments yet


Leave a comment