Skip to main content

HanLP EUVDEUVD-2026-104067

| CVE-2026-112079 LOW
Deserialization of Untrusted Data (CWE-502)
2026-10-19 VulDB GHSA-q7j8-9vmr-j8qv
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious pickle vocab file
  2. Delivery
    Distribute model to target user
  3. Exploit
    Victim loads vectors.vocab
  4. Execution
    Unsafe deserialization triggers payload
  5. Impact
    Execute arbitrary code in process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a victim to load an attacker-supplied word2vec vectors.vocab file through HanLP's load_word2vec_as_vocab_tensor function, which deserializes it with Python pickle. The key prerequisite and primary limiting factor is this user interaction (UI:P): the attack is not against a running network service but depends on a user being tricked into opening or loading a malicious/untrusted model file. No authentication is required of the attacker (PR:N), and no special non-default product configuration is needed - the vulnerable loading path exists in HanLP up to 2.1.0-beta.64 - but the mandatory file-loading step and reliance on social engineering or a compromised model-distribution channel meaningfully constrain mass exploitation.

Impact

This is a CWE-502 untrusted-deserialization (Python pickle) flaw in HanLP's load_word2vec_as_vocab_tensor function, where a crafted vectors.vocab argument/file is unpickled. The signals are mixed. The VulDB-assigned CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:P) with only Low impacts yields a modest 5.3, but that Low/Low/Low impact rating understates typical pickle deserialization, which generally grants arbitrary code execution in the loading process - my independent assessment rates impact as High across C/I/A. Exploitation is NOT unattended: UI:P (passive user interaction) means a victim must be induced to load an attacker-supplied word2vec/vocab file, so this is a trust-boundary/supply-style issue rather than a direct remote-service compromise. A public POC exists (a pickle POC zip), but there is NO CISA KEV listing and no EPSS score was provided, so there is no evidence of widespread automated exploitation - risk is opportunistic/targeted (tricking a user into loading a malicious model). Note the vendor was notified via issue #1968 but has not responded, so no fix is confirmed. Net: a genuine code-execution risk for anyone who loads untrusted HanLP vocab/model files, but lower urgency than the 'remote unauthenticated' phrasing suggests because user interaction is mandatory and there is no mass-exploitation signal.

Exploit ScenarioDerived

An attacker publishes or shares a malicious HanLP word2vec vocabulary/model file (as in the public pickle POC) that embeds a serialized object with an attacker-controlled reduce payload. When a victim loads that file via load_word2vec_as_vocab_tensor, the pickle is deserialized and the embedded code executes in the victim's Python process. A public POC archive (hanlp-ddb1299-vocab-pickle-poc.zip) demonstrates the technique.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 19, 2026

Deserialization of untrusted data in HanLP through 2.1.0-beta.64 allows an attacker who supplies a crafted vectors.vocab file to execute arbitrary code when a victim loads it with load_word2vec_as_vocab_tensor. The attack can be delivered remotely but requires the victim to open or load the malicious model file, so user interaction is the key prerequisite; no authentication or special configuration is needed. Publicly available exploit code exists, but the supplied intelligence does not confirm CISA KEV active exploitation.

RemediationAI

No vendor-released patch identified at time of analysis; the project was reportedly notified via issue report but had not responded. Until a fixed HanLP version is published, do not load vectors.vocab files from untrusted, unverified, or compromised sources, and treat model files as executable code because static scanning alone cannot make pickle safe. If untrusted model loading is unavoidable, isolate HanLP in a low-privilege sandbox or container with no secrets, restricted network access, and no host mounts, or replace pickle-based loading with a restricted unpickler or a non-executable format such as JSON or NumPy in a trusted preprocessing step; these controls add operational overhead and may break compatibility. Track https://github.com/hankcs/HanLP/issues/1968 and https://vuldb.com/vuln/421758 for an official fix.

Affected VersionsENISA

HanLP 2.1.0-beta.10
HanLP 2.1.0-beta.20
HanLP 2.1.0-beta.53
HanLP 2.1.0-beta.41
HanLP 2.1.0-beta.0
HanLP 2.1.0-beta.12
HanLP 2.1.0-beta.31
HanLP 2.1.0-beta.9
HanLP 2.1.0-beta.29
HanLP 2.1.0-beta.54
HanLP 2.1.0-beta.42
HanLP 2.1.0-beta.7
HanLP 2.1.0-beta.13
HanLP 2.1.0-beta.6
HanLP 2.1.0-beta.3
HanLP 2.1.0-beta.44
HanLP 2.1.0-beta.33
HanLP 2.1.0-beta.60
HanLP 2.1.0-beta.5
HanLP 2.1.0-beta.52
HanLP 2.1.0-beta.14
HanLP 2.1.0-beta.15
HanLP 2.1.0-beta.51
HanLP 2.1.0-beta.55
HanLP 2.1.0-beta.27
HanLP 2.1.0-beta.63
HanLP 2.1.0-beta.58
HanLP 2.1.0-beta.48
HanLP 2.1.0-beta.19
HanLP 2.1.0-beta.40
HanLP 2.1.0-beta.57
HanLP 2.1.0-beta.37
HanLP 2.1.0-beta.1
HanLP 2.1.0-beta.25
HanLP 2.1.0-beta.4
HanLP 2.1.0-beta.28
HanLP 2.1.0-beta.46
HanLP 2.1.0-beta.38
HanLP 2.1.0-beta.34
HanLP 2.1.0-beta.23
HanLP 2.1.0-beta.47
HanLP 2.1.0-beta.56
HanLP 2.1.0-beta.35
HanLP 2.1.0-beta.61
HanLP 2.1.0-beta.18
HanLP 2.1.0-beta.16
HanLP 2.1.0-beta.43
HanLP 2.1.0-beta.50
HanLP 2.1.0-beta.62
HanLP 2.1.0-beta.24
HanLP 2.1.0-beta.39
HanLP 2.1.0-beta.49
HanLP 2.1.0-beta.30
HanLP 2.1.0-beta.64
HanLP 2.1.0-beta.11
HanLP 2.1.0-beta.2
HanLP 2.1.0-beta.26
HanLP 2.1.0-beta.45
HanLP 2.1.0-beta.59
HanLP 2.1.0-beta.8
HanLP 2.1.0-beta.21
HanLP 2.1.0-beta.32
HanLP 2.1.0-beta.36
HanLP 2.1.0-beta.17
HanLP 2.1.0-beta.22

Affected Packages

euvd hanlp no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

This is a CWE-502 untrusted deserialization issue in HanLP, a natural-language processing library. The affected routine, load_word2vec_as_vocab_tensor in hanlp/utils/torch_util.py, consumes a vectors.vocab file and uses Python pickle to deserialize it; pickle can invoke arbitrary callables during unpickling, so a malicious vocab file becomes code execution in the context of the process that loads it. The CPE cpe:2.3:a:hankcs:hanlp:*:*:*:*:*:*:*:* reflects the HanLP package, with the description bounding affected code at 2.1.0-beta.64. A public PoC archive is referenced at https://github.com/user-attachments/files/32910161/hanlp-ddb1299-vocab-pickle-poc.zip, and the vendor issue is https://github.com/hankcs/HanLP/issues/1968.

Know when Hanlp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 8.8 HIGH

Pickle deserialization of an attacker-supplied file yields code execution (C/I/A:H); the victim must load the file so UI:R, no attacker auth so PR:N, file delivered remotely so AV:N.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Severity Changed
Oct 19, 2026 - 05:22 NVD
MEDIUM LOW
CVSS changed
Oct 19, 2026 - 05:22 NVD
5.3 (MEDIUM) 2.1 (LOW)
CVE Published
Oct 19, 2026 - 04:45 cve.org
MEDIUM 5.3

DescriptionCVE.org

A vulnerability has been found in hankcs HanLP up to 2.1.0-beta.64. The affected element is the function load_word2vec_as_vocab_tensor of the file hanlp/utils/torch_util.py. The manipulation of the argument vectors.vocab leads to deserialization. The attack is possible to be carried out remotely. The exploit has been disclosed to the public and may be used. The project was informed of the problem early through an issue report but has not responded yet.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular Chinese-language NLP library, but domain-specific, not ubiquitous infrastructure
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy