目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1336

100%

CVE-2026-67211— Apache OpenNLP SymSpell模型序列化器内存溢出漏洞

一分钟漏洞结论

影响对象
Apache Software Foundation Apache OpenNLP
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

以下是该漏洞描述信息的中文翻译: --- 通过 Apache OpenNLP SymSpellModelSerializer 中无界 Map 预分配导致的内存溢出(OOM)拒绝服务漏洞 受影响版本: 3.0.0-M4 3.0.0-M5 (opennlp-spellcheck 扩展是在 3.0.0-M4 中引入的。1.x 和 2.x 版本不包含受影响的代码。) 描述: 方法会从二进制的 SymSpell 模型流中读取两个 32 位有符号整数计数字段( 和 ),并在验证其非负后,将每个值直接传递给 。由于未应用上限,当

AI 预测 5.5 利用难度: 较易

影响版本矩阵 1

厂商产品 版本范围状态
Apache Software Foundation Apache OpenNLP 3.0.0-M4< 3.0.0-M6 affected
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-67211 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
Apache OpenNLP: OOM DoS via Unbounded Array Allocation in SymSpellModelSerializer
来源: CVE Program / CVE List V5
Vulnerability Description
OOM Denial of Service via Unbounded Map Pre-Sizing in Apache OpenNLP SymSpellModelSerializer Versions Affected: - 3.0.0-M4 - 3.0.0-M5 (The opennlp-spellcheck extension was introduced in 3.0.0-M4. Releases 1.x and 2.x do not contain the affected code.) Description: The SymSpellModelSerializer.create() method reads two 32-bit signed integer count fields (unigramCount and bigramCount) from a binary SymSpell model stream and passes each value directly to LinkedHashMap.newLinkedHashMap() after validating only that it is non-negative. No upper bound is applied, so the count is fully attacker-controlled when the model file originates from an untrusted source. A crafted .bin model file in which either count field is set to Integer.MAX_VALUE (or any value large enough to exhaust the available heap) causes the map to be pre-sized to a capacity of 2^30 entries. The oversized backing array is allocated on the first put() into that map, requesting 4–8 GB depending on whether compressed oops are in effect, and the load fails with an OutOfMemoryError. Because the count fields sit immediately after a fixed-size header (magic, format version, three UTF strings, the configuration fields, and the edit-distance identifier) the attacker pays no meaningful size cost to weaponize a payload: a file of well under 100 bytes plus a single real entry is sufficient to crash a JVM that loads it. Any code path that deserializes a SymSpell model is affected, including SymSpellModels.deserialize(InputStream), SymSpellModels.fromBytes(byte[]), classpath model loading via SymSpellModelResolver.resolveByLanguage(String), the CorrectTextTool command-line tool, and model-archive loading through the registered ArtifactSerializer. The opennlp-spellcheck extension ships in the official OpenNLP binary distribution. The practical impact is denial of service against processes that load SymSpell model files from untrusted or semi-trusted origins. Mitigation: - 3.x users should upgrade to 3.0.0-M6. Note: The fix applies an upper bound to both count fields, checked before the map is pre-sized; counts that are negative or exceed the bound cause an IOException to be thrown and the read to fail fast with no large allocation. The bound is the existing AbstractModelReader.MAX_ENTRIES limit introduced earlie, which the current change promotes to public visibility so that serializers implementing their own binary format can share it. The default bound is 10,000,000, which is well above the entry counts of legitimate SymSpell dictionaries but far below any value that would threaten heap exhaustion. Deployments that legitimately need to load larger dictionaries 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. Note that this property is shared with the model-reader limit and raising it relaxes both. Users who cannot upgrade immediately should treat all SymSpell .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.
来源: CVE Program / CVE List V5
CVSS Information
N/A
来源: CVE Program / CVE List V5
Vulnerability Type
未经控制的内存分配
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Apache Software Foundation Apache OpenNLP 3.0.0-M4 ~ 3.0.0-M6 -

二、漏洞 CVE-2026-67211 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-67211 的情报信息

登录查看更多情报信息。

CVE-2026-67211 邮件列表归档 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-67211

暂无评论


发表评论