CVE-2023-6238
Medium · 6.7CVSS
6.7
EPSS
0.3%
Published
Nov 21, 2023
CISA due date
—
Cloudanix analysis
A flaw in how Linux handles certain storage devices can let highly privileged users cause the system to crash or corrupt memory, requiring a kernel software update to resolve.
- Exploitation
- Local Privilege
- Attacker needs
- High Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
A privileged local user can supply a small metadata buffer to the NVMe driver while the device performs a larger DMA transfer, causing the driver to write beyond the buffer bounds and corrupt unrelated kernel memory.
Why it matters to the business
Linux systems using the affected NVMe driver may experience random kernel crashes, memory corruption, and potential loss of system availability or data integrity until the kernel is updated.
How an attack unfolds
An attacker with administrative privileges on a Linux host issues specially crafted NVMe commands that specify undersized metadata buffers, allowing the hardware to overwrite kernel structures via DMA and trigger crashes or memory corruption.
How to fix it
Update the Linux kernel to a version containing the NVMe driver fix; apply the latest stable kernel packages from the distribution vendor and reboot affected systems.
How to confirm the fix worked
Verify the installed kernel version contains the NVMe buffer handling correction, review kernel changelog entries for the fix, and confirm no crash reports referencing NVMe DMA buffer overflows after the update.
Typical attack path
- Obtain root or equivalent local privileges on the target system
- Identify and open an NVMe device node
- Issue NVMe commands with mismatched small meta buffer and larger expected DMA size
- Trigger kernel memory overwrite leading to crash or corruption
How to detect it
Search kernel logs and dmesg output for repeated NVMe driver crashes or DMA buffer warnings; examine audit logs for unusual privileged access to NVMe device files around crash timestamps.
What your security team should do
- Prioritize kernel updates on all systems exposing NVMe storage
- Monitor for post-update stability and remove any unnecessary privileged access to block devices
- Review kernel logs for prior signs of unexplained NVMe-related crashes
The record
A buffer overflow vulnerability was found in the NVM Express (NVMe) driver in the Linux kernel. Only privileged user could specify a small meta buffer and let the device perform larger Direct Memory Access (DMA) into the same buffer, overwriting unrelated kernel memory, causing random kernel crashes and memory corruption.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | hyperv-daemons | 0 | 0 |
| Chainguard | hyperv-daemons-6.12 | 0 | 0 |
| Chainguard | hyperv-daemons-6.18 | 0 | 0 |
| Chainguard | hyperv-daemons-generic | 0 | 0 |
| Chainguard | linux | 0 | 0 |
| Chainguard | linux-aws-6.12 | 0 | 6.12.63-r0 |
| Chainguard | linux-aws-6.12 | 0 | 6.12.65-r0 |
| Chainguard | linux-aws-6.12-boot-installed | 0 | 0 |
| Chainguard | linux-aws-6.12-fips-boot-installed | 0 | 0 |
| Chainguard | linux-aws-6.12-headers | 0 | 0 |
| Chainguard | linux-aws-6.12-modules | 0 | 0 |
| Chainguard | linux-aws-6.18 | 0 | 6.18.4-r0 |
| Chainguard | linux-aws-6.18 | 0 | 6.18.5-r2 |
| Chainguard | linux-aws-6.18-boot-installed | 0 | 0 |
| Chainguard | linux-aws-6.18-fips-boot-installed | 0 | 0 |
| Chainguard | linux-aws-6.18-headers | 0 | 0 |
| Chainguard | linux-aws-6.18-modules | 0 | 0 |
| Chainguard | linux-aws-generic | 0 | 6.18.3-r0 |
| Chainguard | linux-aws-generic | 0 | 6.18.5-r0 |
| Chainguard | linux-aws-generic-boot-configuration | 0 | 0 |
| Chainguard | linux-aws-generic-boot-installed | 0 | 0 |
| Chainguard | linux-aws-generic-fips-boot-installed | 0 | 0 |
| Chainguard | linux-aws-generic-headers | 0 | 0 |
| Chainguard | linux-aws-generic-modules | 0 | 0 |
| Chainguard | linux-azure-6.12 | 0 | 6.12.63-r0 |
| Chainguard | linux-azure-6.12 | 0 | 6.12.65-r1 |
| Chainguard | linux-azure-6.12-boot-installed | 0 | 0 |
| Chainguard | linux-azure-6.12-fips-boot-installed | 0 | 0 |
| Chainguard | linux-azure-6.12-headers | 0 | 0 |
| Chainguard | linux-azure-6.12-modules | 0 | 0 |
| Chainguard | linux-azure-6.18 | 0 | 0 |
| Chainguard | linux-azure-6.18-boot-installed | 0 | 0 |
| Chainguard | linux-azure-6.18-fips-boot-installed | 0 | 0 |
| Chainguard | linux-azure-6.18-headers | 0 | 0 |
| Chainguard | linux-azure-6.18-modules | 0 | 0 |
| Chainguard | linux-azure-generic | 0 | 6.18.3-r0 |
| Chainguard | linux-azure-generic | 0 | 6.18.5-r0 |
| Chainguard | linux-azure-generic-boot-configuration | 0 | 0 |
| Chainguard | linux-azure-generic-boot-installed | 0 | 0 |
| Chainguard | linux-azure-generic-fips-boot-installed | 0 | 0 |
| Chainguard | linux-azure-generic-headers | 0 | 0 |
| Chainguard | linux-azure-generic-modules | 0 | 0 |
| Chainguard | linux-boot-configuration | 0 | 0 |
| Chainguard | linux-boot-installed | 0 | 0 |
| Chainguard | linux-gcp-6.12 | 0 | 6.12.63-r0 |
| Chainguard | linux-gcp-6.12 | 0 | 6.12.65-r0 |
| Chainguard | linux-gcp-6.12-boot-installed | 0 | 0 |
| Chainguard | linux-gcp-6.12-fips-boot-installed | 0 | 0 |
| Chainguard | linux-gcp-6.12-headers | 0 | 0 |
| Chainguard | linux-gcp-6.12-modules | 0 | 0 |
| Chainguard | linux-gcp-6.18 | 0 | 6.18.4-r0 |
| Chainguard | linux-gcp-6.18 | 0 | 6.18.5-r2 |
| Chainguard | linux-gcp-6.18-boot-installed | 0 | 0 |
| Chainguard | linux-gcp-6.18-fips-boot-installed | 0 | 0 |
| Chainguard | linux-gcp-6.18-headers | 0 | 0 |
| Chainguard | linux-gcp-6.18-modules | 0 | 0 |
| Chainguard | linux-gcp-generic | 0 | 6.18.3-r0 |
| Chainguard | linux-gcp-generic | 0 | 6.18.5-r0 |
| Chainguard | linux-gcp-generic-boot-installed | 0 | 0 |
| Chainguard | linux-gcp-generic-fips-boot-installed | 0 | 0 |
| Chainguard | linux-gcp-generic-headers | 0 | 0 |
| Chainguard | linux-gcp-generic-modules | 0 | 0 |
| Chainguard | linux-modules | 0 | 0 |
| Chainguard | linux-qemu-6.12 | 0 | 6.12.65-r2 |
| Chainguard | linux-qemu-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-modules | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.18 | 0 | 6.18.5-r2 |
| Chainguard | linux-qemu-6.18-boot-installed | 0 | 6.18.2-r0 |
| Chainguard | linux-qemu-6.18-fips-boot-installed | 0 | 6.18.2-r0 |
| Chainguard | linux-qemu-6.18-headers | 0 | 6.18.2-r0 |
| Chainguard | linux-qemu-6.18-modules | 0 | 6.18.2-r0 |
| Chainguard | linux-qemu-generic | 0 | 6.18.3-r0 |
| Chainguard | linux-qemu-generic | 0 | 6.18.5-r0 |
| Chainguard | linux-qemu-generic-boot-installed | 0 | 0 |
| Chainguard | linux-qemu-generic-bootc-boot-installed | 0 | 6.18.4-r0 |
| Chainguard | linux-qemu-generic-bootc-boot-installed | 0 | 6.18.5-r0 |
| Chainguard | linux-qemu-generic-fips-boot-installed | 0 | 0 |
| Chainguard | linux-qemu-generic-headers | 0 | 0 |
| Chainguard | linux-qemu-generic-modules | 0 | 0 |
| Chainguard | linux-qemu-rc | 0 | 6.19_rc4-r0 |
| Chainguard | linux-qemu-rc | 0 | 6.19_rc5-r0 |
| Chainguard | linux-qemu-rc-boot-installed | 0 | 0 |
| Chainguard | linux-qemu-rc-fips-boot-installed | 0 | 0 |
| Chainguard | linux-qemu-rc-headers | 0 | 0 |
| Chainguard | linux-qemu-rc-modules | 0 | 0 |
| Chainguard | linux-vmware-6.12 | 0 | 6.12.65-r2 |
| Chainguard | linux-vmware-6.12 | 0 | 6.12.67-r0 |
| Chainguard | linux-vmware-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-modules | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.18 | 0 | 6.18.5-r2 |
| Chainguard | linux-vmware-6.18-boot-installed | 0 | 6.18.2-r0 |
| Chainguard | linux-vmware-6.18-fips-boot-installed | 0 | 6.18.2-r0 |
| Chainguard | linux-vmware-6.18-headers | 0 | 6.18.2-r0 |
| Chainguard | linux-vmware-6.18-modules | 0 | 6.18.2-r0 |
| Chainguard | linux-vmware-generic | 0 | 6.18.3-r0 |
| Chainguard | linux-vmware-generic | 0 | 6.18.5-r0 |
| Chainguard | linux-vmware-generic-boot-installed | 0 | 0 |
| Chainguard | linux-vmware-generic-fips-boot-installed | 0 | 0 |
| Chainguard | linux-vmware-generic-headers | 0 | 0 |
| Chainguard | linux-vmware-generic-modules | 0 | 0 |
| Debian:13 | linux | 0 | No fix |
| SUSE:Linux Enterprise High Availability Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_1 | 0 | 1-150600.1.5.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_1 | 0 | 1-150600.13.3.7 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-64kb | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default-base | 0 | 6.4.0-150600.23.7.3.150600.12.2.7 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.7.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-zfcpdump | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-docs | 0 | 6.4.0-150600.23.7.4 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-obs-build | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.7.2 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-syms | 0 | 6.4.0-150600.23.7.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-azure | 0 | 6.4.0-150600.8.5.4 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-source-azure | 0 | 6.4.0-150600.8.5.4 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-syms-azure | 0 | 6.4.0-150600.8.5.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.7.3 |
| SUSE:Real Time Module 15 SP6 | kernel-rt | 0 | 6.4.0-150600.10.5.1 |
| SUSE:Real Time Module 15 SP6 | kernel-rt_debug | 0 | 6.4.0-150600.10.5.1 |
| SUSE:Real Time Module 15 SP6 | kernel-source-rt | 0 | 6.4.0-150600.10.5.1 |
| SUSE:Real Time Module 15 SP6 | kernel-syms-rt | 0 | 6.4.0-150600.10.5.1 |
| Ubuntu:14.04:LTS | linux | 0 | 3.11.0-12.19 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:14.04:LTS | linux-azure | 0 | 4.15.0-1023.24~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-xenial | 0 | 4.4.0-13.29~14.04.1 |
| Ubuntu:16.04:LTS | linux | 0 | 4.4.0-2.16 |
| Ubuntu:16.04:LTS | linux-aws | 0 | 4.4.0-1001.10 |
| Ubuntu:16.04:LTS | linux-aws-hwe | 0 | 4.15.0-1030.31~16.04.1 |
| Ubuntu:16.04:LTS | linux-azure | 0 | 4.11.0-1009.9 |
| Ubuntu:16.04:LTS | linux-gcp | 0 | 4.10.0-1004.4 |
| Ubuntu:16.04:LTS | linux-hwe | 0 | 4.8.0-39.42~16.04.1 |
| Ubuntu:16.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:16.04:LTS | linux-kvm | 0 | 4.4.0-1004.9 |
| Ubuntu:16.04:LTS | linux-oracle | 0 | 4.15.0-1007.9~16.04.1 |
| Ubuntu:18.04:LTS | linux | 0 | 4.13.0-16.19 |
| Ubuntu:18.04:LTS | linux-aws | 0 | 4.15.0-1001.1 |
| Ubuntu:18.04:LTS | linux-aws-5.0 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-aws-5.3 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-aws-5.4 | 0 | 5.4.0-1018.18~18.04.1 |
| Ubuntu:18.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:18.04:LTS | linux-azure-4.15 | 0 | 4.15.0-1082.92 |
| Ubuntu:18.04:LTS | linux-azure-5.3 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-azure-5.4 | 0 | 5.4.0-1020.20~18.04.1 |
| Ubuntu:18.04:LTS | linux-azure-edge | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp-4.15 | 0 | 4.15.0-1071.81 |
| Ubuntu:18.04:LTS | linux-gcp-5.3 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp-5.4 | 0 | 5.4.0-1019.19~18.04.2 |
| Ubuntu:18.04:LTS | linux-gke-4.15 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gke-5.4 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gkeop-5.4 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe-5.4 | 0 | 5.4.0-37.41~18.04.1 |
| Ubuntu:18.04:LTS | linux-hwe-edge | 0 | 5.0.0-15.16~18.04.1 |
| Ubuntu:18.04:LTS | linux-ibm-5.4 | 0 | 5.4.0-1010.11~18.04.2 |
| Ubuntu:18.04:LTS | linux-kvm | 0 | 4.15.0-1002.2 |
| Ubuntu:18.04:LTS | linux-oem | 0 | No fix |
| Ubuntu:18.04:LTS | linux-oem-osp1 | 0 | 5.0.0-1010.11 |
| Ubuntu:18.04:LTS | linux-oracle | 0 | 4.15.0-1007.9 |
| Ubuntu:18.04:LTS | linux-oracle-5.0 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-oracle-5.3 | 0 | No fix |
| Ubuntu:18.04:LTS | linux-oracle-5.4 | 0 | 5.4.0-1019.19~18.04.1 |
| Ubuntu:18.04:LTS | linux-raspi-5.4 | 0 | 5.4.0-1013.13~18.04.1 |
| Ubuntu:20.04:LTS | linux | 0 | 5.4.0-9.12 |
| Ubuntu:20.04:LTS | linux-aws | 0 | 5.4.0-1005.5 |
| Ubuntu:20.04:LTS | linux-aws-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-aws-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-aws-5.15 | 0 | 5.15.0-1014.18~20.04.1 |
| Ubuntu:20.04:LTS | linux-aws-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure | 0 | 5.4.0-1006.6 |
| Ubuntu:20.04:LTS | linux-azure-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-5.15 | 0 | 5.15.0-1007.8~20.04.1 |
| Ubuntu:20.04:LTS | linux-azure-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-fde | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-fde-5.15 | 0 | 5.15.0-1019.24~20.04.1.1 |
| Ubuntu:20.04:LTS | linux-bluefield | 0 | 5.4.0-1007.10 |
| Ubuntu:20.04:LTS | linux-gcp | 0 | 5.4.0-1005.5 |
| Ubuntu:20.04:LTS | linux-gcp-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gcp-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gcp-5.15 | 0 | 5.15.0-1006.9~20.04.1 |
| Ubuntu:20.04:LTS | linux-gcp-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gke | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gke-5.15 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gkeop | 0 | 5.4.0-1008.9 |
| Ubuntu:20.04:LTS | linux-gkeop-5.15 | 0 | 5.15.0-1003.5~20.04.2 |
| Ubuntu:20.04:LTS | linux-hwe-5.11 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-hwe-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-hwe-5.15 | 0 | 5.15.0-33.34~20.04.1 |
| Ubuntu:20.04:LTS | linux-hwe-5.8 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-ibm | 0 | 5.4.0-1003.4 |
| Ubuntu:20.04:LTS | linux-ibm-5.15 | 0 | 5.15.0-1033.36~20.04.1 |
| Ubuntu:20.04:LTS | linux-intel-5.13 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-intel-iotg-5.15 | 0 | 5.15.0-1003.5~20.04.1 |
Related vulnerabilities
- CVE-2023-39180 A flaw was found within the handling of SMB2_READ commands in the kernel ksmbd module. Also affects hyperv-daemons
- CVE-2023-39179 A flaw was found within the handling of SMB2 read requests in the kernel ksmbd module. Also affects hyperv-daemons
- CVE-2023-39176 A flaw was found within the parsing of SMB2 requests that have a transform header in the… Also affects hyperv-daemons
- CVE-2023-4458 A flaw was found within the parsing of extended attributes in the kernel ksmbd module. Also affects hyperv-daemons
- CVE-2023-52904 In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Fix… Also affects hyperv-daemons
- CVE-2024-38381 In the Linux kernel, the following vulnerability has been resolved: nfc: nci: Fix… Also affects hyperv-daemons
- CVE-2023-6535 A flaw was found in the Linux kernel's NVMe driver. Also affects hyperv-daemons
- CVE-2023-6270 A flaw was found in the ATA over Ethernet (AoE) driver in the Linux kernel. Also affects hyperv-daemons