{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38253","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-04-16T04:51:23.997Z","datePublished":"2025-07-09T10:42:32.059Z","dateUpdated":"2026-08-05T12:00:46.365Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:00:46.365Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: wacom: fix crash in wacom_aes_battery_handler()\n\nCommit fd2a9b29dc9c (\"HID: wacom: Remove AES power_supply after extended\ninactivity\") introduced wacom_aes_battery_handler() which is scheduled\nas a delayed work (aes_battery_work).\n\nIn wacom_remove(), aes_battery_work is not canceled. Consequently, if\nthe device is removed while aes_battery_work is still pending, then hard\ncrashes or \"Oops: general protection fault...\" are experienced when\nwacom_aes_battery_handler() is finally called. E.g., this happens with\nbuilt-in USB devices after resume from hibernate when aes_battery_work\nwas still pending at the time of hibernation.\n\nSo, take care to cancel aes_battery_work in wacom_remove()."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The wacom driver binds any Bluetooth HID device presenting Wacom's vendor ID via `BT_DEVICE_WACOM(HID_ANY_ID)` and hid-core's forced `HID_GROUP_WACOM`, so an attacker within Bluetooth range supplying a crafted report descriptor and pen reports reaches the vulnerable path. This matches the adjacent-network scoring used for other Wacom HID report-processing flaws.\nAC:L - The attacker device controls every step — the report descriptor that sets WACOM_QUIRK_AESPEN, the pen report with sense=0 that arms the work, and the disconnect that frees `struct wacom` — and the 30-minute delay window guarantees the work is still pending at removal. No race must be won and no uncontrollable state is required.\nPR:N - Everything happens inside kernel HID transport and driver probe/report/remove handling; no user account, credential, or capability on the target is involved. The attacker only needs their device connected to the host.\nUI:N - Once the device is connected, arming the delayed work and then tearing down the link are entirely device-driven with no action by any user on the target. Consistent with prior Wacom HID CVEs scored UI:N.\nS:U - The use-after-free corrupts kernel heap memory and executes within the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The freed devm-allocated `struct wacom` is a sprayable slab object whose contents are subsequently used as a workqueue pointer, work function pointer, and `hdev` pointer, giving an attacker who grooms the slab an arbitrary-read/kernel-memory-disclosure primitive.\nI:H - `process_one_work()` invokes `work->func()` read from the freed object and `devres_release_group()` walks stale list data invoking release callbacks, yielding control-flow hijack and arbitrary-write potential; the leftover armed timer in the timer wheel adds list-corruption write primitives.\nA:H - The commit explicitly reports \"hard crashes or 'Oops: general protection fault'\" when the pending work fires after device removal, and the attacker can trigger this repeatedly by reconnecting and disconnecting."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/wacom_sys.c"],"versions":[{"version":"fd2a9b29dc9c4c35def91d5d1c5b470843539de6","lessThan":"a4f182ffa30c52ad1c8e12edfb8049ee748c0f1b","status":"affected","versionType":"git"},{"version":"fd2a9b29dc9c4c35def91d5d1c5b470843539de6","lessThan":"57a3d82200dbeccd002244b96acad570eeeb731f","status":"affected","versionType":"git"},{"version":"fd2a9b29dc9c4c35def91d5d1c5b470843539de6","lessThan":"f3054152c12e2eed1e72704aff47b0ea58229584","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/wacom_sys.c"],"versions":[{"version":"6.8","status":"affected"},{"version":"0","lessThan":"6.8","status":"unaffected","versionType":"semver"},{"version":"6.12.36","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.15.5","lessThanOrEqual":"6.15.*","status":"unaffected","versionType":"semver"},{"version":"6.16","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.12.36"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.15.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.16"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/a4f182ffa30c52ad1c8e12edfb8049ee748c0f1b"},{"url":"https://git.kernel.org/stable/c/57a3d82200dbeccd002244b96acad570eeeb731f"},{"url":"https://git.kernel.org/stable/c/f3054152c12e2eed1e72704aff47b0ea58229584"}],"title":"HID: wacom: fix crash in wacom_aes_battery_handler()","x_generator":{"engine":"bippy-1.2.0"}}}}