Every CVE Search/ Get API key

CVE-2019-15791

Reference count underflow in shiftfs

7.1 HighPublic exploit

In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel series, shiftfs_btrfs_ioctl_fd_replace() installs an fd referencing a file from the lower filesystem without taking an additional reference to that file. After the btrfs ioctl completes this fd is closed, which then puts a reference to that file, leading to a refcount underflow.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
High

Exploit likelihood

1.32%Down 2.3 points since Apr 14, 2021
90%50%10%1%

What each source reports

CVE List Score used 7.1

Reference count underflow in shiftfs

In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel series, shiftfs_btrfs_ioctl_fd_replace() installs an fd referencing a file from the lower filesystem without taking an additional reference to that file. After the btrfs ioctl completes this fd is closed, which then puts a reference to that file, leading to a refcount underflow.

Record
CVE-2019-15791
CVSS 3.1
7.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Weakness
CWE-672
Updated
2026-11-02
EUVDEUVD-2019-6714 7.1

In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel series, shiftfs_btrfs_ioctl_fd_replace() installs an fd referencing a file from the lower filesystem without taking an additional reference to that file. After the btrfs ioctl completes this fd is closed, which then puts a reference to that file, leading to a refcount underflow.

Record
EUVD-2019-6714
CVSS 3.1
7.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-03
GitHub AdvisoriesGHSA-5fx5-7qgj-cmg7 No score

In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel...

In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel series, shiftfs_btrfs_ioctl_fd_replace() installs an fd referencing a file from the lower filesystem without taking an additional reference to that file. After the btrfs ioctl completes this fd is closed, which then puts a reference to that file, leading to a refcount underflow.

Record
GHSA-5fx5-7qgj-cmg7
Updated
2026-11-02
NVD 7.1

In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel series, shiftfs_btrfs_ioctl_fd_replace() installs an fd referencing a file from the lower filesystem without taking an additional reference to that file. After the btrfs ioctl completes this fd is closed, which then puts a reference to that file, leading to a refcount underflow.

Record
CVE-2019-15791
CVSS 3.1
7.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
4.6 MediumAV:L/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-672, CWE-191
Updated
2026-11-02
OSVUBUNTU-CVE-2019-15791 7.8

In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel series, shiftfs_btrfs_ioctl_fd_replace() installs an fd referencing a file from the lower filesystem without taking an additional reference to that file. After the btrfs ioctl completes this fd is closed, which then puts a reference to that file, leading to a refcount underflow.

Record
UBUNTU-CVE-2019-15791
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS 3.1
7.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
Updated
2026-11-02
OSVUSN-4184-1 No score

linux, linux-aws, linux-azure, linux-gcp, linux-gke-5.0, linux-hwe, linux-kvm, linux-oem-osp1, linux-oracle, linux-raspi2 vulnerabilities

Stephan van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Kaveh Razavi, Herbert Bos, Cristiano Giuffrida, Giorgi Maisuradze, Moritz Lipp, Michael Schwarz, Daniel Gruss, and Jo Van Bulck discovered that Intel processors using Transactional Synchronization Extensions (TSX) could expose memory contents previously stored in microarchitectural buffers to a malicious process that is executing on the same CPU core. A local attacker could use this to expose sensitive information. (CVE-2019-11135)

It was discovered that the Intel i915 graphics chipsets allowed userspace to modify page table entries via writes to MMIO from the Blitter Command Streamer and expose kernel memory information. A local attacker could use this to expose sensitive information or possibly elevate privileges. (CVE-2019-0155)

Deepak Gupta discovered that on certain Intel processors, the Linux kernel did not properly perform invalidation on page table updates by virtual guest operating systems. A local attacker in a guest VM could use this to cause a denial of service (host system crash). (CVE-2018-12207)

It was discovered that the Intel i915 graphics chipsets could cause a system hang when userspace performed a read from GT memory mapped input output (MMIO) when the product is in certain low power states. A local attacker could use this to cause a denial of service. (CVE-2019-0154)

Hui Peng discovered that the Atheros AR6004 USB Wi-Fi device driver for the Linux kernel did not properly validate endpoint descriptors returned by the device. A physically proximate attacker could use this to cause a denial of service (system crash). (CVE-2019-15098)

Jann Horn discovered a reference count underflow in the shiftfs implementation in the Linux kernel. A local attacker could use this to cause a denial of service (system crash) or possibly execute arbitrary code. (CVE-2019-15791)

Jann Horn discovered a type confusion vulnerability in the shiftfs implementation in the Linux kernel. A local attacker could use this to cause a denial of service (system crash) or possibly execute arbitrary code. (CVE-2019-15792)

Jann Horn discovered that the shiftfs implementation in the Linux kernel did not use the correct file system uid/gid when the user namespace of a lower file system is not in the init user namespace. A local attacker could use this to possibly bypass DAC permissions or have some other unspecified impact. (CVE-2019-15793)

Ori Nimron discovered that the AX25 network protocol implementation in the Linux kernel did not properly perform permissions checks. A local attacker could use this to create a raw socket. (CVE-2019-17052)

Ori Nimron discovered that the IEEE 802.15.4 Low-Rate Wireless network protocol implementation in the Linux kernel did not properly perform permissions checks. A local attacker could use this to create a raw socket. (CVE-2019-17053)

Ori Nimron discovered that the Appletalk network protocol implementation in the Linux kernel did not properly perform permissions checks. A local attacker could use this to create a raw socket. (CVE-2019-17054)

Ori Nimron discovered that the modular ISDN network protocol implementation in the Linux kernel did not properly perform permissions checks. A local attacker could use this to create a raw socket. (CVE-2019-17055)

Ori Nimron discovered that the Near field Communication (NFC) network protocol implementation in the Linux kernel did not properly perform permissions checks. A local attacker could use this to create a raw socket. (CVE-2019-17056)

Nico Waisman discovered that a buffer overflow existed in the Realtek Wi-Fi driver for the Linux kernel when handling Notice of Absence frames. A physically proximate attacker could use this to cause a denial of service (system crash) or possibly execute arbitrary code. (CVE-2019-17666)

Record
USN-4184-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
linux-hwe-edge
Ubuntu:16.04:LTS
All versions, plus listed versions
4.8.0-28.30~16.04.14.8.0-30.32~16.04.14.8.0-32.34~16.04.14.8.0-34.36~16.04.14.10.0-14.16~16.04.1
Show 18 moreShow less
4.10.0-19.21~16.04.14.10.0-20.22~16.04.14.10.0-21.23~16.04.14.10.0-22.24~16.04.14.10.0-24.28~16.04.14.10.0-26.30~16.04.14.11.0-13.19~16.04.14.11.0-14.20~16.04.14.13.0-16.19~16.04.34.13.0-17.20~16.04.14.13.0-19.22~16.04.14.13.0-21.24~16.04.14.13.0-25.29~16.04.24.15.0-13.14~16.04.14.15.0-15.16~16.04.14.15.0-20.21~16.04.14.15.0-22.24~16.04.14.15.0-23.25~16.04.1
None known
linux-azure-edge
Ubuntu:18.04:LTS
All versions, plus listed versions
4.18.0-1006.6~18.04.14.18.0-1007.7~18.04.14.18.0-1008.8~18.04.15.0.0-1012.12~18.04.2
None known
linux-gcp-edge
Ubuntu:18.04:LTS
All versions, plus listed versions
4.18.0-1004.5~18.04.14.18.0-1005.6~18.04.14.18.0-1006.7~18.04.14.18.0-1007.8~18.04.14.18.0-1008.9~18.04.1
Show 7 moreShow less
4.18.0-1009.10~18.04.14.18.0-1011.12~18.04.14.18.0-1012.13~18.04.14.18.0-1013.14~18.04.14.18.0-1015.16~18.04.15.0.0-1011.11~18.04.15.0.0-1013.13~18.04.1
None known
linux-hwe-edge
Ubuntu:18.04:LTS
All versions, plus listed versions
5.0.0-15.16~18.04.15.0.0-16.17~18.04.15.0.0-17.18~18.04.15.0.0-19.20~18.04.15.0.0-20.21~18.04.1
Show 5 moreShow less
5.3.0-19.20~18.04.25.3.0-22.24~18.04.15.3.0-23.25~18.04.15.3.0-23.25~18.04.25.3.0-24.26~18.04.2
None known
linux-azure-fde
Ubuntu:20.04:LTS
All versions, plus listed versions
5.4.0-1063.66+cvm2.25.4.0-1063.66+cvm3.25.4.0-1064.67+cvm1.15.4.0-1065.68+cvm2.15.4.0-1067.70+cvm1.1
Show 21 moreShow less
5.4.0-1068.71+cvm1.15.4.0-1069.72+cvm1.15.4.0-1070.73+cvm1.15.4.0-1072.75+cvm1.15.4.0-1073.76+cvm1.15.4.0-1074.77+cvm1.15.4.0-1076.79+cvm1.15.4.0-1078.81+cvm1.15.4.0-1080.83+cvm1.15.4.0-1083.87+cvm1.15.4.0-1085.90+cvm1.15.4.0-1085.90+cvm2.15.4.0-1086.91+cvm1.15.4.0-1089.94+cvm1.25.4.0-1090.95+cvm1.15.4.0-1091.96+cvm1.15.4.0-1092.97+cvm1.15.4.0-1095.101+cvm1.15.4.0-1098.104+cvm1.15.4.0-1100.106+cvm1.15.4.0-1103.109+cvm1.1
None known
linux-gke
Ubuntu:20.04:LTS
All versions, plus listed versions
5.4.0-1033.355.4.0-1035.375.4.0-1036.385.4.0-1037.395.4.0-1039.41
Show 45 moreShow less
5.4.0-1041.435.4.0-1042.445.4.0-1043.455.4.0-1044.465.4.0-1046.485.4.0-1049.525.4.0-1051.545.4.0-1052.555.4.0-1053.565.4.0-1054.575.4.0-1055.585.4.0-1056.595.4.0-1057.605.4.0-1059.625.4.0-1061.645.4.0-1062.655.4.0-1063.665.4.0-1065.685.4.0-1066.695.4.0-1067.705.4.0-1068.715.4.0-1071.765.4.0-1072.775.4.0-1074.795.4.0-1076.825.4.0-1078.845.4.0-1080.865.4.0-1081.875.4.0-1083.895.4.0-1084.905.4.0-1086.935.4.0-1087.945.4.0-1090.975.4.0-1091.985.4.0-1094.1015.4.0-1095.1025.4.0-1096.1035.4.0-1097.1045.4.0-1098.1055.4.0-1099.1065.4.0-1100.1075.4.0-1101.1085.4.0-1102.1095.4.0-1103.1105.4.0-1104.111
None known
linux-gkeop
Ubuntu:20.04:LTS
All versions, plus listed versions
5.4.0-1008.95.4.0-1009.105.4.0-1010.115.4.0-1011.125.4.0-1012.13
Show 45 moreShow less
5.4.0-1013.145.4.0-1014.155.4.0-1015.165.4.0-1016.175.4.0-1018.195.4.0-1021.225.4.0-1022.235.4.0-1023.245.4.0-1024.255.4.0-1025.265.4.0-1026.275.4.0-1027.285.4.0-1029.305.4.0-1031.325.4.0-1032.335.4.0-1033.345.4.0-1034.355.4.0-1036.375.4.0-1037.385.4.0-1038.395.4.0-1039.405.4.0-1040.415.4.0-1043.445.4.0-1046.485.4.0-1048.515.4.0-1049.525.4.0-1051.545.4.0-1052.555.4.0-1053.565.4.0-1054.575.4.0-1056.605.4.0-1057.615.4.0-1060.645.4.0-1061.655.4.0-1062.665.4.0-1064.685.4.0-1065.695.4.0-1066.705.4.0-1067.715.4.0-1068.725.4.0-1069.735.4.0-1070.745.4.0-1071.755.4.0-1072.765.4.0-1073.77
None known
linux-gkeop-5.15
Ubuntu:20.04:LTS
All versions, plus listed versions
5.15.0-1003.5~20.04.25.15.0-1005.7~20.04.15.15.0-1007.10~20.04.15.15.0-1008.12~20.04.15.15.0-1011.15~20.04.2
Show 40 moreShow less
5.15.0-1012.16~20.04.15.15.0-1013.17~20.04.15.15.0-1015.19~20.04.15.15.0-1016.21~20.04.15.15.0-1017.22~20.04.15.15.0-1018.23~20.04.15.15.0-1019.24~20.04.15.15.0-1020.25~20.04.15.15.0-1021.26~20.04.15.15.0-1022.27~20.04.15.15.0-1023.28~20.04.15.15.0-1024.29~20.04.15.15.0-1025.30~20.04.15.15.0-1026.31~20.04.15.15.0-1027.32~20.04.15.15.0-1028.33~20.04.15.15.0-1030.35~20.04.15.15.0-1031.37~20.04.15.15.0-1032.38~20.04.15.15.0-1033.39~20.04.15.15.0-1034.40~20.04.15.15.0-1035.41~20.04.15.15.0-1036.42~20.04.15.15.0-1037.43~20.04.15.15.0-1038.44~20.04.15.15.0-1039.45~20.04.15.15.0-1040.46~20.04.15.15.0-1043.50~20.04.15.15.0-1044.51~20.04.15.15.0-1045.52~20.04.15.15.0-1046.53~20.04.15.15.0-1047.54~20.04.15.15.0-1048.55~20.04.15.15.0-1049.56~20.04.15.15.0-1050.57~20.04.15.15.0-1051.58~20.04.15.15.0-1052.59~20.04.15.15.0-1053.60~20.04.15.15.0-1054.61~20.04.15.15.0-1055.62~20.04.1
None known
linux-raspi2
Ubuntu:20.04:LTS
All versions, plus listed versions
5.3.0-1007.85.3.0-1014.165.3.0-1015.175.3.0-1017.195.4.0-1004.45.4.0-1006.6
None known
linux-riscv
Ubuntu:20.04:LTS
All versions, plus listed versions
5.4.0-24.285.4.0-26.305.4.0-27.315.4.0-28.325.4.0-30.34
Show 7 moreShow less
5.4.0-31.355.4.0-33.375.4.0-34.385.4.0-36.415.4.0-37.425.4.0-39.445.4.0-40.45
None known
Show 9 moreShow less
Affected packages
PackageAffectedFixed
linux-intel-iot-realtime
Ubuntu:22.04:LTS
All versions, plus listed versions
5.15.0-1073.75
None known
linux-realtime
Ubuntu:22.04:LTS
All versions, plus listed versions
5.15.0-1032.35
None known
linux-riscv
Ubuntu:22.04:LTS
All versions, plus listed versions
5.13.0-1004.45.13.0-1006.6+22.04.15.13.0-1007.7+22.04.15.13.0-1010.11+22.04.15.15.0-1004.4
Show 18 moreShow less
5.15.0-1005.55.15.0-1006.65.15.0-1007.75.15.0-1008.85.15.0-1011.125.15.0-1012.135.15.0-1014.165.15.0-1015.175.15.0-1016.185.15.0-1017.195.15.0-1018.215.15.0-1019.225.15.0-1020.235.15.0-1022.265.15.0-1023.275.15.0-1026.305.15.0-1027.315.15.0-1028.32
None known
linux-raspi-realtime
Ubuntu:24.04:LTS
All versions, plus listed versions
6.8.0-2019.20
None known
linux-azure
Ubuntu:18.04:LTS
From an advisory covering 14 CVEs
before 5.0.0-1025.27~18.04.1, plus listed versions
4.15.0-1002.24.15.0-1003.34.15.0-1004.44.15.0-1008.84.15.0-1009.9
Show 31 moreShow less
4.15.0-1012.124.15.0-1013.134.15.0-1014.144.15.0-1018.184.15.0-1019.194.15.0-1021.214.15.0-1022.234.15.0-1023.244.15.0-1025.264.15.0-1028.294.15.0-1030.314.15.0-1031.324.15.0-1032.334.15.0-1035.364.15.0-1036.384.15.0-1037.394.18.0-1011.11~18.04.14.18.0-1013.13~18.04.14.18.0-1014.14~18.04.14.18.0-1018.18~18.04.14.18.0-1019.19~18.04.14.18.0-1020.20~18.04.14.18.0-1023.24~18.04.14.18.0-1024.25~18.04.14.18.0-1025.27~18.04.15.0.0-1014.14~18.04.15.0.0-1016.17~18.04.15.0.0-1018.19~18.04.15.0.0-1020.21~18.04.15.0.0-1022.23~18.04.15.0.0-1023.24~18.04.1
5.0.0-1025.27~18.04.1
linux-gcp
Ubuntu:18.04:LTS
From an advisory covering 14 CVEs
before 5.0.0-1025.26~18.04.1, plus listed versions
4.15.0-1001.14.15.0-1003.34.15.0-1005.54.15.0-1006.64.15.0-1008.8
Show 26 moreShow less
4.15.0-1009.94.15.0-1010.104.15.0-1014.144.15.0-1015.154.15.0-1017.184.15.0-1018.194.15.0-1019.204.15.0-1021.224.15.0-1023.244.15.0-1024.254.15.0-1025.264.15.0-1026.274.15.0-1027.284.15.0-1028.294.15.0-1029.314.15.0-1030.324.15.0-1032.344.15.0-1033.354.15.0-1034.364.15.0-1036.384.15.0-1037.394.15.0-1040.424.15.0-1042.454.15.0-1044.705.0.0-1020.20~18.04.15.0.0-1021.21~18.04.1
5.0.0-1025.26~18.04.1
linux-gke-5.0
Ubuntu:18.04:LTS
From an advisory covering 14 CVEs
before 5.0.0-1025.26~18.04.1, plus listed versions
5.0.0-1011.11~18.04.15.0.0-1013.13~18.04.15.0.0-1015.15~18.04.15.0.0-1017.17~18.04.15.0.0-1020.20~18.04.15.0.0-1022.22~18.04.35.0.0-1023.23~18.04.2
5.0.0-1025.26~18.04.1
linux-hwe
Ubuntu:18.04:LTS
From an advisory covering 14 CVEs
before 5.0.0-35.38~18.04.1, plus listed versions
4.18.0-13.14~18.04.14.18.0-14.15~18.04.14.18.0-15.16~18.04.14.18.0-16.17~18.04.14.18.0-17.18~18.04.1
Show 12 moreShow less
4.18.0-18.19~18.04.14.18.0-20.21~18.04.14.18.0-21.22~18.04.14.18.0-22.23~18.04.14.18.0-24.25~18.04.14.18.0-25.26~18.04.15.0.0-23.24~18.04.15.0.0-25.26~18.04.15.0.0-27.28~18.04.15.0.0-29.31~18.04.15.0.0-31.33~18.04.15.0.0-32.34~18.04.2
5.0.0-35.38~18.04.1
linux-oem-osp1
Ubuntu:18.04:LTS
From an advisory covering 14 CVEs
before 5.0.0-1027.31, plus listed versions
5.0.0-1010.115.0.0-1012.135.0.0-1015.165.0.0-1018.205.0.0-1020.225.0.0-1022.245.0.0-1024.275.0.0-1025.28
5.0.0-1027.31

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
Exploit-DBUbuntu 19.10 - Refcount Underflow and Type Confusion in shiftfs2019-11-20

History

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE List, Exploit-DB, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2019-15791 is a high vulnerability (CVSS 7.1) in Linux Kernel, published November 12, 2019. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 1.32%, the 70th percentile. No source names a fixed version.

References

Show 16 moreShow less
This page doesn't list everything

Left out here: 29 versions. The JSON record has them.

MoveEnter Open