Skip to main content

onefetch EUVDEUVD-2026-87938

| CVE-2026-100866 MEDIUM
Improper Neutralization of Escape, Meta, or Control Sequences (CWE-150)
2026-09-27 disclosure@vulncheck.com GHSA-fp7q-m5xh-3ggj
4.8
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Craft repo manifest with ANSI/OSC escapes in name/version
  2. Exploit
    Victim clones and runs onefetch
  3. Execution
    Fields written to terminal unsanitized
  4. Impact
    Escape sequences manipulate terminal output/title

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 the victim to run the onefetch CLI (version through 2.28.1) against a repository whose project manifest name or version fields have been populated with attacker-supplied ANSI/OSC terminal escape sequences; the attacker must therefore control the manifest contents of a repo the victim inspects. Impact is limited by the local attack vector (victim must execute the tool), the required user interaction, and the terminal emulator's own handling of escape sequences - the concrete effect (title rewrite, hidden/spoofed text, emulator-specific behavior) varies by terminal and there is no code execution within onefetch itself.

Impact

This is a genuinely low-to-medium real-world risk despite being a valid injection flaw. The vendor CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N) scores 4.8 (medium) and is internally consistent with the description: exploitation is local (the victim must run onefetch against attacker-controlled repository data), requires passive user interaction, and yields only limited integrity impact (VI:L) with no confidentiality or availability loss. There is no EPSS score, no CISA KEV listing, and no public exploit code identified at time of analysis, so exploitation status is 'no public exploit identified at time of analysis.' The signals do not conflict: a local vector plus required user interaction plus integrity-only impact all point to a low-severity, opportunistic issue rather than a mass-exploitation priority. The only mild tension is the 'Code Injection' tag, which overstates the flaw - CWE-150 (improper neutralization of escape/meta characters) describes terminal escape-sequence injection, not arbitrary code execution in onefetch itself. Note that terminal-escape injection can occasionally escalate on specific emulators (window-title rewrite, clipboard/paste tricks), which is why residual risk is not zero, but the vendor conservatively rated integrity as Low.

Exploit ScenarioDerived

An attacker publishes or contributes a Git repository whose project manifest (e.g. name or version field) contains embedded ANSI/OSC escape sequences. When a victim clones the repo and runs onefetch (2.28.1 or earlier) to display its summary, onefetch writes those field values to the terminal without stripping control characters, letting the attacker rewrite the window title, hide or spoof text, or trigger emulator-specific behavior. No public exploit code has been identified, and success depends on the victim voluntarily running the tool against the malicious repository.

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 – Sep 27, 2026

Terminal escape sequence injection in the onefetch CLI (through version 2.28.1) lets an attacker who controls a repository's project manifest metadata manipulate the victim's terminal when the victim runs onefetch against that repository. Because the tool writes manifest name and version field values directly to the terminal without neutralizing control characters, embedded ANSI/OSC sequences can rewrite window titles, hide or spoof displayed text, or trigger emulator-specific behavior; the concrete effect depends on the terminal emulator in use. There is no public exploit code identified at time of analysis and no confirmed active exploitation, CVSS is 4.8, and the assessed real-world risk is low-to-medium: the attacker must first get the victim to inspect a repository containing poisoned manifest fields, and exploitation yields display manipulation rather than code execution within onefetch itself.

RemediationAI

No vendor-released patch identified at time of analysis, so there is no fixed version to cite; track https://github.com/o2sh/onefetch/issues/1828 and the project repository at https://github.com/o2sh/onefetch for a release that sanitizes or escapes control characters in info_field.rs and version.rs, and upgrade as soon as a patched build is published (the affected range is all releases through 2.28.1). Until then, the most effective compensating control is simply not running onefetch against repositories whose manifest contents you do not trust, including freshly cloned or contributor-supplied forks, since the injection only triggers when the tool reads the poisoned field. If untrusted repositories must be inspected, run onefetch inside a disposable container or VM and pipe its output through a filter that strips C0 control bytes and escape sequences (for example tr or sed removing \x1b and \x00-\x1f) before the bytes reach the terminal, accepting that this sanitization can also mangle legitimate colored output and Unicode rendering. Harden the terminal itself by disabling window-title setting, OSC 8 hyperlinks, and clipboard sequences where the emulator allows it, which neutralizes the highest-visibility effects (title rewrite and spoofed links) but does not stop every emulator-specific sequence, and note that plain-text capture of the raw output for later inspection preserves the malicious bytes, so review such captures with an editor that does not interpret escapes.

Affected VersionsENISA

onefetch 0 ≤2.28.1

Affected Packages

euvd onefetch 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 flaw is a classic CWE-150 (Improper Neutralization of Escape, Meta, or Control Sequences) instance in a Rust command-line tool. onefetch gathers repository statistics and renders them to a terminal; the affected code paths in src/info/utils/info_field.rs (lines 43-55) and src/info/version.rs (lines 33-35) emit field values verbatim, so any C0 control bytes or escape sequences carried inside a manifest value (for example the version or name string in a Cargo.toml, package.json, or comparable project manifest) are interpreted by the terminal emulator rather than displayed literally. ANSI CSI/SGR sequences can hide or reposition text, while OSC sequences (such as OSC 0/2 window-title setting or OSC 8 hyperlinking) allow output redirection or clickable-link spoofing; some emulators also implement OSC 52 clipboard writes or vendor-specific sequences, which broadens the observable impact. The assessed vector (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N, consistent with the supplied CVSS 4.0 rating of 4.8) confirms a local attack path requiring user interaction, no integrity or availability impact beyond the spoofed display, and no code execution inside onefetch - the escape sequences are interpreted by the terminal, not executed by the application, so the severity ceiling is set by what the victim's emulator permits.

Know when Rust 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.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.3 LOW

Victim must run the tool locally against attacker-controlled repo data (AV:L, UI:R); no auth needed (PR:N); only limited integrity/output manipulation (I:L), no confidentiality or availability loss.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

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

DescriptionCVE.org

onefetch through 2.28.1 writes repository information field values to the terminal without removing control characters, allowing terminal escape sequence injection. Attackers can embed ANSI/OSC escape sequences in project manifest version and name fields to manipulate terminal output, rewrite window titles, hide text, or trigger emulator-specific behavior when victims run onefetch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche open-source developer CLI vanity tool, no enterprise production footprint
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
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 Rust

View all
CVE-2024-3566 CRITICAL POC
9.8 Apr 10

Command injection via Windows CreateProcess argument parsing affects multiple language runtimes and tooling (Node.js, PH

CVE-2021-31162 CRITICAL POC
9.8 Apr 14

In the standard library in Rust before 1.52.0, a double free can occur in the Vec::from_iter function if freeing the ele

CVE-2021-28879 CRITICAL POC
9.8 Apr 11

In the standard library in Rust before 1.52.0, the Zip implementation can report an incorrect size due to an integer ove

CVE-2026-58491 CRITICAL POC
9.3 Sep 21

Stored cross-site scripting and open redirect in Warpgate's SSO endpoints (versions prior to 0.25.5) allow an unauthenti

CVE-2021-29922 CRITICAL POC
9.1 Aug 07

library/std/src/net/parser.rs in Rust before 1.53.0 does not properly consider extraneous zero characters at the beginni

CVE-2026-77620 HIGH POC
8.7 Sep 22

Denial of service in the Vector observability pipeline's `logstash` source (versions 0.15.0 through 0.56.x) allows a rem

CVE-2019-12083 HIGH POC
8.1 May 13

The Rust Programming Language Standard Library 1.34.x before 1.34.2 contains a stabilized method which, if overridden, c

CVE-2021-28878 HIGH POC
7.5 Apr 11

In the standard library in Rust before 1.52.0, the Zip implementation calls __iterator_get_unchecked() more than once fo

CVE-2021-28875 HIGH POC
7.5 Apr 11

In the standard library in Rust before 1.50.0, read_to_end() does not validate the return value from Read in an unsafe c

CVE-2019-16760 HIGH POC
7.5 Sep 30

Cargo prior to Rust 1.26.0 may download the wrong dependency if your package.toml file uses the `package` configuration

CVE-2024-24576 CRITICAL POC
10.0 Apr 09

Rust is a programming language. Rated critical severity (CVSS 10.0), this vulnerability is remotely exploitable, no auth

CVE-2018-1000810 CRITICAL
9.8 Oct 08

The Rust Programming Language Standard Library version 1.29.0, 1.28.0, 1.27.2, 1.27.1, 127.0, 126.2, 126.1, 126.0 contai

Vendor StatusVendor

SUSE

Severity: Moderate

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