{"id":"CVE-2026-98756","kind":"vulnerability","aliases":["CVE-2026-98756"],"related":[],"title":"Linux kernel: USB Cadence cdns3 probe crashes on NULL driver data","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nusb: cdns3: Fix NULL pointer dereference in cdns3_pci_probe\n\nThe Cadence USBSS controller is a two-function PCI device. The first\nprobed function allocates the driver data and stores it with\npci_set_drvdata(), while the second function reuses it via\npci_get_drvdata() when pci_is_enabled() reports that the first\nfunction has already been probed.\n\nWhen the second function is probed while the first one has been\nenabled but has not yet set its driver data, pci_get_drvdata()\nreturns NULL, and the subsequent wrap->devfn assignment dereferences\na NULL pointer and crashes the kernel.\nlogs:\nCall trace:\n  cdns3_pci_probe+0xa4/0x300\n  local_pci_probe+0x44/0xa8\n  pci_call_probe+0x54/0x158\n  pci_device_probe+0x84/0x100\n  really_probe+0x184/0x3d0\n  __driver_probe_device+0x80/0x178\n  driver_probe_device+0x44/0xe8\n  __driver_attach+0xec/0x1f8\n  bus_for_each_dev+0x7c/0xe0\n  driver_attach+0x28/0x38\n  bus_add_driver+0x110/0x238\n  driver_register+0x64/0x128\n  __pci_register_driver+0x50/0x60\n  cdns3_pci_driver_init+0x28/0x38\n  do_one_initcall+0x5c/0x280\n  do_initcalls+0x104/0x1d8\n  kernel_init_freeable+0x140/0x218\n  kernel_init+0x28/0x1f8\n  ret_from_fork+0x10/0x20\n\nReturn -EPROBE_DEFER in this case so that probing is retried after\nthe first function has completed its probe.","summary":"In the Linux kernel's cdns3 USB controller driver, probing the second function of a two-function PCI device can dereference a NULL pointer when the first function has been enabled but has not yet stored its driver data. The result is a kernel crash during probe.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["cadence-usbss","infrastructure","linux-kernel","pci","usb"],"not_affected_if":["driver-not-loaded","no-cdns3-hardware"],"how_to_check":"- unknown","fix":"- Install a Linux kernel release that includes the upstream commit resolving this cdns3 probe fix (version unknown from the sources).","status":"open","published_at":"2026-10-18T16:17:29+00:00","first_seen_at":"2026-10-23T21:57:16+00:00","triaged_at":"2026-10-25T05:16:50+00:00","updated_at":"2026-10-25T05:16:50+00:00","category":"infrastructure","confidence":0.5,"triage":{"at":"2026-10-25T05:16:50Z","model":"claude-haiku-5-5","output":{"fix":"- Install a Linux kernel release that includes the upstream commit resolving this cdns3 probe fix (version unknown from the sources).","reach":"local","title":"Linux kernel: USB Cadence cdns3 probe crashes on NULL driver data","impact":"low","summary":"In the Linux kernel's cdns3 USB controller driver, probing the second function of a two-function PCI device can dereference a NULL pointer when the first function has been enabled but has not yet stored its driver data. The result is a kernel crash during probe.","category":"infrastructure","nicknames":[],"who_cares":["linux-kernel","usb","pci","cadence-usbss"],"confidence":0.5,"needs_auth":"unknown","worst_case":"Kernel crashes during PCI probe of the USB controller.","analyst_note":"Check the kernel.org stable commit for the cdns3 fix to confirm fixed kernel versions and whether the crash is reachable outside boot-time probing.","how_to_check":"- unknown","needs_analyst":true,"not_affected_if":["no-cdns3-hardware","driver-not-loaded"],"who_is_affected":"Systems running a Linux kernel with the cdns3 USB driver for Cadence USBSS controllers, typically hardware with that PCI device. Systems without that controller or without the driver loaded are not affected. The sources do not say whether the crash can be triggered by anyone other than a local bus-probe race during boot.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"low"},"cost_usd":0.000649,"input_tokens":3833,"output_tokens":532,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'+0':190C,195C,200C,205C,209C,214C,219C,223C,229C,233C,238C,242C,247C,253C,258C,262C,267C,271C,276C '-2026':13A,16A '-98756':14A,17A 'add':236C 'alloc':110C 'alreadi':141C 'assign':175C 'attach':222C,232C 'bus':225C,235C 'cadenc':4A,19B,96C 'cadence-usbss':18B 'call':185C,198C 'case':283C 'cdns3':5A,32B,86C,92C,187C,249C 'complet':294C 'control':34B,98C 'crash':7A,72B,181C 'cve':12A,15A 'data':11A,66B,113C,164C 'defer':280C 'derefer':48B,90C,176C 'dev':228C 'devfn':174C 'devic':46B,105C,203C,213C,218C 'driver':10A,35B,65B,112C,163C,211C,216C,221C,231C,237C,240C,246C,251C 'drvdata':120C,130C,167C 'enabl':58B,134C,156C 'eprob':279C 'first':54B,107C,138C,152C,291C 'fix':87C 'follow':80C 'fork':275C 'freeabl':266C 'function':39B,44B,55B,103C,109C,124C,139C,147C,292C 'get':129C,166C 'infrastructur':21B 'init':252C,265C,270C 'initcal':257C,261C 'kernel':2A,24B,30B,71B,78C,183C,264C,269C 'linux':1A,23B,29B,77C 'linux-kernel':22B 'local':192C 'log':184C 'null':9A,50B,88C,169C,178C 'one':153C,256C 'pci':25B,45B,93C,104C,118C,128C,132C,165C,188C,193C,197C,202C,244C,250C 'pointer':51B,89C,179C 'probe':6A,36B,74B,94C,108C,143C,149C,189C,194C,199C,204C,208C,212C,217C,286C,296C 'realli':207C 'regist':241C,245C 'report':135C 'resolv':84C 'result':68B 'ret':273C 'retri':288C 'return':168C,278C 'reus':125C 'second':38B,123C,146C 'set':119C,161C 'store':63B,115C 'subsequ':172C 'trace':186C 'two':43B,102C 'two-funct':42B,101C 'usb':3A,26B,33B,85C 'usbss':20B,97C 'via':127C 'vulner':81C 'wrap':173C 'x10/0x20':277C 'x104/0x1d8':263C 'x110/0x238':239C 'x140/0x218':268C 'x184/0x3d0':210C 'x28/0x1f8':272C 'x28/0x38':234C,254C 'x44/0xa8':196C 'x44/0xe8':220C 'x50/0x60':248C 'x54/0x158':201C 'x5c/0x280':259C 'x64/0x128':243C 'x7c/0xe0':230C 'x80/0x178':215C 'x84/0x100':206C 'xa4/0x300':191C 'xec/0x1f8':224C 'yet':62B,160C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with the cdns3 USB driver for Cadence USBSS controllers, typically hardware with that PCI device. Systems without that controller or without the driver loaded are not affected. The sources do not say whether the crash can be triggered by anyone other than a local bus-probe race during boot.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:29+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98756","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98756","severity":null,"published_at":"2026-10-18T16:17:29+00:00","modified_at":"2026-10-21T13:21:43+00:00","first_seen_at":"2026-10-23T21:57:16+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}