Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPoison feed consumed by FlexGet
-
DeliveryDeliver malicious zip/rar archive
-
ExploitTrigger Zip Slip path traversal in decompress plugin
-
ExecutionWrite Python file into plugins directory
-
ImpactExecute 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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.
Articles & Coverage 1
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
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.
Apply vendor patch.
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
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.
EUVD-2026-105091
GHSA-h98p-724m-phfr
NVD
CVE.org
EPSS
Exploit-DB