CVE-2019-15791
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.
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
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 High
CVSS: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 High
CVSS: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 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H - CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 4.6 Medium
AV: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 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - CVSS 3.1
- 7.1 High
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
linux-hwe-edgeUbuntu: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 less4.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-edgeUbuntu: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-edgeUbuntu: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 less4.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-edgeUbuntu: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 less5.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-fdeUbuntu: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 less5.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-gkeUbuntu: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 less5.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-gkeopUbuntu: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 less5.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.15Ubuntu: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 less5.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-raspi2Ubuntu: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-riscvUbuntu: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 less5.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
| Package | Affected | Fixed |
|---|---|---|
linux-intel-iot-realtimeUbuntu:22.04:LTS |
All versions, plus listed versions 5.15.0-1073.75 |
None known |
linux-realtimeUbuntu:22.04:LTS |
All versions, plus listed versions 5.15.0-1032.35 |
None known |
linux-riscvUbuntu: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 less5.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-realtimeUbuntu:24.04:LTS |
All versions, plus listed versions 6.8.0-2019.20 |
None known |
linux-azureUbuntu: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 less4.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-gcpUbuntu: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 less4.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.0Ubuntu: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-hweUbuntu: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 less4.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-osp1Ubuntu: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.
| Source | Link | Date |
|---|---|---|
| Exploit-DB | Ubuntu 19.10 - Refcount Underflow and Type Confusion in shiftfs | 2019-11-20 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE 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
usn.ubuntu.com/usn/usn-4183-1
usn.ubuntu.com/usn/usn-4184-1
git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/eoan/commit?id=601a64857b3d7040ca15c39c929e6b9db3373ec1
nvd.nist.gov/vuln/detail/CVE-2019-15791
github.com/advisories/GHSA-5fx5-7qgj-cmg7
ubuntu.com/security/CVE-2019-15791
Show 16 moreShow less
ubuntu.com/security/notices/USN-4183-1
ubuntu.com/security/notices/USN-4184-1
cve.org/CVERecord?id=CVE-2019-15791
ubuntu.com/security/CVE-2018-12207
ubuntu.com/security/CVE-2019-0154
ubuntu.com/security/CVE-2019-0155
ubuntu.com/security/CVE-2019-11135
ubuntu.com/security/CVE-2019-15098
ubuntu.com/security/CVE-2019-15792
ubuntu.com/security/CVE-2019-15793
ubuntu.com/security/CVE-2019-17052
ubuntu.com/security/CVE-2019-17053
ubuntu.com/security/CVE-2019-17054
ubuntu.com/security/CVE-2019-17055
ubuntu.com/security/CVE-2019-17056
ubuntu.com/security/CVE-2019-17666
Left out here: 29 versions. The JSON record has them.