Impact
Liquid Prompt, an adaptive prompt for Bash and Zsh, contains an arbitrary command injection flaw that allows a user to execute shell commands through specially crafted Git branch names. The vulnerability resides in the gitstatusd backend; when the LP_ENABLE_GITSTATUSD option is enabled, gitstatusd processes branch names and injects them into the prompt. A branch name that contains shell syntax such as $() or backticks is executed by the shell when the prompt is rendered, giving the user who interacts with the prompt unrestricted command execution on their system. This injection path is a classic command injection problem (CWE‑78) and can lead to compromise of the local environment.
Affected Systems
The affected product is Liquid Prompt (liquidprompt:liquidprompt). Only the master branch of the official GitHub repository contains the vulnerable commit. No released version has been affected; the vulnerability exists between commit cf3441250bb5d8b45f6f8b389fcdf427a99ac28a and the patched commit a4f6b8d8c90b3eaa33d13dfd1093062ab9c4b30c. Users who run the development version or those who manually fetch the master branch are at risk.
Risk and Exploitability
The CVSS v3 score is 6.3, with an EPSS score below 1 %, indicating a moderate severity but extremely low probability of exploitation. The issue is not listed in CISA’s KEV catalog. Exploitation requires several preconditions: LP_ENABLE_GITSTATUSD must be enabled (the default), gitstatusd must be installed and started before Liquid Prompt is loaded (not the standard configuration), and shell prompt substitution must be active (enabled by default in Bash through shopt -s promptvars, but not enabled by default in Zsh). Because these prerequisites combine, the attack vector is local and dependent on the user’s environment and administrative configuration, reducing the likelihood of widespread exploitation.
OpenCVE Enrichment