Skip to main content

Bash-it EUVDEUVD-2026-56927

| CVE-2026-73036 MEDIUM
Improper Neutralization of Escape, Meta, or Control Sequences (CWE-150)
2026-08-11 disclosure@vulncheck.com GHSA-jh23-4vmr-7f8q
4.6
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Place crafted pyproject.toml in reachable directory
  2. Delivery
    Victim navigates into directory with barbuk theme active
  3. Exploit
    awk reads unfiltered requires-python field
  4. Execution
    Escape sequences concatenated into PS1
  5. Persist
    Terminal emulator interprets injected OSC/CSI sequences
  6. Impact
    Attacker 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

Bash-it 0 ≤3.2.0

Affected Packages

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

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

Vendor (vulncheck) PRIMARY 4.6 MEDIUM
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
vuln.today AI 5.0 MEDIUM

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.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

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

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
niche bash framework requiring specific barbuk theme selection
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

23
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +23
PoC: 0
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.

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

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