# CVE-2026-90144: dpll: fix NULL deref in dpll_device_ops() during teardown race

CVE-2026-90144 is fixed in linux on 1 platform, first by DEBIAN-CVE-2026-90144, released September 23, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-90144
- Priority: Routine
- CVSS: n/a
- EPSS: 0.0021
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Sep 17, 2026
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-90144

## Description

In the Linux kernel, the following vulnerability has been resolved:  dpll: fix NULL deref in dpll_device_ops() during teardown race  When the last owner of a dpll device unregisters while a foreign driver still holds a pin on it via dpll_pin_on_pin_register(), the dpll object stays alive with an empty registration list. A pin notification queued before the unregister (e.g. ice reacting to zl3073x_i2c removal) then walks pin->dpll_refs into dpll_device_ops(), which trips the WARN_ON and dereferences the missing registration. dpll_lock cannot help because the notification work was queued before the unregistering driver took the lock.  Treat the empty registration list as a legitimate transient state. Make dpll_priv() and dpll_device_ops() return NULL in that case and make every pin netlink path that resolves a device from a pin skip such dplls. dpll_cmd_pin_get_one() picks a ref with a live registration and returns -ENODEV when there is none, the pin dumpit skips such a pin instead of aborting the dump, dpll_msg_add_pin_dplls() and the frequency, esync, reference sync and phase adjust set paths skip dead refs, and dpll_pin_parent_device_set() validates the parent with dpll_device_get_by_id(). dpll_pin_register() is the last caller that dereferenced the device ops without a check, so move its frequency monitor validation under dpll_lock and tolerate a missing registration there as well.  The empty registration list is equivalent to a cleared DPLL_REGISTERED mark, both transitions happen under dpll_lock in dpll_device_register() and dpll_device_unregister(). A pin notification for a pin whose dplls are all gone is now dropped with -ENODEV instead of crashing, all callers in the core ignore that return value.   WARNING: drivers/dpll/dpll_core.c:1092 at dpll_device_ops+0x24/0x40,  CPU#83: kworker/u576:3/23471  Modules linked in: ... ice ... zl3073x_i2c(-) ... zl3073x ...  Workqueue: ice_dpll_wq ice_dpll_pin_notify_work [ice]  RIP: 0010:dpll_device_ops+0x24/0x40  Call Trace:   <TASK>   dpll_cmd_pin_get_one+0x336/0x520   dpll_pin_event_send+0x82/0x140   dpll_pin_on_pin_unregister+0xbb/0x160   ice_dpll_pin_notify_work+0x1bc/0x1f0 [ice]   process_one_work+0x19e/0x370   worker_thread+0x1a6/0x310   kthread+0xe4/0x120   ret_from_fork+0x1a1/0x270   ret_from_fork_asm+0x1a/0x30   </TASK>  ---[ end trace 0000000000000000 ]---  BUG: kernel NULL pointer dereference, address: 0000000000000010  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 13.5 (trixie) | 6.12.115-2 | [DEBIAN-CVE-2026-90144](https://patchblox.com/security/data/fix/linux/debian-cve-2026-90144.md) | Sep 23, 2026 |
| Linux | linux Debian 14 | 7.2.6-1 | [DEBIAN-CVE-2026-90144](https://patchblox.com/security/data/fix/linux/debian-cve-2026-90144.md) | Sep 23, 2026 |

---

Data as of 2026-11-08T06:59:42Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
