Skip to main content

FlexGet CVE-2026-113613

| EUVDEUVD-2026-105091 CRITICAL
Path Traversal (CWE-22)
2026-10-20 VulnCheck GHSA-h98p-724m-phfr
9.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Poison feed consumed by FlexGet
  2. Delivery
    Deliver malicious zip/rar archive
  3. Exploit
    Trigger Zip Slip path traversal in decompress plugin
  4. Execution
    Write Python file into plugins directory
  5. Impact
    Execute arbitrary code in FlexGet context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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

Exploitation Conditions

Exploitation requires that the target runs FlexGet's decompress plugin (an optional archive-extraction component, not a default-enabled feature) and that the attacker can get a malicious zip or rar archive processed through a feed the target consumes - i.e., the attacker must be able to poison or supply a feed/archive source. The payload must contain archive member paths with ../ sequences or absolute paths; successful code execution additionally depends on the extraction destination being reachable from (or being) FlexGet's plugins directory so a dropped .py file is loaded. Limiting factors: decompress plugin must be configured, the attacker needs a feed path into the victim's pipeline (reflected as AT:P in the CVSS 4.0 vector), and the resulting code runs with the privileges of the FlexGet process only.

Impact

This is a genuinely high-priority flaw where the signals align rather than conflict. The provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) scores 9.2 and is corroborated by the description and the vendor patch: a path traversal (Zip Slip) in the decompress plugin lets an attacker write arbitrary files, and the description explicitly maps this to code execution by planting a Python file in FlexGet's plugins directory - so VC:H/VI:H/VA:H is well justified. The one metric that tempers the raw score is AT:P (Attack Requirements: Present), which reflects that exploitation is not fully unconditional: the victim must run the decompress plugin and process an archive the attacker can influence via a feed. No EPSS score was supplied and there is no CISA KEV listing, so there is no public evidence of active exploitation; likewise no public exploit code was referenced. The caveat is that this was reported by VulnCheck with a public GitHub security advisory and a patch commit that includes regression tests demonstrating the exact malicious paths ('../../../etc/passwd', absolute paths), which materially lowers the bar for an attacker to reconstruct a working exploit from the diff. Net: treat as a real patch-now priority for anyone running FlexGet with the decompress plugin, while recognizing the deployment footprint is niche and exploitation requires a plausible but non-trivial feed-poisoning precondition.

Exploit ScenarioDerived

An attacker who can influence or control a feed that a target's FlexGet instance subscribes to publishes a zip or rar archive whose member paths contain ../ sequences or an absolute path. When FlexGet's decompress plugin extracts the archive, the traversal writes an attacker-supplied .py file into FlexGet's plugins directory, which is loaded and executed as code in the FlexGet process context. No public exploit code was identified at time of analysis, but the patch commit ships regression tests that spell out the malicious paths.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.8% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Path traversal (Zip Slip) in FlexGet's optional decompress plugin allows remote attackers to write arbitrary files outside the intended extraction directory by delivering archives containing ../ sequences or absolute member paths through a feed. Affected are FlexGet releases before 3.20.7 that have the decompress plugin configured; an attacker who can supply or poison a feed consumed by the target can drop Python files into FlexGet's plugins directory, achieving code execution with the privileges of the FlexGet process. A vendor fix exists in 3.20.7 (commit 38fa748) adding a resolved-path containment check and a PathTraversalError class, and the public commit diff plus regression tests effectively document the exploitation technique; no public exploit was identified at time of analysis and there is no KEV confirmation of active exploitation.

RemediationAI

Vendor-released patch: upgrade to FlexGet 3.20.7 or later (release tag v3.20.7, fix commit 38fa748461e20befee942f5c79d8a098edea5c1f), which resolves the extraction destination against the extraction root and raises PathTraversalError so malicious archive members are skipped and logged; advisory details are at https://github.com/Flexget/Flexget/security/advisories/GHSA-6v57-v478-59v9. If immediate upgrade is not possible, the highest-value compensating control is to disable or remove the decompress plugin from any task configuration that processes feeds from untrusted or third-party sources-trade-off: archive-based workflows stop functioning until the upgrade is applied. Restrict where extraction is targeted so that the 'to' destination is a directory the FlexGet process cannot use to reach its own plugins or config directories, and run FlexGet as a low-privileged dedicated user in a container with read-only mounts on the application code and plugin directories-trade-off: legitimate plugin drops and self-updates must be handled out-of-band. Lastly, constrain which feeds can deliver archives (allow-list trusted feed sources and validate archive contents before they enter a task)-trade-off: additional operational overhead and possible false positives on legitimate archives.

Affected VersionsENISA

FlexGet 0 <3.20.7

Affected Packages

euvd flexget fix: 3.20.7

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

FlexGet is a Python-based automation tool for RSS/feed-driven media workflows, and its archives component implements a 'decompress' plugin that extracts downloaded zip/rar/tar archives into a destination directory. The vulnerable code lived in flexget/components/archives/decompress.py, where get_destination_path() concatenated the archive member's declared path (info.path) onto the extraction root without verifying that the resulting path stayed within that root-the classic CWE-22 / Zip Slip pattern where an archive entry named '../../etc/passwd', '../outside.txt', or '/etc/passwd' resolves outside the destination. The upstream fix (commit 38fa748461e20befee942f5c79d8a098edea5c1f) resolves both the destination and the root and rejects entries that are not relative to the root, introducing a PathTraversalError in flexget/components/archives/utils.py that the extractor catches and logs as 'Skipping malicious archive entry', so malicious members are dropped rather than extracted. The commit also ships parametrized regression tests covering relative traversal, single-level '../', and absolute paths. Because FlexGet supports drop-in Python plugins, arbitrary file write into the plugins directory converts a file-write primitive into Python code execution. The CPE cpe:2.3:a:flexget:flexget:*:*:*:*:*:*:*:* confirms all pre-3.20.7 versions are in scope; the CVSS 4.0 vector (AT:P, PR:N/UI:N) reflects that exploitation requires the attacker to have a feed-level path into the victim's pipeline, not that authentication is required-the vector contains PR:N.

Know when Flexget 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 (VulnCheck) PRIMARY 9.2 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

AV:N and PR:N because the attacker authenticates to nothing but AC:H captures the required decompress-plugin config plus attacker-influenced feed; file write to plugins dir yields full C/I/A within the FlexGet process (S:U).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

FlexGet before 3.20.7 contains a path traversal vulnerability in the decompress plugin that allows remote attackers to write arbitrary files by supplying malicious archive member paths. Attackers can deliver zip or rar archives with ../ sequences or absolute paths through a feed, writing Python files into the plugins directory for code execution.

Technical POC Analysis

CWE-22 path traversal, specifically a Zip Slip variant.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

FlexGet deployments running releases prior to 3.20.7 with the optional decompress plugin enabled can be tricked into writing files outside the intended extraction directory via a poisoned feed, creating a path to code execution under the FlexGet service account. This matters to leadership because FlexGet typically runs unattended with access to media libraries, credentials, and scheduled workflows, so a compromise could reach beyond the application itself. No public exploit was identified at time of analysis, and the vendor has released FlexGet 3.20.7 to remediate the issue.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.8%
Top 45% exploitable
Prevalence
Low
niche hobbyist media-automation tool, minimal enterprise footprint
Data Quality
5 sources
Confidence: Medium

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.8%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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