CVE-2023-53747
Linux Kernel vulnerability analysis and mitigation

Overview

CVE-2023-53747 is a use-after-free (UAF) vulnerability in the Linux kernel's virtual console screen driver (vc_screen), specifically within the vcs_write() function in drivers/tty/vt/vc_screen.c. After console_unlock() is called inside the vcs_write() while loop, the vc_data struct can be freed by vc_port_destruct() on another thread; the stale pointer is then used when vcs_size() is called, triggering a UAF. The vulnerability was disclosed on December 8, 2025, and affects the Linux kernel. It carries a CVSS v3.1 base score of 5.5 (Medium), requiring local access and low privileges with no user interaction (Red Hat Advisory, Red Hat Bugzilla).

Technical details

The root cause is a use-after-free condition (CWE-416) in vcs_write() (drivers/tty/vt/vc_screen.c). When the function releases the console lock via console_unlock() mid-loop, a concurrent thread can deallocate the vc_data structure through vc_port_destruct()kfree(). Upon re-acquiring the lock, vcs_write() continues to use the now-freed vc_data pointer when calling vcs_size(), resulting in a read of freed memory. The bug was originally discovered and reported by Syzkaller, which produced a KASAN report showing a slab-use-after-free read of 4 bytes at the stale address (Red Hat Bugzilla). The fix requires reloading the vc_data pointer from the tty structure after each re-acquisition of console_lock() within the loop (Red Hat Advisory).

Impact

Successful exploitation of this vulnerability can cause a kernel denial of service (system crash or hang) due to invalid memory access in kernel space. Because the vulnerability is triggered in a kernel driver with no confidentiality or integrity impact, the primary risk is availability — an attacker with local, low-privileged access can crash the system by racing vcs_write() against a virtual terminal deallocation operation (Red Hat Bugzilla, Red Hat Advisory).

Exploitability

No public exploit code or in-the-wild exploitation has been reported for CVE-2023-53747. The vulnerability was originally surfaced by the Syzkaller kernel fuzzer, and no threat actor attribution or CISA KEV catalog listing is known. The EPSS score is approximately 0.024% (0.000240), indicating a very low probability of exploitation in the near term (Red Hat Advisory). Detection plugins are available via Nessus (plugin IDs 277787, 298924) and Qualys (ID 761056).

Exploitation steps

  1. Gain local access: Obtain a low-privileged local user account on a vulnerable Linux system with access to virtual console devices (e.g., /dev/vcs*).
  2. Open a virtual console: Open a virtual terminal device to trigger allocation of a vc_data structure via vc_allocate()con_install()tty_init_dev().
  3. Initiate concurrent write: In one thread, begin a write operation to the virtual console screen device (/dev/vcs*), causing vcs_write() to enter its loop and call console_unlock().
  4. Race with deallocation: In a second concurrent thread, issue a VT_DISALLOCATE ioctl (or equivalent) to trigger vt_disallocate_all()vc_port_destruct()kfree(), freeing the vc_data struct while the first thread holds a stale pointer.
  5. Trigger UAF: The first thread re-acquires console_lock() and calls vcs_size() using the freed vc_data pointer, causing a kernel crash (denial of service) (Red Hat Bugzilla).

Indicators of compromise

  • Logs: Kernel logs (dmesg / /var/log/kern.log) showing BUG: KASAN: slab-use-after-free in vcs_size with a call trace through vcs_write, vfs_write.
  • Logs: KASAN reports referencing drivers/tty/vt/vc_screen.c:215 and drivers/tty/vt/vc_screen.c:664.
  • Process: Unusual processes repeatedly opening and closing virtual terminal devices (/dev/tty*, /dev/vcs*) or issuing VT_DISALLOCATE ioctls in rapid succession.
  • System: Unexpected kernel panics or system reboots on systems with virtual console activity (Red Hat Bugzilla).

Mitigation and workarounds

The fix involves reloading the vc_data pointer after each re-acquisition of console_lock() within the vcs_write() loop, preventing use of a stale pointer. Upstream kernel patches have been committed to stable branches (git.kernel.org commits: 0deff678, 1de42e76, 8fb9ea65, 11dddfbb). Users should apply the latest stable Linux kernel updates provided by their distribution vendor (e.g., Red Hat, SUSE, Ubuntu) that include this fix. As a workaround, restricting local user access to virtual console devices (/dev/vcs*) via file permissions or access control policies can reduce exposure (Red Hat Advisory, Red Hat Bugzilla).

Additional resources


SourceThis report was generated using AI

Related Linux Kernel vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-74576HIGH7.5
  • Linux Kernel logoLinux Kernel
  • linux-nvidia-6.17
NoYesAug 15, 2026
CVE-2026-74578HIGH7.1
  • Linux Kernel logoLinux Kernel
  • linux-azure-6.8
NoYesAug 16, 2026
CVE-2026-74579LOW3.4
  • Linux Kernel logoLinux Kernel
  • linux-lowlatency-hwe-5.15
NoYesAug 17, 2026
CVE-2025-30156NONEN/A
  • Linux Kernel logoLinux Kernel
  • perf
NoNoAug 21, 2026
CVE-2026-74577NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-rt-debug-modules-extra
NoYesAug 15, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management