CVE-2026-31759 PUBLISHED

usb: ulpi: fix double free in ulpi_register_interface() error path

Assigner: Linux
Reserved: 09.03.2026 Published: 01.05.2026 Updated: 01.05.2026

In the Linux kernel, the following vulnerability has been resolved:

usb: ulpi: fix double free in ulpi_register_interface() error path

When device_register() fails, ulpi_register() calls put_device() on ulpi->dev.

The device release callback ulpi_dev_release() drops the OF node reference and frees ulpi, but the current error path in ulpi_register_interface() then calls kfree(ulpi) again, causing a double free.

Let put_device() handle the cleanup through ulpi_dev_release() and avoid freeing ulpi again in ulpi_register_interface().

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to 2f70ba9dae13a190673cc3f9b4aad52179738f60 (excl.)
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to ee248e6e941e4f2e634df2bd43e5f1ef810ab6df (excl.)
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to 272a9b26c336a295e4e209157fed809706c1b1f7 (excl.)
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to aaeae6533d77e6ed4def85baec01e2815ebbef61 (excl.)
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to 8763f8317bb389aded32a32b08f6751cfff657d2 (excl.)
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to 38c28fe25611099230f0965c925499bfcf46a795 (excl.)
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to a6e5461f076c2ef63159f18e5cdbd30b50f0bc15 (excl.)
  • affected from 289fcff4bcdb1dcc0ce8788b7ea0f58a9e4a495f to 01af542392b5d41fd659d487015a71f627accce3 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.2 is affected
  • unaffected from 0 to 4.2 (excl.)
  • unaffected from 5.10.253 to 5.10.* (incl.)
  • unaffected from 5.15.203 to 5.15.* (incl.)
  • unaffected from 6.1.168 to 6.1.* (incl.)
  • unaffected from 6.6.134 to 6.6.* (incl.)
  • unaffected from 6.12.81 to 6.12.* (incl.)
  • unaffected from 6.18.22 to 6.18.* (incl.)
  • unaffected from 6.19.12 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References