Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious DeepPavlov config reference
-
ExploitDeliver config to victim/pipeline
-
Executionresolve() in params.py injects code
-
ImpactArbitrary code executes in process context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Input neutralization, injection prevention
|
| Exploitation Conditions | Exploitation requires the target to process an attacker-influenced DeepPavlov configuration through the Config Reference Resolver (the resolve() function in deeppavlov/core/common/params.py) in versions up to and including 1.7.0; the CVSS UI:P metric indicates passive victim interaction (loading/running a crafted config) is needed rather than fully autonomous remote exploitation. LIMITING FACTORS: the attacker must get malicious config content into the victim's pipeline, the victim must load it, and there is no evidence of exploitation at scale (no KEV, no EPSS) - so this is realistically an abuse of untrusted configuration input, not a drive-by remote RCE against a default network service. |
| Impact | Signals point to a LOW real-world priority despite the 'code injection' label. The only provided CVSS is a VulDB CVSS 4.0 base vector scoring just 2.1, driven by all-Low impacts (VC:L/VI:L/VA:L) and a passive user-interaction requirement (UI:P), with exploit maturity E:P (proof-of-concept). A public POC exists (github-poc exploit archive), but there is NO CISA KEV listing and NO EPSS score in the input, so there is no evidence of active or widespread exploitation - POC availability and active exploitation are distinct and only the former is confirmed here. CONFLICT TO NOTE: the vector declares AV:N (network) and PR:N (no privileges), yet the vulnerability is in a Config Reference Resolver (resolve() in params.py) and the vector also carries UI:P - this strongly implies the victim must load or process an attacker-supplied configuration, i.e. the true access vector is closer to local/config-dependent than genuine remote-unauthenticated. The sole data source is the VulDB CNA (cna@vuldb.com); there is no independent vendor advisory, and the vendor has not responded, so affected-version and impact data are single-sourced and unverified. CWE-74 (injection) combined with 'code injection' could in principle mean arbitrary code execution (far above a 2.1), so the Low impact rating itself may be understated - but the exploitation precondition (loading untrusted config) keeps realistic risk low. |
| Exploit ScenarioDerived | An attacker distributes or convinces a developer/operator to load a crafted DeepPavlov configuration file; when the Config Reference Resolver's resolve() function processes the malicious reference, attacker-controlled code is injected and executed in the context of the DeepPavlov process. A public proof-of-concept (poc.zip) has been released, lowering the bar to reproduce the issue. Because CVSS carries UI:P, the attack hinges on the victim loading the malicious config rather than fully remote unauthenticated delivery. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Code injection in the DeepPavlov conversational AI framework (versions up to and including 1.7.0) allows an attacker who can supply or influence a pipeline configuration file to have arbitrary code executed when that configuration is resolved. The flaw sits in the resolve() function of deeppavlov/core/common/params.py, which turns config reference strings into imported Python objects; per the independent assessment the realistic attack path is local and requires victim interaction (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H), i.e. the victim must load a crafted config rather than being reachable autonomously over the network. Publicly available exploit code exists (a proof-of-concept archive is linked from the GitHub advisory trail), but there is no CISA KEV listing and no evidence of exploitation at scale, so the real-world priority remains low despite the high CIA impact once a malicious config is loaded. The vendor was notified through GitHub issue #1713 and has not responded.
RemediationAI
No vendor-released patch identified at time of analysis: DeepPavlov maintainers were notified via GitHub issue #1713 (https://github.com/deeppavlov/DeepPavlov/issues/1713) and had not responded, so there is no fixed release version to cite and no advisory from the project. Until an upstream fix lands, treat every pipeline configuration as executable code and apply these specific controls: load configs only from sources you control, and diff-review any config pulled from model hubs, shared repositories, or third-party pull requests before use (trade-off: blocks convenient config reuse from untrusted contributors); add an allowlist wrapper or monkey-patch around resolve() that rejects reference strings outside a known set of deeppavlov.* and explicitly approved third-party modules, ideally validating the resolved object is a class or function in an expected package (trade-off: legitimate custom components in other packages will fail to load until added to the list); run training and inference pipelines in a container or sandbox under a non-root user with no host mounts and no outbound network egress (trade-off: restricted egress can break model and dataset downloads, so pre-seed caches); and avoid running DeepPavlov pipelines with elevated credentials or access to sensitive data stores, since successful exploitation yields the process's full privileges (C:H/I:H/A:H). Watch issue #1713 and the project repository at https://github.com/deeppavlov/DeepPavlov/ for a patched release before relaxing these controls.
Affected VersionsENISA
Affected Packages
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
DeepPavlov is an open-source framework for conversational AI in which pipelines are declared in JSON configuration files. Components are not referenced by direct import but by string paths (for example, the '#ref' style references) that the Config Reference Resolver in deeppavlov/core/common/params.py dereferences at load time inside the resolve() function, importing and instantiating whatever dotted path the string names. Because that resolution step trusts the config's contents, a config that reaches resolve() can point at arbitrary modules, classes, or callables, which is the classic CWE-74 improper-neutralization-of-special-elements pattern: untrusted input is interpreted as control data (here, Python import/call targets) rather than as inert data. The CVSS 4.0 record from the CNA scores this as network-reachable (AV:N), whereas the independent assessment treats the practical threat model as local (AV:L) with user interaction (UI:R) and unauthenticated privilege (PR:N) - the difference reflects the fact that the attacker must first place malicious configuration content where the victim's pipeline will load it. There is no server-side auth boundary being crossed; the security boundary is the trust placed in configuration files and in any config content pulled from model hubs, shared repositories, or third-party contributions.
Know when the next one hits your stack
- 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
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
Code injection via a loaded configuration yields arbitrary code execution (C/I/A:H), but requires the victim to process an attacker-supplied config, hence AV:L and UI:R rather than a true remote unauthenticated vector.
Primary rating from Vendor (vuldb).
CVSS VectorVendor: vuldb
DescriptionCVE.org
A security flaw has been discovered in DeepPavlov up to 1.7.0. Impacted is the function resolve of the file deeppavlov/core/common/params.py of the component Config Reference Resolver. The manipulation results in code injection. The attack can be launched remotely. The exploit has been released to the public and may be used for attacks. The project was informed of the problem early through an issue report but has not responded yet.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
EUVD-2026-104130
GHSA-689p-q639-9r39
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB