CVE-2025-21923 (GCVE-0-2025-21923)

Vulnerability from cvelistv5 – Published: 2025-04-01 15:40 – Updated: 2026-08-05 11:55
VLAI
Title
HID: hid-steam: Fix use-after-free when detaching device
Summary
In the Linux kernel, the following vulnerability has been resolved: HID: hid-steam: Fix use-after-free when detaching device When a hid-steam device is removed it must clean up the client_hdev used for intercepting hidraw access. This can lead to scheduling deferred work to reattach the input device. Though the cleanup cancels the deferred work, this was done before the client_hdev itself is cleaned up, so it gets rescheduled. This patch fixes the ordering to make sure the deferred work is properly canceled.
SSVC
Exploitation: none Automatable: no Technical Impact: total
CISA Coordinator (v2.0.3)
CWE
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: e1147961b2145fa61c3078a4a797d9576cde91ab , < 026714ec7546de741826324a6a1914c91024d06c (git)
Affected: 3e38cbbfa0a128a9d64773240a9eb3bc7bae3b1a , < a899adf7063c6745aaff1ec869f3c7f6329ed0a1 (git)
Affected: 053fa3888d2a957f4db26c05e503f4c6b9570a30 , < ea3f18d2f02629653b7bfe42607737ccd1343e54 (git)
Affected: 79504249d7e27cad4a3eeb9afc6386e418728ce0 , < e53fc232a65f7488ab75d03a5b95f06aaada7262 (git)
Create a notification for this product.
Linux Linux Affected: 6.6.79 , < 6.6.83 (semver)
Affected: 6.12.16 , < 6.12.19 (semver)
Affected: 6.13.4 , < 6.13.7 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "LOCAL",
              "availabilityImpact": "HIGH",
              "baseScore": 7.8,
              "baseSeverity": "HIGH",
              "confidentialityImpact": "HIGH",
              "integrityImpact": "HIGH",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2025-21923",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2025-04-16T13:15:09.842820Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-416",
                "description": "CWE-416 Use After Free",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2025-04-16T13:19:53.000Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/hid/hid-steam.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "026714ec7546de741826324a6a1914c91024d06c",
              "status": "affected",
              "version": "e1147961b2145fa61c3078a4a797d9576cde91ab",
              "versionType": "git"
            },
            {
              "lessThan": "a899adf7063c6745aaff1ec869f3c7f6329ed0a1",
              "status": "affected",
              "version": "3e38cbbfa0a128a9d64773240a9eb3bc7bae3b1a",
              "versionType": "git"
            },
            {
              "lessThan": "ea3f18d2f02629653b7bfe42607737ccd1343e54",
              "status": "affected",
              "version": "053fa3888d2a957f4db26c05e503f4c6b9570a30",
              "versionType": "git"
            },
            {
              "lessThan": "e53fc232a65f7488ab75d03a5b95f06aaada7262",
              "status": "affected",
              "version": "79504249d7e27cad4a3eeb9afc6386e418728ce0",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/hid/hid-steam.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6.6.83",
              "status": "affected",
              "version": "6.6.79",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.19",
              "status": "affected",
              "version": "6.12.16",
              "versionType": "semver"
            },
            {
              "lessThan": "6.13.7",
              "status": "affected",
              "version": "6.13.4",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.83",
                  "versionStartIncluding": "6.6.79",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.19",
                  "versionStartIncluding": "6.12.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13.7",
                  "versionStartIncluding": "6.13.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: hid-steam: Fix use-after-free when detaching device\n\nWhen a hid-steam device is removed it must clean up the client_hdev used for\nintercepting hidraw access. This can lead to scheduling deferred work to\nreattach the input device. Though the cleanup cancels the deferred work, this\nwas done before the client_hdev itself is cleaned up, so it gets rescheduled.\nThis patch fixes the ordering to make sure the deferred work is properly\ncanceled."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The whole sequence is local char-device work \u2014 `UHID_CREATE2` on `/dev/uhid` forging a `BUS_USB 28de:1102` device, `open()` of the resulting client `/dev/hidrawN`, then `UHID_DESTROY` \u2014 and hid-steam has no `hid_is_usb()`/`hid_to_usb_dev()` guard while `uhid_dev_create2()` copies `bus`/`vendor`/`product` and the report descriptor verbatim from userspace. Physically attaching and unplugging a real or emulated Steam Controller is an alternative, strictly lower-severity vector.\nAC:L - The attacker performs both required steps himself and in order \u2014 hold the client hidraw node open, then tear the device down \u2014 and the re-queue of `unregister_work` from `hidraw_disconnect()` \u2192 `hid_hw_close()` \u2192 `steam_client_ll_close()` happens unconditionally after the cancel, so there is no race window to win and no state outside his control. Heap grooming before the worker runs is likewise attacker-driven, and creating further uhid steam devices reclaims the identical devm allocation size.\nPR:L - No capability check exists anywhere on the path \u2014 neither `uhid_dev_create2()` nor `steam_probe()` tests any `CAP_*` \u2014 so access is governed purely by DAC on `/dev/uhid` and `/dev/hidraw*`, which systemd/udev `uaccess`-tag for the logged-in seat user on desktop and Android-class systems and which are routinely exposed inside privileged containers. On real hardware the unprivileged Steam client is precisely the process holding the client hidraw open when the controller is detached.\nUI:N - The attacker\u0027s own process creates the device, opens the client hidraw node, and triggers the removal, and the deferred work then runs automatically on the system workqueue. No action by any other user \u2014 no mount, login, or file open \u2014 is required.\nS:U - The freed `struct steam_device`, the freed parent `struct hid_device`, and every corrupted structure live in kernel memory under the kernel\u0027s own security authority. No hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - This is a slab use-after-free of an object whose contents are read back after free \u2014 `steam_work_unregister_cb()` reads `steam-\u003eclient_opened`/`steam-\u003econnected`, and `steam_send_report()` reads `steam-\u003ehdev-\u003ereport_enum[HID_FEATURE_REPORT].report_id_hash[0]` plus `hid_report_len()` from the freed hid_device. Reallocating the slab with controlled data turns that chain into an attacker-directed arbitrary kernel read, and per UAF guidance confidentiality impact is High.\nI:H - Two independent write/control primitives exist: the workqueue stores into `work-\u003edata` inside the freed object and then performs an indirect call to `work-\u003efunc(work)` read from freed memory, and the callback additionally does `rcu_assign_pointer(steam-\u003einput/sensors, ...)` writes into the freed struct and dispatches `hid_hw_raw_request()` through the freed hdev\u0027s `ll_driver` function-pointer table. Heap-spray reallocation converts either into control-flow hijacking and arbitrary write.\nA:H - The defect is the slab-use-after-free reported by syzbot (syzbot+0154da2d403396b2bd59), which produces KASAN slab-use-after-free splats, workqueue corruption, and kernel oops/panic \u2014 a full panic under `panic_on_oops`. It is re-triggerable at will by repeating the create/open/destroy cycle."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:55:21.882Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/026714ec7546de741826324a6a1914c91024d06c"
        },
        {
          "url": "https://git.kernel.org/stable/c/a899adf7063c6745aaff1ec869f3c7f6329ed0a1"
        },
        {
          "url": "https://git.kernel.org/stable/c/ea3f18d2f02629653b7bfe42607737ccd1343e54"
        },
        {
          "url": "https://git.kernel.org/stable/c/e53fc232a65f7488ab75d03a5b95f06aaada7262"
        }
      ],
      "title": "HID: hid-steam: Fix use-after-free when detaching device",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-21923",
    "datePublished": "2025-04-01T15:40:56.229Z",
    "dateReserved": "2024-12-29T08:45:45.788Z",
    "dateUpdated": "2026-08-05T11:55:21.882Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-21923",
      "date": "2026-08-05",
      "epss": "0.00198",
      "percentile": "0.09791"
    },
    "microsoft_vex": {
      "current_release_date": "2026-02-18T02:31:21.000Z",
      "cve": "CVE-2025-21923",
      "id": "msrc_CVE-2025-21923",
      "initial_release_date": "2025-04-02T00:00:00.000Z",
      "product_status:fixed": "2",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "HID: hid-steam: Fix use-after-free when detaching device",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-21923.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-21923\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-04-01T16:15:23.007\",\"lastModified\":\"2026-06-17T08:44:37.340\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nHID: hid-steam: Fix use-after-free when detaching device\\n\\nWhen a hid-steam device is removed it must clean up the client_hdev used for\\nintercepting hidraw access. This can lead to scheduling deferred work to\\nreattach the input device. Though the cleanup cancels the deferred work, this\\nwas done before the client_hdev itself is cleaned up, so it gets rescheduled.\\nThis patch fixes the ordering to make sure the deferred work is properly\\ncanceled.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: HID: hid-steam: Se corrige el error \\\"use-after-free\\\" al desconectar el dispositivo. Al desconectar un dispositivo hid-steam, este debe limpiar el archivo client_hdev utilizado para interceptar el acceso a hidraw. Esto puede provocar la programaci\u00f3n de un trabajo diferido para volver a conectar el dispositivo de entrada. Aunque la limpieza cancela el trabajo diferido, esto se realiz\u00f3 antes de que se limpiara el archivo client_hdev, por lo que se reprograma. Este parche corrige el orden para garantizar que el trabajo diferido se cancele correctamente.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/hid/hid-steam.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"e1147961b2145fa61c3078a4a797d9576cde91ab\",\"lessThan\":\"026714ec7546de741826324a6a1914c91024d06c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3e38cbbfa0a128a9d64773240a9eb3bc7bae3b1a\",\"lessThan\":\"a899adf7063c6745aaff1ec869f3c7f6329ed0a1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"053fa3888d2a957f4db26c05e503f4c6b9570a30\",\"lessThan\":\"ea3f18d2f02629653b7bfe42607737ccd1343e54\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"79504249d7e27cad4a3eeb9afc6386e418728ce0\",\"lessThan\":\"e53fc232a65f7488ab75d03a5b95f06aaada7262\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/hid/hid-steam.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.6.79\",\"lessThan\":\"6.6.83\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.12.16\",\"lessThan\":\"6.12.19\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.13.4\",\"lessThan\":\"6.13.7\",\"versionType\":\"semver\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2025-04-16T13:15:09.842820Z\",\"id\":\"CVE-2025-21923\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"total\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]},{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6.79\",\"versionEndExcluding\":\"6.6.83\",\"matchCriteriaId\":\"B6327145-7029-4360-8061-5CC9CFB6C2FA\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.12.16\",\"versionEndExcluding\":\"6.12.19\",\"matchCriteriaId\":\"8F28B84E-3275-49E1-9361-7B9A1872F512\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13.4\",\"versionEndExcluding\":\"6.13.7\",\"matchCriteriaId\":\"1CC471C1-5724-4900-B087-CDB613C78BF2\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/026714ec7546de741826324a6a1914c91024d06c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a899adf7063c6745aaff1ec869f3c7f6329ed0a1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e53fc232a65f7488ab75d03a5b95f06aaada7262\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ea3f18d2f02629653b7bfe42607737ccd1343e54\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-06-29T20:35:21+00:00",
      "cve": "CVE-2025-21923",
      "id": "CVE-2025-21923",
      "initial_release_date": "2025-04-01T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: HID: hid-steam: Fix use-after-free when detaching device",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-21923.json",
      "version": "3"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.8, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2025-21923\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2025-04-16T13:15:09.842820Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-416\", \"description\": \"CWE-416 Use After Free\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2025-04-16T13:15:11.988Z\"}}], \"cna\": {\"title\": \"HID: hid-steam: Fix use-after-free when detaching device\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The whole sequence is local char-device work \\u2014 `UHID_CREATE2` on `/dev/uhid` forging a `BUS_USB 28de:1102` device, `open()` of the resulting client `/dev/hidrawN`, then `UHID_DESTROY` \\u2014 and hid-steam has no `hid_is_usb()`/`hid_to_usb_dev()` guard while `uhid_dev_create2()` copies `bus`/`vendor`/`product` and the report descriptor verbatim from userspace. Physically attaching and unplugging a real or emulated Steam Controller is an alternative, strictly lower-severity vector.\\nAC:L - The attacker performs both required steps himself and in order \\u2014 hold the client hidraw node open, then tear the device down \\u2014 and the re-queue of `unregister_work` from `hidraw_disconnect()` \\u2192 `hid_hw_close()` \\u2192 `steam_client_ll_close()` happens unconditionally after the cancel, so there is no race window to win and no state outside his control. Heap grooming before the worker runs is likewise attacker-driven, and creating further uhid steam devices reclaims the identical devm allocation size.\\nPR:L - No capability check exists anywhere on the path \\u2014 neither `uhid_dev_create2()` nor `steam_probe()` tests any `CAP_*` \\u2014 so access is governed purely by DAC on `/dev/uhid` and `/dev/hidraw*`, which systemd/udev `uaccess`-tag for the logged-in seat user on desktop and Android-class systems and which are routinely exposed inside privileged containers. On real hardware the unprivileged Steam client is precisely the process holding the client hidraw open when the controller is detached.\\nUI:N - The attacker\u0027s own process creates the device, opens the client hidraw node, and triggers the removal, and the deferred work then runs automatically on the system workqueue. No action by any other user \\u2014 no mount, login, or file open \\u2014 is required.\\nS:U - The freed `struct steam_device`, the freed parent `struct hid_device`, and every corrupted structure live in kernel memory under the kernel\u0027s own security authority. No hypervisor, IOMMU, or sandbox boundary is crossed.\\nC:H - This is a slab use-after-free of an object whose contents are read back after free \\u2014 `steam_work_unregister_cb()` reads `steam-\u003eclient_opened`/`steam-\u003econnected`, and `steam_send_report()` reads `steam-\u003ehdev-\u003ereport_enum[HID_FEATURE_REPORT].report_id_hash[0]` plus `hid_report_len()` from the freed hid_device. Reallocating the slab with controlled data turns that chain into an attacker-directed arbitrary kernel read, and per UAF guidance confidentiality impact is High.\\nI:H - Two independent write/control primitives exist: the workqueue stores into `work-\u003edata` inside the freed object and then performs an indirect call to `work-\u003efunc(work)` read from freed memory, and the callback additionally does `rcu_assign_pointer(steam-\u003einput/sensors, ...)` writes into the freed struct and dispatches `hid_hw_raw_request()` through the freed hdev\u0027s `ll_driver` function-pointer table. Heap-spray reallocation converts either into control-flow hijacking and arbitrary write.\\nA:H - The defect is the slab-use-after-free reported by syzbot (syzbot+0154da2d403396b2bd59), which produces KASAN slab-use-after-free splats, workqueue corruption, and kernel oops/panic \\u2014 a full panic under `panic_on_oops`. It is re-triggerable at will by repeating the create/open/destroy cycle.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"e1147961b2145fa61c3078a4a797d9576cde91ab\", \"lessThan\": \"026714ec7546de741826324a6a1914c91024d06c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"3e38cbbfa0a128a9d64773240a9eb3bc7bae3b1a\", \"lessThan\": \"a899adf7063c6745aaff1ec869f3c7f6329ed0a1\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"053fa3888d2a957f4db26c05e503f4c6b9570a30\", \"lessThan\": \"ea3f18d2f02629653b7bfe42607737ccd1343e54\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"79504249d7e27cad4a3eeb9afc6386e418728ce0\", \"lessThan\": \"e53fc232a65f7488ab75d03a5b95f06aaada7262\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/hid/hid-steam.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.6.79\", \"lessThan\": \"6.6.83\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.12.16\", \"lessThan\": \"6.12.19\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.13.4\", \"lessThan\": \"6.13.7\", \"versionType\": \"semver\"}], \"programFiles\": [\"drivers/hid/hid-steam.c\"], \"defaultStatus\": \"unaffected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/026714ec7546de741826324a6a1914c91024d06c\"}, {\"url\": \"https://git.kernel.org/stable/c/a899adf7063c6745aaff1ec869f3c7f6329ed0a1\"}, {\"url\": \"https://git.kernel.org/stable/c/ea3f18d2f02629653b7bfe42607737ccd1343e54\"}, {\"url\": \"https://git.kernel.org/stable/c/e53fc232a65f7488ab75d03a5b95f06aaada7262\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nHID: hid-steam: Fix use-after-free when detaching device\\n\\nWhen a hid-steam device is removed it must clean up the client_hdev used for\\nintercepting hidraw access. This can lead to scheduling deferred work to\\nreattach the input device. Though the cleanup cancels the deferred work, this\\nwas done before the client_hdev itself is cleaned up, so it gets rescheduled.\\nThis patch fixes the ordering to make sure the deferred work is properly\\ncanceled.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.83\", \"versionStartIncluding\": \"6.6.79\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.12.19\", \"versionStartIncluding\": \"6.12.16\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.13.7\", \"versionStartIncluding\": \"6.13.4\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:55:21.882Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2025-21923\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:55:21.882Z\", \"dateReserved\": \"2024-12-29T08:45:45.788Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2025-04-01T15:40:56.229Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…