CyberSecBulletin
CVE-2026-64365NVD status: Analyzed

Linux: Use After Free

CVE-2026-64365 is a high-severity use after free vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions 2bb6e7143cf70ed281822d26c1848b2897ac36e9, 523db788c0f84612707638e266e8957ca7e3a756, 17f5928d7010bc9e002930326b59e60e40c09ee3 as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.13% chance of exploitation within 30 days, which is low compared with other CVEs.

Next patch cycle

High severity with no evidence of exploitation so far.

What to do

  1. Update Linux to 2bb6e7143cf70ed281822d26c1848b2897ac36e9 or 523db788c0f84612707638e266e8957ca7e3a756 or 17f5928d7010bc9e002930326b59e60e40c09ee3 or 3eca1a8165b5e7996e699e9df76cb4645e184d42, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 6.1.178 or 6.6.145 or 6.12.96 or 6.18.39, whichever matches your release line, or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinux33a5c2793451770cb6dcf0cc35c76cfd4b045513 up to, but not including, 2bb6e7143cf70ed281822d26c1848b2897ac36e9; 33a5c2793451770cb6dcf0cc35c76cfd4b045513 up to, but not including, 523db788c0f84612707638e266e8957ca7e3a756; 33a5c2793451770cb6dcf0cc35c76cfd4b045513 up to, but not including, 17f5928d7010bc9e002930326b59e60e40c09ee3; 33a5c2793451770cb6dcf0cc35c76cfd4b045513 up to, but not including, 3eca1a8165b5e7996e699e9df76cb4645e184d42; 33a5c2793451770cb6dcf0cc35c76cfd4b045513 up to, but not including, df3d8aa1a9392da3de66398e7a03422463806b21; 33a5c2793451770cb6dcf0cc35c76cfd4b045513 up to, but not including, 46c8beeccd8ab2c863827254a85ea877654a3534; 5.172bb6e7143cf70ed281822d26c1848b2897ac36e9, 523db788c0f84612707638e266e8957ca7e3a756, 17f5928d7010bc9e002930326b59e60e40c09ee3, 3eca1a8165b5e7996e699e9df76cb4645e184d42, df3d8aa1a9392da3de66398e7a03422463806b21, 46c8beeccd8ab2c863827254a85ea877654a3534
LinuxLinux Kernel5.17 up to, but not including, 6.1.178; 6.2 up to, but not including, 6.6.145; 6.7 up to, but not including, 6.12.96; 6.13 up to, but not including, 6.18.39; 6.19 up to, but not including, 7.1.4; 7.26.1.178, 6.6.145, 6.12.96, 6.18.39, 7.1.4

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
LocalThe attacker needs local access or must trick a user into running something.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
LowA basic user account is enough.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
HighAll data handled by the component can be read.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.

Official description

In the Linux kernel, the following vulnerability has been resolved: HID: letsketch: fix UAF on inrange_timer at driver unbind letsketch_driver does not provide a .remove callback, but letsketch_probe() arms a per-device timer: timer_setup(&data->inrange_timer, letsketch_inrange_timeout, 0); The timer is re-armed from letsketch_raw_event() with a 100 ms timeout on every pen-in-range report, and its callback dereferences data->input_tablet to deliver a synthetic BTN_TOOL_PEN release. letsketch_data is allocated with devm_kzalloc(), and its input_dev fields are devm-allocated via letsketch_setup_input_tablet(). On device unbind (USB unplug or rmmod), the HID core runs its default teardown and devm cleanup frees both letsketch_data and the input devices. Because no .remove callback exists, nothing drains the timer first: if raw_event armed it within ~100 ms of the unbind, the pending timer fires on freed memory. This is a UAF read of data and of data->input_tablet, followed by input_report_key() / input_sync() into the freed input_dev. The same problem can occur on the probe error path: if hid_hw_start() enabled I/O on an always-poll-quirk device and then failed, raw_event may have armed the timer before devm releases data. Fix by adding a .remove callback that calls hid_hw_stop() first. hid_hw_stop() synchronously kills the URBs that deliver raw_event(), so once it returns no path can re-arm the timer. timer_shutdown_sync() then drains any in-flight callback and permanently disables further mod_timer() calls. Apply the same timer_shutdown_sync() in the probe error path so the timer is guaranteed not to outlive data.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Use After Free

The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory belongs to the code that operates on the new pointer.

How developers prevent this class of flaw

  • Choose a language that provides automatic memory management.
  • When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.

More Use After Free vulnerabilities (CWE-416)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: partial).
  3. Record last changed materially (score, affected products, status or references).

References

Recent Use After Free vulnerabilities

Spotted an error? Tell us.