In zsh before 5.8.1, an attacker can achieve code execution if they control a command output inside the prompt, as demonstrated by a %F argument. This occurs because of recursive PROMPT_SUBST expansion.
{
"binaries": [
{
"binary_version": "5.1.1-1ubuntu2.3+esm1",
"binary_name": "zsh"
},
{
"binary_version": "5.1.1-1ubuntu2.3+esm1",
"binary_name": "zsh-common"
},
{
"binary_version": "5.1.1-1ubuntu2.3+esm1",
"binary_name": "zsh-dev"
},
{
"binary_version": "5.1.1-1ubuntu2.3+esm1",
"binary_name": "zsh-static"
}
],
"availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro"
}
{
"binaries": [
{
"binary_version": "5.4.2-3ubuntu3.2",
"binary_name": "zsh"
},
{
"binary_version": "5.4.2-3ubuntu3.2",
"binary_name": "zsh-common"
},
{
"binary_version": "5.4.2-3ubuntu3.2",
"binary_name": "zsh-dev"
},
{
"binary_version": "5.4.2-3ubuntu3.2",
"binary_name": "zsh-static"
}
],
"availability": "No subscription required"
}
{
"binaries": [
{
"binary_version": "5.8-3ubuntu1.1",
"binary_name": "zsh"
},
{
"binary_version": "5.8-3ubuntu1.1",
"binary_name": "zsh-common"
},
{
"binary_version": "5.8-3ubuntu1.1",
"binary_name": "zsh-dev"
},
{
"binary_version": "5.8-3ubuntu1.1",
"binary_name": "zsh-static"
}
],
"availability": "No subscription required"
}