Every CVE Search/ Get API key

CVE-2023-49284

Command substitution output can trigger shell expansion in fish shell

3.9 LowFix available

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

0.47%Up 0.4 points since Dec 5, 2023
90%50%10%1%

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 LowCVSS: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 LowCVSS: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 LowCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:L
CVSS 3.1
6.6 MediumCVSS: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 MediumCVSS: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 LowCVSS: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 MediumCVSS: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 MediumCVSS: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 MediumCVSS: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 MediumCVSS: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 MediumCVSS: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 LowCVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:L
CVSS 3.1
6.6 MediumCVSS: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

Affected packages
PackageAffectedFixed
fish
Azure Linux:2
before 3.6.2-1
3.6.2-1
fish
Debian:12
before 3.6.0-3.1+deb12u1, plus listed versions
3.6.0-3.1
3.6.0-3.1+deb12u1
fish
Debian:13
before 3.6.4-1
3.6.4-1
fish
Debian:14
before 3.6.4-1
3.6.4-1
fish
Mageia:8
before 3.4.1-1.1.mga8
3.4.1-1.1.mga8
fish
Mageia:9
before 3.6.4-1.mga9
3.6.4-1.mga9
fish
openEuler:20.03-LTS-SP1
before 3.3.1-3.oe1
3.3.1-3.oe1
fish
openEuler:20.03-LTS-SP3
before 3.3.1-3.oe1
3.3.1-3.oe1
fish
openEuler:22.03-LTS-SP1
before 3.3.1-6.oe2203sp1
3.3.1-6.oe2203sp1
fish
openEuler:22.03-LTS-SP2
before 3.3.1-6.oe2203sp2
3.3.1-6.oe2203sp2
Show 18 moreShow less
Affected packages
PackageAffectedFixed
fish
openEuler:22.03-LTS
before 3.3.1-5.oe2203
3.3.1-5.oe2203
fish
Root: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-fish
Root:Alpine:3.17
before 3.5.1-r10071
3.5.1-r100713.5.1-r100723.5.1-r100743.5.1-r100733.5.1-r10075
fish
Root: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-fish
Root:Alpine:3.18
before 3.6.1-r20071
3.6.1-r200713.6.1-r200723.6.1-r200743.6.1-r200733.6.1-r20075
fish
Ubuntu:16.04:LTS
All versions, plus listed versions
2.2.0-22.2.0-3
None known
fish
Ubuntu:18.04:LTS
All versions, plus listed versions
2.6.0-12.6.0-22.7.0-12.7.1-3
None known
fish
Ubuntu: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
fish
Ubuntu: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
fish
Ubuntu:24.04:LTS
All versions, plus listed versions
3.6.1-13.6.4-13.7.0-1
None known
fish
Ubuntu:25.10
All versions, plus listed versions
4.0.1-14.0.2-14.0.6-0ubuntu1
None known
fish
Ubuntu:26.10
All versions, plus listed versions
4.2.1-3.24.7.1-24.7.1-2.14.9.3-1
None known
fish
Ubuntu: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
fish
SUSE:Package Hub 15 SP4
before 3.3.1-bp154.3.3.1
3.3.1-bp154.3.3.1
fish
openSUSE:Leap 15.4
before 3.3.1-bp154.3.3.1
3.3.1-bp154.3.3.1
fish
SUSE:Package Hub 15 SP5
before 3.3.1-bp155.4.3.1
3.3.1-bp155.4.3.1
fish
openSUSE:Leap 15.5
before 3.3.1-bp155.4.3.1
3.3.1-bp155.4.3.1
fish
openSUSE:Tumbleweed
before 3.6.4-1.1
3.6.4-1.1

History

History
RecordedChangedSources
aliases, publishedEUVD
first indexedCVE 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

Show 12 moreShow less
MoveEnter Open