Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPlace crafted pyproject.toml in reachable directory
-
DeliveryVictim navigates into directory with barbuk theme active
-
Exploitawk reads unfiltered requires-python field
-
ExecutionEscape sequences concatenated into PS1
-
PersistTerminal emulator interprets injected OSC/CSI sequences
-
ImpactAttacker achieves terminal manipulation or data exfiltration
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Escape character neutralization
|
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) the victim must have Bash-it installed and the barbuk theme selected as their active prompt theme - other Bash-it themes are not affected; (2) the victim's working directory must contain a pyproject.toml file with escape sequences embedded in the requires-python field value; and (3) the victim must navigate into (cd into) that directory during an active terminal session, triggering prompt re-render. The attacker must have the ability to place a file in a directory the victim will visit, which requires either write access to a shared filesystem, the ability to deliver a directory via a repository or archive, or social engineering. Exploitation is blocked if the victim uses any theme other than barbuk, if no pyproject.toml is present in the current directory, or if the victim's terminal emulator ignores OSC/CSI sequences (rare in practice). The attack does not require any network connectivity, daemon or service, or elevated privileges on the victim's system. |
| Impact | The CVSS 4.0 score of 4.6 is calibrated appropriately for this vulnerability. The local attack vector (AV:L) is the dominant limiting factor: an attacker must be able to place a malicious pyproject.toml in a filesystem location the victim user will cd into, whether via a shared filesystem, a social engineering download, or a cloned repository. The required user interaction (UI:A) further constrains exploitation - the victim must actively navigate to the directory. Impact is bounded at Low for both confidentiality and integrity: OSC sequences can potentially exfiltrate terminal title or clipboard content on some emulators, and CSI sequences can manipulate displayed text, fake prompts, or redirect input - but cannot achieve code execution directly. There is no known active exploitation and no KEV listing. EPSS data was not provided in the source intelligence, so probabilistic exploitation likelihood cannot be quantified. The combination of file-placement prerequisite and required navigation means even a small developer team with disciplined repository hygiene is largely insulated, while environments that routinely open untrusted project directories (e.g., CI workers scanning arbitrary repos, developers triaging third-party submissions) carry meaningfully higher exposure. |
| Exploit ScenarioDerived | An attacker creates a pyproject.toml file containing a requires-python value with embedded OSC terminal sequences - for example, a sequence that changes the terminal window title to impersonate a trusted application or writes characters to the input buffer to execute a command. The attacker delivers this file to a target directory via a shared repository, email attachment, or social engineering (e.g., 'clone and review this project'). When the victim user, running Bash-it with the barbuk theme, navigates into that directory, the injected sequences execute silently in the terminal emulator on the next prompt render without any additional user action. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 11, 2026
Terminal escape sequence injection in Bash-it's barbuk theme (versions through 3.2.0) permits a local attacker to execute arbitrary OSC and CSI terminal control sequences in the context of a victim user's terminal emulator simply by placing a crafted pyproject.toml in any directory the victim navigates into. The root cause is that the barbuk theme's __python_venv_prompt function reads the requires-python field via awk without stripping control characters, then concatenates the raw value into PS1 through __prompt-command, causing injected sequences to render on every prompt refresh. No public exploit code has been identified at time of analysis and the vulnerability is not listed in the CISA KEV catalog, though the attack is low-complexity given the vendor-confirmed fix commit.
RemediationAI
The upstream fix is available in commit fab8f57818f28bfc6f2a81f86a58981c4ea72e5a, merged via pull request https://github.com/Bash-it/bash-it/pull/2397. Users should update their Bash-it installation to a release incorporating this commit; no specific tagged release version post-3.2.0 was independently confirmed in the available data, so verify the current HEAD or latest release includes commit fab8f57 before upgrading. As an immediate workaround, users can switch to any Bash-it theme other than barbuk, which eliminates the vulnerable code path entirely with no functional side effects beyond losing the barbuk theme's visual style. A second workaround is to disable the Python virtualenv prompt segment within barbuk by unsetting or overriding __python_venv_prompt in local configuration; this removes the requires-python parsing without switching themes but loses the Python version indicator. Do not rely on pyproject.toml input validation as a mitigation, as the pyproject.toml format imposes no restrictions on the requires-python field.
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
CWE-150 (Improper Neutralization of Escape, Meta, or Control Sequences) describes exactly this failure mode: user-controlled input containing terminal control sequences reaches an output context - here PS1, the shell prompt variable - without sanitization. The affected component is the __python_venv_prompt function in themes/barbuk/barbuk.theme.bash, which uses awk with -F'"' to extract the requires-python value from a pyproject.toml in the current working directory. Because pyproject.toml imposes no character restrictions on that field, an attacker can embed raw ESC bytes (CSI sequences like ESC[), OSC sequences (ESC]...BEL), or textual backslash-escape representations (e.g., \e]...\a). These flow unfiltered into PS1 and are re-evaluated by the terminal emulator on every prompt render. A secondary vector existed in the git branch display function, which used echo -e, allowing escape expansion of SCM variable content. The fix (commit fab8f57) applies a two-layer defense: an awk gsub() call strips non-printable ASCII ([^\40-\176]) and backslash-letter sequences from the extracted value, and a Bash parameter expansion strip (info="${info//[[:cntrl:]]/}") is added in __prompt-command as a defense-in-depth catch-all.
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
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Local vector because attack requires file placement in victim's filesystem; scope change because the terminal emulator, not just the bash process, processes injected sequences.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
Bash-it 3.2.0 contains a terminal escape sequence injection vulnerability in the barbuk theme's Python virtualenv prompt segment that allows local attackers to inject arbitrary terminal control sequences by embedding escape sequences in the requires-python field of a pyproject.toml file. When a user navigates into a directory containing a maliciously crafted pyproject.toml, the unfiltered field value is read via awk and concatenated directly into PS1 through __prompt-command without stripping control characters, causing injected OSC or CSI sequences to be written to and interpreted by the terminal emulator on every prompt render.
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.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
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
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
EUVD-2026-56927
GHSA-jh23-4vmr-7f8q
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB