CVE-2026-90041 (GCVE-0-2026-90041)
Vulnerability from cvelistv5 – Published: 2026-09-16 10:33 – Updated: 2026-09-16 14:41
VLAI
EPSS
VEX
Title
HID: sony: clean up device list on probe failure
Summary
In the Linux kernel, the following vulnerability has been resolved:
HID: sony: clean up device list on probe failure
sony_input_configured() adds some controllers to sony_device_list before
HID core registers their input devices. input_register_device() can fail
after the callback returns successfully. sony_probe() then observes that
HID_CLAIMED_INPUT is clear and unwinds, but only stops the HID hardware.
The devres-managed sony_sc is freed while its list node remains linked, so
the next matching controller traverses freed memory.
Initialize the list node and device ID to inactive states. Make list
removal idempotent and run the driver-private cleanup on every probe
failure path. This also makes a second cleanup safe when
sony_input_configured() already unwound a partial initialization before
sony_probe() handles the missing input claim.
Found by 0sec (https://0sec.ai) using automated source analysis;
verified against the HID input registration and probe unwind paths.
Severity
8.8 (High)
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
4f967f6d73746f66514528cc1191025f0b5d69b3 , < 3b4709e4864908bb06c48c500cc8db8d3d55d139
(git)
Affected: 4f967f6d73746f66514528cc1191025f0b5d69b3 , < d044d796e2a369c6051c7e83dce88c7baa2494d4 (git) Affected: 4f967f6d73746f66514528cc1191025f0b5d69b3 , < 7c65699a3a311198a07659a614fe64d45924839e (git) |
guessed | |
| Linux | Linux |
Affected:
4.10
Unaffected: 0 , < 4.10 (semver) Unaffected: 6.18.51 , ≤ 6.18.* (semver) Unaffected: 7.2.5 , ≤ 7.2.* (semver) Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/hid/hid-sony.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3b4709e4864908bb06c48c500cc8db8d3d55d139",
"status": "affected",
"version": "4f967f6d73746f66514528cc1191025f0b5d69b3",
"versionType": "git"
},
{
"lessThan": "d044d796e2a369c6051c7e83dce88c7baa2494d4",
"status": "affected",
"version": "4f967f6d73746f66514528cc1191025f0b5d69b3",
"versionType": "git"
},
{
"lessThan": "7c65699a3a311198a07659a614fe64d45924839e",
"status": "affected",
"version": "4f967f6d73746f66514528cc1191025f0b5d69b3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/hid/hid-sony.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.10"
},
{
"lessThan": "4.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.51",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3-rc1",
"versionStartIncluding": "4.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: sony: clean up device list on probe failure\n\nsony_input_configured() adds some controllers to sony_device_list before\nHID core registers their input devices. input_register_device() can fail\nafter the callback returns successfully. sony_probe() then observes that\nHID_CLAIMED_INPUT is clear and unwinds, but only stops the HID hardware.\nThe devres-managed sony_sc is freed while its list node remains linked, so\nthe next matching controller traverses freed memory.\n\nInitialize the list node and device ID to inactive states. Make list\nremoval idempotent and run the driver-private cleanup on every probe\nfailure path. This also makes a second cleanup safe when\nsony_input_configured() already unwound a partial initialization before\nsony_probe() handles the missing input claim.\n\nFound by 0sec (https://0sec.ai) using automated source analysis;\nverified against the HID input registration and probe unwind paths."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:A - hid-sony binds HID_BLUETOOTH_DEVICE IDs for Sixaxis/DualShock 3 (Sony 0x0268), Navigation, Motion, and related controllers, so a nearby Bluetooth HID/HIDP peer spoofing those identities reaches sony_probe() and sony_check_add() over L2CAP; USB enumeration is only a lower-severity physical path.\nAC:L - A rogue controller fully controls the HID descriptor and feature-report replies used in sony_input_configured(), which links sony_sc onto sony_device_list before input_register_device(); the attacker then reconnects a second matching device so sony_check_add_dev_list() walks the dangling node, with no race outside its control.\nPR:N - A malicious Bluetooth HID peripheral is sufficient: hidp/usbhid enumerates the device and sony_probe() runs during bind, with no local account, capability, or init-namespace privilege required on the victim.\nUI:N - sony_input_configured() and the HID_CLAIMED_INPUT unwind run from hid_hw_start() as soon as the spoofed Sixaxis/Motion/Navigation device connects or auto-reconnects; no extra victim open, mount, or confirmation is required.\nS:U - The use-after-free is of driver-private sony_sc on the host kernel HID list and does not cross a VM, IOMMU, or other separate security authority.\nC:H - After probe fails, devres frees sony_sc while sony_device_list still points at it; the next sony_check_add_dev_list() list_for_each_entry() reads mac_address and list pointers from the freed heap object, and UAF of this structure enables arbitrary kernel disclosure via spray/reuse.\nI:H - The dangling list_node is embedded in sony_sc alongside send_output_report, work_struct, and hid_device pointers; a second probe\u0027s list walk and later driver callbacks on a sprayed object yield an attacker-controlled kernel write and control-flow hijack primitive.\nA:H - Walking the freed list_node in sony_check_add_dev_list() is a KASAN slab-use-after-free and causes a kernel oops or panic when the slot is not reused, so any trigger of this UAF is a full host denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-16T14:41:52.635Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3b4709e4864908bb06c48c500cc8db8d3d55d139"
},
{
"url": "https://git.kernel.org/stable/c/d044d796e2a369c6051c7e83dce88c7baa2494d4"
},
{
"url": "https://git.kernel.org/stable/c/7c65699a3a311198a07659a614fe64d45924839e"
}
],
"title": "HID: sony: clean up device list on probe failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90041",
"datePublished": "2026-09-16T10:33:39.499Z",
"dateReserved": "2026-09-11T19:38:34.783Z",
"dateUpdated": "2026-09-16T14:41:52.635Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-90041\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-16T11:17:17.350\",\"lastModified\":\"2026-09-16T15:18:26.760\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nHID: sony: clean up device list on probe failure\\n\\nsony_input_configured() adds some controllers to sony_device_list before\\nHID core registers their input devices. input_register_device() can fail\\nafter the callback returns successfully. sony_probe() then observes that\\nHID_CLAIMED_INPUT is clear and unwinds, but only stops the HID hardware.\\nThe devres-managed sony_sc is freed while its list node remains linked, so\\nthe next matching controller traverses freed memory.\\n\\nInitialize the list node and device ID to inactive states. Make list\\nremoval idempotent and run the driver-private cleanup on every probe\\nfailure path. This also makes a second cleanup safe when\\nsony_input_configured() already unwound a partial initialization before\\nsony_probe() handles the missing input claim.\\n\\nFound by 0sec (https://0sec.ai) using automated source analysis;\\nverified against the HID input registration and probe unwind paths.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/hid/hid-sony.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4f967f6d73746f66514528cc1191025f0b5d69b3\",\"lessThan\":\"3b4709e4864908bb06c48c500cc8db8d3d55d139\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"4f967f6d73746f66514528cc1191025f0b5d69b3\",\"lessThan\":\"d044d796e2a369c6051c7e83dce88c7baa2494d4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"4f967f6d73746f66514528cc1191025f0b5d69b3\",\"lessThan\":\"7c65699a3a311198a07659a614fe64d45924839e\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/hid/hid-sony.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.10\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.10\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.51\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.5\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"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\",\"attackVector\":\"ADJACENT_NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":2.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/3b4709e4864908bb06c48c500cc8db8d3d55d139\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7c65699a3a311198a07659a614fe64d45924839e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d044d796e2a369c6051c7e83dce88c7baa2494d4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
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…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Loading…
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.
Loading…