Description
fish is a command line shell. fish version 3.1.0 through version 3.3.1 is vulnerable to arbitrary code execution. git repositories can contain per-repository configuration that change the behavior of git, including running arbitrary commands. When using the default configuration of fish, changing to a directory automatically runs `git` commands in order to display information about the current repository in the prompt. If an attacker can convince a user to change their current directory into one controlled by the attacker, such as on a shared file system or extracted archive, fish will run arbitrary commands under the attacker's control. This problem has been fixed in fish 3.4.0. Note that running git in these directories, including using the git tab completion, remains a potential trigger for this issue. As a workaround, remove the `fish_git_prompt` function from the prompt.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| fish-shell | fish-shell | >= 3.1.0, < 3.4.0 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | fish | 3.4.0+ds-1 | — |
| Debian 13 | fish | 3.4.0+ds-1 | — |
| Debian 12 | fish | 3.4.0+ds-1 | — |
| Debian 11 | fish | 3.1.2-3+deb11u1 | DSA-5234-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 22.04 LTS | fish | 3.3.1+ds-3ubuntu0.1~esm1 | USN-5367-1 |
| Ubuntu Pro 20.04 LTS | fish | 3.1.0-1.2ubuntu0.1~esm1 | USN-5367-1 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SUSE Package Hub 15 SP3 | fish3 | 3.3.1-bp153.2.10.1 | openSUSE-SU-2022:0096-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 15.3 | fish3 | 3.3.1-bp153.2.10.1 | openSUSE-SU-2022:0096-1 |
Alpine
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Alpine v3.24 | fish | 3.4.0-r0 | — |
| Alpine v3.23 | fish | 3.4.0-r0 | — |
| Alpine v3.22 | fish | 3.4.0-r0 | — |
| Alpine v3.21 | fish | 3.4.0-r0 | — |
| Alpine v3.20 | fish | 3.4.0-r0 | — |
Show 4 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Alpine v3.19 | fish | 3.4.0-r0 | — |
| Alpine v3.18 | fish | 3.4.0-r0 | — |
| Alpine v3.17 | fish | 3.4.0-r0 | — |
| Alpine v3.16 | fish | 3.4.0-r0 | — |
Advisories 3
- USN-5367-1 fish vulnerability Ubuntu Security Notices (USN) · Apr 27, 2026
- DSA-5234-1 fish - security update Debian Security (DSA / DLA) · Mar 9, 2026
- openSUSE-SU-2022:0096-1 Security update for fish3 SUSE / openSUSE Security Updates · Feb 4, 2026
References
- https://github.com/fish-shell/fish-shell/security/advisories/GHSA-pj5f-6vxj-f5mq
- https://github.com/fish-shell/fish-shell/pull/8589
- https://github.com/fish-shell/fish-shell/releases/tag/3.4.0
- FEDORA-2022-443c5ec2dd vendor-advisory
- FEDORA-2022-cd2c5e0634 vendor-advisory
- DSA-5234 vendor-advisory
- GLSA-202309-10 vendor-advisory