Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain man-in-the-middle network position
-
DeliveryVictim runs p10k/gitstatus installer
-
ExploitIntercept github.com mirror download
-
ExecutionSubstitute malicious gitstatusd archive (TLS/integrity checks bypassed)
-
PersistDaemon executes under user account each prompt
-
ImpactPersistent code execution as the user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Code integrity verification
|
| Exploitation Conditions | Exploitation requires the attacker to hold a privileged network position (man-in-the-middle) on the path to github.com, and the victim to trigger the gitstatus installer by installing or updating Powerlevel10k (versions through 1.20.0). Two code conditions enable substitution: the installer fetches the gitstatusd binary with curl -k, disabling TLS certificate validation, and it skips the SHA-256 integrity verification when no hashing utility (sha256sum/shasum/openssl) is available on the host. Limiting factors that reduce real-world risk: no exploitation is possible without an active download/update event, the attacker must already control or intercept the network path (not remotely reachable against an idle host), and hosts that do have a SHA-256 utility still get the integrity check even though the TLS downgrade remains. Once the malicious binary is installed it runs as gitstatusd under the victim's account on every prompt, giving persistence at that user's privilege level. |
| Impact | This is a genuine but conditional risk rather than a drop-everything emergency. The CVSS 4.0 base score of 7.7 (High) reflects full compromise of the vulnerable system (VC:H/VI:H/VA:H) with no authentication (PR:N), but it is tempered by two key modifiers the vendor vector makes explicit: AT:P (a specific attack requirement - the attacker must hold a privileged network/man-in-the-middle position on the path to github.com) and UI:P (passive user interaction - the victim must install or update Powerlevel10k/gitstatus for the vulnerable download to fire). In effect the severity is high but the preconditions are meaningful: this is not spray-and-pray internet-exploitable. Exploitation status is 'no public exploit identified at time of analysis' - no CISA KEV listing and no POC are present in the provided data, and no EPSS score was supplied, so the quantitative exploitation-probability signal is MISSING and cannot be compared against the severity. SSVC-style reasoning: exploitation is likely low/none, automatable is partial-to-no (requires MITM positioning per-target, not a simple internet-wide scan), technical impact is total. One data conflict to flag explicitly: the only tag provided is 'Information Disclosure', which contradicts CWE-494 (Download of Code Without Integrity Check) and the High integrity/availability impacts - this vulnerability yields code execution, not mere disclosure, so defenders should treat it as an RCE-class issue and not deprioritize it as read-only data leakage. |
| Exploit ScenarioDerived | A victim on a shared or hostile network (public Wi-Fi, a compromised corporate proxy/router, or a malicious upstream) installs or updates Powerlevel10k, triggering the gitstatus installer to fetch the gitstatusd binary from the github.com mirror. Because the script uses curl -k (disabling TLS certificate verification) and skips the SHA-256 integrity check when no hashing utility is present, the network-positioned attacker substitutes a malicious archive. The planted binary then executes as the gitstatusd daemon under the victim's account on every subsequent shell prompt; no public POC is noted in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Man-in-the-middle attackers who already control or intercept the network path to github.com can substitute a malicious gitstatusd archive during the gitstatus installer download bundled with Powerlevel10k (versions through 1.20.0), gaining code execution that persists under the victim's account on every prompt. Two weaknesses in the installer enable the substitution: it fetches the archive with curl -k, which disables TLS certificate validation, and it skips its SHA-256 integrity verification entirely when no hashing utility (sha256sum, shasum or openssl) is present on the host. Exploitation is conditional rather than opportunistic - it requires a privileged network position plus a user-initiated install or update event, and no public exploit code has been identified at time of analysis; no KEV listing or EPSS signal was provided with this record.
RemediationAI
No vendor-released patch is identified in the available data, and no fixed version number can be cited from this record; operators should track https://github.com/romkatv/powerlevel10k/issues/2970 and the VulnCheck advisory for an upstream fix before assuming version 1.20.0 or later is safe. The single most effective compensating control is to guarantee that a SHA-256 utility exists on the installing host - ensure coreutils (sha256sum), Perl shasum, or openssl is installed - because the installer's integrity check then runs even though the curl -k TLS downgrade remains; the trade-off is minimal (a small package addition) and it converts a silent substitution into a failed hash comparison. Where practical, pre-fetch the gitstatusd archive over a trusted network or VPN and verify its expected SHA-256 manually before installation rather than letting the script pull it, and avoid running the installer across untrusted Wi-Fi, captive portals, or unmanaged proxies. Organizations that do not need the gitstatus daemon can disable it with POWERLEVEL9K_DISABLE_GITSTATUS=true (or by removing/renaming the gitstatus directory and its install script), accepting the loss of the accelerated git status prompt as the cost. Pinning the theme to a vendor-vetted, internally mirrored copy of both the theme and the gitstatusd binary removes the network dependency at the price of manual update maintenance. Since the substituted binary executes as the invoking user, running installs only from non-privileged accounts limits blast radius, and monitoring for unexpected gitstatusd binaries or outbound fetches to non-GitHub mirrors can surface attempted exploitation, though no public exploit code is known at time of analysis.
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
The issue sits in the gitstatus installer shipped with the Powerlevel10k zsh prompt theme, a shell script (referenced at lines 306-333 and 348 of gitstatus/install in the v1.20.0 tree) that bootstraps the gitstatusd helper daemon. This is CWE-494, Download of Code Without Integrity Check: the installer fails to bind the downloaded artifact to a trusted identity. Concretely, the curl invocation uses -k, which suppresses certificate chain validation and removes the transport-level guarantee that the archive actually came from GitHub, and the script's hash-check branch is skipped when no SHA-256 tooling is available, so on minimalist hosts (containers, stripped images, some macOS or BSD environments without coreutils or openssl) the substituted archive is accepted with no verification at all. Because gitstatusd is invoked as a background daemon on each shell prompt, a successful substitution yields persistence at the invoking user's privilege level without further user interaction. The assessed CVSS v3.1 vector AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H is consistent with this: unauthenticated in the sense that no credential is needed, but AC:H and UI:R capture the hard preconditions of a person-in-the-middle position and a victim-triggered download; the published CVSS 4.0 vector (7.7) reflects the same conditional AT:P/UI:P profile. Note that even hosts possessing a SHA-256 utility retain the TLS downgrade, so certificate-validation bypass and missing-hash-check are distinct but related exposures.
Know when the next one hits your stack
- 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:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
AC:H and UI:R because the attacker needs an MITM position and the victim must run the installer; PR:N as no authentication is required; C/I/A:H as the planted daemon runs as the user.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
Powerlevel10k through 1.20.0 contains an insecure download vulnerability in the gitstatus/install script that disables TLS certificate verification with curl -k and skips integrity checks when no SHA-256 utility exists. Network-positioned attackers can intercept the github.com mirror request and substitute a malicious archive, which runs as the gitstatusd daemon under the user's account on every prompt.
Executive ViewAI
Developer workstations running Powerlevel10k versions through 1.20.0 are exposed to a supply-chain-style compromise in which a network-positioned attacker can substitute a malicious gitstatusd payload during installation, yielding code execution that persists under the user's account on every terminal prompt. The practical impact is unauthorized access to source code, credentials, and build pipelines on affected machines, although exploitation requires privileged network access plus a user-initiated install or update, and no public exploit identified at time of analysis. No vendor patch is available, so leadership should treat this as a managed risk requiring immediate inventory and interim controls.
No vendor-released patch identified at time of analysis. Interim mitigations: block or proxy github.com downloads from developer endpoints; enforce TLS certificate validation by eliminating 'curl -k' from the gitstatus installer; ensure sha256sum, shasum, or openssl is installed so SHA-256 verification cannot be bypassed; manually verify gitstatusd archive hashes against a trusted source; restrict installs and updates to trusted networks or VPN; monitor shell startup files and ~/.cache/gitstatus for unauthorized persistence; and consider disabling gitstatus or using a pinned, pre-verified binary until a fix is released.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-98935
GHSA-hvg4-58mj-cjjc
NVD
CVE.org
EPSS
Exploit-DB