{
    "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"
            }
        }
    }
}