CVE-2023-49284
Command substitution output can trigger shell expansion in fish shell
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
3.9
Command substitution output can trigger shell expansion in fish shell
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2023-49284- CVSS 3.1
- 3.9 Low
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:L - Weakness
- CWE-436
- Updated
- 2026-11-02
EUVDEUVD-2023-53277
3.9
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
EUVD-2023-53277- CVSS 3.1
- 3.9 Low
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:L - Updated
- 2026-11-03
NVD
3.9
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2023-49284- CVSS 3.1
- 3.9 Low
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:L - CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Weakness
- CWE-436
- Updated
- 2026-11-02
OSVAZL-32081
6.6
CVE-2023-49284 affecting package fish for versions less than 3.6.2-1
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
AZL-32081- CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSV
3.9
Command substitution output can trigger shell expansion in fish shell
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
CVE-2023-49284- CVSS 3.1
- 3.9 Low
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:L - Weakness
- CWE-436
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2023-49284
6.6
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
DEBIAN-CVE-2023-49284- CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
Show 11 moreShow less
OSVOESA-2023-1933
6.6
fish security update
fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. fish supports powerful features like syntax highlighting, autosuggestions, and tab completions that just work, with nothing to learn or configure.
Security Fix(es):
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.(CVE-2023-49284)
- Record
OESA-2023-1933- CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2023-1938
6.6
fish security update
fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. fish supports powerful features like syntax highlighting, autosuggestions, and tab completions that just work, with nothing to learn or configure.
Security Fix(es):
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.(CVE-2023-49284)
- Record
OESA-2023-1938- CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2023-1939
6.6
fish security update
fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. fish supports powerful features like syntax highlighting, autosuggestions, and tab completions that just work, with nothing to learn or configure.
Security Fix(es):
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.(CVE-2023-49284)
- Record
OESA-2023-1939- CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2023-1940
6.6
fish security update
fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. fish supports powerful features like syntax highlighting, autosuggestions, and tab completions that just work, with nothing to learn or configure.
Security Fix(es):
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.(CVE-2023-49284)
- Record
OESA-2023-1940- CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2023-49284
3.9
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation. While this may cause unexpected behavior with direct input (for example, echo \UFDD2HOME has the same output as echo $HOME), this may become a minor security problem if the output is being fed from an external program into a command substitution where this output may not be expected. This design flaw was introduced in very early versions of fish, predating the version control system, and is thought to be present in every version of fish released in the last 15 years or more, although with different characters. Code execution does not appear to be possible, but denial of service (through large brace expansion) or information disclosure (such as variable expansion) is potentially possible under certain circumstances. fish shell 3.6.2 has been released to correct this issue. Users are advised to upgrade. There are no known workarounds for this vulnerability.
- Record
UBUNTU-CVE-2023-49284- CVSS 3.1
- 3.9 Low
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:L - CVSS 3.1
- 6.6 Medium
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVMGASA-2023-0344 No score
Updated fish packages fix a security vulnerability
Mageia 9 is updated to version 3.6.4 to fix CVE-2023-49284. Mageia 8 receives an upstream patch to fix CVE-2023-49284. CVE-2023-49284: fish shell uses certain Unicode non-characters internally for marking wildcards and expansions. It will incorrectly allow these markers to be read on command substitution output, rather than transforming them into a safe internal representation.
- Record
MGASA-2023-0344- Updated
- 2026-11-02
OSVopenSUSE-SU-2023:0404-1 No score
Security update for fish
This update for fish fixes the following issues:
- CVE-2023-49284: Fixed shell expansion triggered by command substitution output (boo#1217808).
- Record
openSUSE-SU-2023:0404-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2023:0405-1 No score
Security update for fish
This update for fish fixes the following issues:
- CVE-2023-49284: Fixed shell expansion triggered by command substitution output (boo#1217808).
- Record
openSUSE-SU-2023:0405-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:13501-1 No score
fish-3.6.4-1.1 on GA media
These are all security issues fixed in the fish-3.6.4-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:13501-1- Updated
- 2026-11-02
OSVROOT-OS-ALPINE-317-CVE-2023-49284 No score
CVE-2023-49284 in fish - Patched by Root
Root has patched CVE-2023-49284 in the fish package for Root:Alpine:3.17. Multiple fixed versions available.
- Record
ROOT-OS-ALPINE-317-CVE-2023-49284- Updated
- 2026-11-02
OSVROOT-OS-ALPINE-318-CVE-2023-49284 No score
CVE-2023-49284 in fish - Patched by Root
Root has patched CVE-2023-49284 in the fish package for Root:Alpine:3.18. Multiple fixed versions available.
- Record
ROOT-OS-ALPINE-318-CVE-2023-49284- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
fishAzure Linux:2 |
before 3.6.2-1 | 3.6.2-1 |
fishDebian:12 |
before 3.6.0-3.1+deb12u1, plus listed versions 3.6.0-3.1 |
3.6.0-3.1+deb12u1 |
fishDebian:13 |
before 3.6.4-1 | 3.6.4-1 |
fishDebian:14 |
before 3.6.4-1 | 3.6.4-1 |
fishMageia:8 |
before 3.4.1-1.1.mga8 | 3.4.1-1.1.mga8 |
fishMageia:9 |
before 3.6.4-1.mga9 | 3.6.4-1.mga9 |
fishopenEuler:20.03-LTS-SP1 |
before 3.3.1-3.oe1 | 3.3.1-3.oe1 |
fishopenEuler:20.03-LTS-SP3 |
before 3.3.1-3.oe1 | 3.3.1-3.oe1 |
fishopenEuler:22.03-LTS-SP1 |
before 3.3.1-6.oe2203sp1 | 3.3.1-6.oe2203sp1 |
fishopenEuler:22.03-LTS-SP2 |
before 3.3.1-6.oe2203sp2 | 3.3.1-6.oe2203sp2 |
Show 18 moreShow less
| Package | Affected | Fixed |
|---|---|---|
fishopenEuler:22.03-LTS |
before 3.3.1-5.oe2203 | 3.3.1-5.oe2203 |
fishRoot:Alpine:3.17 |
before 3.5.1-r10071 | 3.5.1-r100713.5.1-r100723.5.1-r100743.5.1-r100733.5.1-r10075 |
rootio-fishRoot:Alpine:3.17 |
before 3.5.1-r10071 | 3.5.1-r100713.5.1-r100723.5.1-r100743.5.1-r100733.5.1-r10075 |
fishRoot:Alpine:3.18 |
before 3.6.1-r20071 | 3.6.1-r200713.6.1-r200723.6.1-r200743.6.1-r200733.6.1-r20075 |
rootio-fishRoot:Alpine:3.18 |
before 3.6.1-r20071 | 3.6.1-r200713.6.1-r200723.6.1-r200743.6.1-r200733.6.1-r20075 |
fishUbuntu:16.04:LTS |
All versions, plus listed versions 2.2.0-22.2.0-3 |
None known |
fishUbuntu:18.04:LTS |
All versions, plus listed versions 2.6.0-12.6.0-22.7.0-12.7.1-3 |
None known |
fishUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 3.0.2-23.1.0-13.1.0-1.13.1.0-1.23.1.0-1.2ubuntu0.1~esm1 |
None known |
fishUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 3.1.2-3ubuntu13.3.1+ds-23.3.1+ds-33.3.1+ds-3ubuntu0.1~esm1 |
None known |
fishUbuntu:24.04:LTS |
All versions, plus listed versions 3.6.1-13.6.4-13.7.0-1 |
None known |
fishUbuntu:25.10 |
All versions, plus listed versions 4.0.1-14.0.2-14.0.6-0ubuntu1 |
None known |
fishUbuntu:26.10 |
All versions, plus listed versions 4.2.1-3.24.7.1-24.7.1-2.14.9.3-1 |
None known |
fishUbuntu:26.04:LTS |
All versions, plus listed versions 4.0.6-0ubuntu14.2.1-34.2.1-3.14.2.1-3.2 |
None known |
fishSUSE:Package Hub 15 SP4 |
before 3.3.1-bp154.3.3.1 | 3.3.1-bp154.3.3.1 |
fishopenSUSE:Leap 15.4 |
before 3.3.1-bp154.3.3.1 | 3.3.1-bp154.3.3.1 |
fishSUSE:Package Hub 15 SP5 |
before 3.3.1-bp155.4.3.1 | 3.3.1-bp155.4.3.1 |
fishopenSUSE:Leap 15.5 |
before 3.3.1-bp155.4.3.1 | 3.3.1-bp155.4.3.1 |
fishopenSUSE:Tumbleweed |
before 3.6.4-1.1 | 3.6.4-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, published | EUVD | |
| first indexed | CVE List, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2023-49284 is a low vulnerability (CVSS 3.9) in Fishshell Fish, published December 4, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.47%, the 41st percentile. Fixed in fish 3.6.2-1.
References
github.com/fish-shell/fish-shell/security/advisories/GHSA-2j9r-pm96-wp4f
github.com/fish-shell/fish-shell/commit/09986f5563e31e2c900a606438f1d60d008f3a14
openwall.com/lists/oss-security/2023/12/08/1
nvd.nist.gov/vuln/detail/CVE-2023-49284
github.com/CVEProject/cvelistV5/tree/main/cves/2023/49xxx/CVE-2023-49284.json
security-tracker.debian.org/tracker/CVE-2023-49284
Show 12 moreShow less
advisories.mageia.org/MGASA-2023-0344.html
bugs.mageia.org/show_bug.cgi?id=32614
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2023-1933
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2023-1938
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2023-1939
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2023-1940
ubuntu.com/security/CVE-2023-49284
cve.org/CVERecord?id=CVE-2023-49284
lists.opensuse.org/archives/list/[email protected]/thread/ID5OSVJXPI7OW4ZTAPE4ZJUJIM5HRF37
bugzilla.suse.com/1217808
suse.com/security/cve/CVE-2023-49284
lists.opensuse.org/archives/list/[email protected]/thread/S6BKN7QOVK7LIAFEI3YVTBXDS7YGI6B3