Skip to main content

DeepPavlov EUVDEUVD-2026-104130

| CVE-2026-112098 LOW
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-10-19 cna@vuldb.com GHSA-689p-q639-9r39
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 DeepPavlov config reference
  2. Exploit
    Deliver config to victim/pipeline
  3. Execution
    resolve() in params.py injects code
  4. Impact
    Arbitrary 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.

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

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

DeepPavlov 1.0
DeepPavlov 1.3
DeepPavlov 1.6
DeepPavlov 1.5
DeepPavlov 1.1
DeepPavlov 1.2
DeepPavlov 1.4
DeepPavlov 1.7.0

Affected Packages

euvd deeppavlov 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

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

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 7.8 HIGH

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/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

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

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche open-source NLP/conversational-AI research framework, limited production footprint
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL 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
No
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

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

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