Skip to main content

Apache BuildStream CVE-2026-82331

| EUVDEUVD-2026-85113 CRITICAL
Improper Link Resolution Before File Access (CWE-59)
2026-09-23 security@apache.org GHSA-5xjv-h9hc-3vv9
Critical
Disputed · 9.8 Vendor: apache
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious source tarball with escaping symlinks
  2. Delivery
    Get project to reference it as a tar source
  3. Exploit
    Victim runs BuildStream fetch on Python <3.12
  4. Execution
    Symlink following writes files outside extract dir
  5. Persist
    Arbitrary file write as build user
  6. Impact
    Code execution / host compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Requires the tar source plugin of BuildStream to fetch an attacker-controlled or untrusted source tarball containing symlinks that escape the extraction directory, AND the host must run Python < 3.12 (Python >= 3.12 with BuildStream >= 2.3.0 applies the tarfile extraction filter that blocks the escape). Exploitation is limited by: the victim must build/fetch an untrusted project (trusted-source-only projects are not affected), SHA256 hash pinning on already-tracked sources prevents MITM substitution, and impact is bounded to the privileges of the user running BuildStream. Not exploitable against default use of trusted, tracked sources.

Impact

The published CVSS 3.1 base score is 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), which paints this as a wormable, no-interaction, unauthenticated remote compromise. That rating is misleading when cross-referenced against the other signals. EPSS is only 0.19% (10th percentile) and CISA's SSVC decision is Exploitation=none, Automatable=yes, Technical Impact=total - i.e. no observed or public exploitation despite the high technical impact. There is no CISA KEV listing and no public POC. Critically, the description itself lists mitigations that contradict the PR:N/UI:N framing: exploitation requires the victim to fetch/build a BuildStream project that references a malicious or attacker-controlled source tarball, and it only works on Python < 3.12 (Python >= 3.12 with BuildStream >= 2.3.0 uses the tarfile extraction filter that blocks the symlink escape). SHA256 pinning on tracked sources further blocks MITM tampering of already-tracked projects. In practice this is a supply-chain / trusted-input problem gated on user action (building an untrusted project) and a specific interpreter version, not an internet-facing remote hole - real-world priority is LOW-to-MODERATE for organizations that build untrusted BuildStream projects on Python < 3.12, despite the 9.8 label.

Exploit ScenarioDerived

An attacker publishes or tampers with a source tarball referenced by a BuildStream element's tar source plugin, embedding symlinks that point outside the extraction directory. When a developer or CI system fetches/builds that project on Python < 3.12, extraction follows the symlinks and writes attacker-controlled files anywhere the BuildStream user can write, enabling code execution or config tampering as that user. No public exploit code has been identified at time of analysis.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 23, 2026

Symlink-based path traversal in the tar source plugin of Apache BuildStream (versions up to and including 2.8.0, running on Python < 3.12) lets a malicious source tarball write arbitrary files on the host with the privileges of the user running BuildStream, resulting in full confidentiality, integrity, and availability impact to that user's environment. The vendor-published CVSS 3.1 base score is 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), but the assessed vector adds UI:R: exploitation requires the victim to fetch and extract an attacker-controlled or otherwise untrusted source tarball, and it is not exploitable against projects that use only trusted, tracked sources, since SHA256 hash pinning of tracked tarballs prevents MITM substitution. No public exploit code and no confirmed active exploitation were identified at time of analysis (CISA SSVC exploitation: none; EPSS 0.19%, 10th percentile); the vendor-released patch is BuildStream 2.8.1, and hosts running Python >= 3.12 with BuildStream >= 2.3.0 are already protected because the Python tarfile extraction filter blocks the symlink escape.

RemediationAI

Vendor-released patch: upgrade Apache BuildStream to 2.8.1, which fixes the symlink escape in the tar source plugin (advisory: https://lists.apache.org/thread/9b342631x7bvtyg0pq7zgywtl2cmy34v, https://seclists.org/oss-sec/2026/q3/888). If upgrading immediately is not possible, running BuildStream on Python 3.12 or later with BuildStream >= 2.3.0 is an effective mitigation because the Python tarfile extraction filter blocks symlink members escaping the extraction root; the trade-off is that this requires changing the interpreter/runtime rather than the application and yields no protection on older Python. Additional compensating controls, each with trade-offs: enforce a trusted-source-only policy for all project elements (eliminates the attack vector but prevents legitimate use of third-party or user-supplied tarballs), pin/track every source tarball so its SHA256 hash is recorded and verified (blocks MITM substitution of tracked sources, but does not protect the initial untracked fetch of a malicious archive), and execute BuildStream builds as an unprivileged, low-privilege account inside a container or sandbox with write access limited to the build directory (bounds the file-write impact to that sandbox - which is precisely where the vulnerable extraction occurs - but adds operational overhead and may break builds that legitimately write outside their workspace). Do not rely on the vendor-published 9.8 base score in isolation when prioritizing: the assessed vector includes UI:R, the SSVC exploitation state is 'none', EPSS is 0.19% (10th percentile), and exploitability depends on an untrusted source tarball being fetched on a Python < 3.12 host.

Affected VersionsENISA

Apache BuildStream 0 ≤2.8.0

Affected Packages

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

The root cause class is CWE-59, Improper Link Resolution Before File Access ('Link Following'). BuildStream's tar source plugin extracts fetched source tarballs during source staging; prior to the fix it did not constrain how symlink members inside the archive were resolved, so an archive containing a symlink pointing outside the extraction directory (e.g., to a path in the user's home or a configuration directory) could be followed when a subsequent archive member was written, causing files to be created or overwritten outside the intended source directory. The behaviour is version- and runtime-dependent: Python's tarfile module only gained an extraction filter (filter='data') in Python 3.12, and BuildStream >= 2.3.0 adopted it when running on Python >= 3.12, which is why the vulnerability is limited to BuildStream instances executing on Python < 3.12. Apache-distributed BuildStream is the affected codebase (EUVD lists 'Apache BuildStream 0 ≤ 2.8.0'); the advisory was published by security@apache.org and cross-posted to the oss-security list. The supplied tags (Python, Apache, Information Disclosure) reflect the disclosure surface, but the practical consequence is arbitrary file write as the invoking user rather than mere information disclosure.

Know when Python 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

Sources disagree (Medium–Critical)
Vendor (apache) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Tarball delivered over network but victim must build an untrusted source, so UI:R; arbitrary file write as build user yields C/I/A:H within an unchanged scope.

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
SUSE CRITICAL
Red Hat 6.6 MEDIUM

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Sep 23, 2026 - 15:22 NVD
9.8 (CRITICAL)
CVE Published
Sep 23, 2026 - 07:16 cve.org
CRITICAL 9.8
CVE Published
Sep 23, 2026 - 07:16 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Improper link resolution before file access ('link following') vulnerability in the tar source plugin of Apache BuildStream running on Python < 3.12 allows malicious source tarballs to write files on the host, with the privileges of the user running BuildStream, via symlinks as part of source fetching. The impact of this issue is mitigated by:

  • BuildStream projects should only use trusted sources in their elements as otherwise the build output can also not be trusted
  • Tracking a source tarball pins its SHA256 hash, which prevents MITM attacks of users that are fetching an already tracked project
  • When running on Python >= 3.12, BuildStream >= 2.3.0 already makes use of the Python tarfile filter functionality, which blocks the symlink escape

Users are recommended to upgrade to version 2.8.1, which fixes this issue.

Executive ViewAI

Why It Matters

Apache BuildStream's tar source plugin, in versions up to and including 2.8.0 running on Python earlier than 3.12, can be manipulated into writing arbitrary files onto a host with the permissions of the user running the build. The exposure is concentrated in engineering teams and CI/CD systems that consume source tarballs from outside their trusted, hash-pinned supply chain, so a successful attack could compromise developer endpoints or shared build infrastructure rather than a customer-facing service. Because exploitation requires a victim to fetch and extract an untrusted tarball and no public exploit or active exploitation has been identified, this is a high-priority supply-chain hardening obligation rather than a fire drill.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
Niche build/integration tool used mainly in GNOME/freedesktop ecosystems
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment Vendor 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Total

Priority Score

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

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Vendor StatusVendor

SUSE

Severity: Critical

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