{"api_version":"1","generated_at":"2026-09-16T16:13:30+00:00","cve":"CVE-2026-90041","urls":{"html":"https://cve.report/CVE-2026-90041","api":"https://cve.report/api/cve/CVE-2026-90041.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-90041","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-90041"},"summary":{"title":"HID: sony: clean up device list on probe failure","description":"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.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-16 11:17:17","updated_at":"2026-09-16 15:18:26"},"problem_types":[],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"8.8","severity":"HIGH","vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","data":{"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"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"8.8","severity":"HIGH","vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","data":{"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"}}],"references":[{"url":"https://git.kernel.org/stable/c/7c65699a3a311198a07659a614fe64d45924839e","name":"https://git.kernel.org/stable/c/7c65699a3a311198a07659a614fe64d45924839e","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3b4709e4864908bb06c48c500cc8db8d3d55d139","name":"https://git.kernel.org/stable/c/3b4709e4864908bb06c48c500cc8db8d3d55d139","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/d044d796e2a369c6051c7e83dce88c7baa2494d4","name":"https://git.kernel.org/stable/c/d044d796e2a369c6051c7e83dce88c7baa2494d4","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-90041","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-90041","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4f967f6d73746f66514528cc1191025f0b5d69b3 3b4709e4864908bb06c48c500cc8db8d3d55d139 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4f967f6d73746f66514528cc1191025f0b5d69b3 d044d796e2a369c6051c7e83dce88c7baa2494d4 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4f967f6d73746f66514528cc1191025f0b5d69b3 7c65699a3a311198a07659a614fe64d45924839e git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.10","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.10 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.51 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.5 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"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's 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"},"nvd":{"publishedDate":"2026-09-16 11:17:17","lastModifiedDate":"2026-09-16 15:18:26","problem_types":[],"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}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"90041","Ordinal":"1","Title":"HID: sony: clean up device list on probe failure","CVE":"CVE-2026-90041","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"90041","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"HID: sony: clean up device list on probe failure"}]}}}