---
id: CVE-2026-46109
title: 'usb: ulpi: fix memory leak on ulpi_register() error paths'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  usb: ulpi: fix memory leak on ulpi_register() error paths

  Commit 01af542392b5 ("usb: ulpi: fix double free in
  ulpi_register_interface() error path") removed kfree(ulpi…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 2f70ba9dae13a190673cc3f9b4aad52179738f60 <
    0c2c0c6820fe96fa4be0a0499f8d3f3321b9af6c
  - >-
    Linux >= ee248e6e941e4f2e634df2bd43e5f1ef810ab6df <
    f1b855c00988a9cb41134cab7cf9faedba775dd9
  - >-
    Linux >= 272a9b26c336a295e4e209157fed809706c1b1f7 <
    7bd61ed0bf9f4f1f2673d489b3bda1555b48d054
  - >-
    Linux >= aaeae6533d77e6ed4def85baec01e2815ebbef61 <
    b0c0d44adb55c66663886cb6e30ee92cbb0f5385
  - >-
    Linux >= 8763f8317bb389aded32a32b08f6751cfff657d2 <
    be2c1d825f54277472c87019e82013ac534ddc4c
  - >-
    Linux >= 38c28fe25611099230f0965c925499bfcf46a795 <
    2a71e01b2cf9b4329ff67102c1bea7448c2a2d2d
  - >-
    Linux >= 01af542392b5d41fd659d487015a71f627accce3 <
    f30ccfc2985590b33a23a3d8bed7ca16c0af551b
  - >-
    Linux >= 01af542392b5d41fd659d487015a71f627accce3 <
    0b9fcab1b8608d429e5f239afb197de928d4de7d
  - Linux a6e5461f076c2ef63159f18e5cdbd30b50f0bc15
  - Linux >= 5.10.253 < 5.10.258
  - Linux >= 5.15.203 < 5.15.209
  - Linux >= 6.1.168 < 6.1.175
  - Linux >= 6.6.134 < 6.6.140
  - Linux >= 6.12.81 < 6.12.88
  - Linux >= 6.18.22 < 6.18.30
  - Linux >= 6.19.12 < 6.20
  - Linux 7.0
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-06T16:08:57.822611Z'
published: '2026-05-28'
updated: '2026-11-06'
sourceUpdated: '2026-11-06T16:13:38.405Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-46109'
references:
  - url: 'https://git.kernel.org/stable/c/0c2c0c6820fe96fa4be0a0499f8d3f3321b9af6c'
  - url: 'https://git.kernel.org/stable/c/f1b855c00988a9cb41134cab7cf9faedba775dd9'
  - url: 'https://git.kernel.org/stable/c/7bd61ed0bf9f4f1f2673d489b3bda1555b48d054'
  - url: 'https://git.kernel.org/stable/c/b0c0d44adb55c66663886cb6e30ee92cbb0f5385'
  - url: 'https://git.kernel.org/stable/c/be2c1d825f54277472c87019e82013ac534ddc4c'
  - url: 'https://git.kernel.org/stable/c/2a71e01b2cf9b4329ff67102c1bea7448c2a2d2d'
  - url: 'https://git.kernel.org/stable/c/f30ccfc2985590b33a23a3d8bed7ca16c0af551b'
  - url: 'https://git.kernel.org/stable/c/0b9fcab1b8608d429e5f239afb197de928d4de7d'
tags:
  - cve.org
epss: 0.00123
epssPercentile: 0.02032
ingestedAt: '2026-11-06T16:57:43.335Z'
---

## Overview

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

usb: ulpi: fix memory leak on ulpi_register() error paths

Commit 01af542392b5 ("usb: ulpi: fix double free in
ulpi_register_interface() error path") removed kfree(ulpi) from
ulpi_register_interface() to fix a double-free when device_register()
fails.

But when ulpi_of_register() or ulpi_read_id() fail before
device_register() is called, the ulpi allocation is leaked.

Add kfree(ulpi) on both error paths to properly clean up the allocation.

## Affected

- `Linux >= 2f70ba9dae13a190673cc3f9b4aad52179738f60 < 0c2c0c6820fe96fa4be0a0499f8d3f3321b9af6c`
- `Linux >= ee248e6e941e4f2e634df2bd43e5f1ef810ab6df < f1b855c00988a9cb41134cab7cf9faedba775dd9`
- `Linux >= 272a9b26c336a295e4e209157fed809706c1b1f7 < 7bd61ed0bf9f4f1f2673d489b3bda1555b48d054`
- `Linux >= aaeae6533d77e6ed4def85baec01e2815ebbef61 < b0c0d44adb55c66663886cb6e30ee92cbb0f5385`
- `Linux >= 8763f8317bb389aded32a32b08f6751cfff657d2 < be2c1d825f54277472c87019e82013ac534ddc4c`
- `Linux >= 38c28fe25611099230f0965c925499bfcf46a795 < 2a71e01b2cf9b4329ff67102c1bea7448c2a2d2d`
- `Linux >= 01af542392b5d41fd659d487015a71f627accce3 < f30ccfc2985590b33a23a3d8bed7ca16c0af551b`
- `Linux >= 01af542392b5d41fd659d487015a71f627accce3 < 0b9fcab1b8608d429e5f239afb197de928d4de7d`
- `Linux a6e5461f076c2ef63159f18e5cdbd30b50f0bc15`
- `Linux >= 5.10.253 < 5.10.258`
- `Linux >= 5.15.203 < 5.15.209`
- `Linux >= 6.1.168 < 6.1.175`
- `Linux >= 6.6.134 < 6.6.140`
- `Linux >= 6.12.81 < 6.12.88`
- `Linux >= 6.18.22 < 6.18.30`
- `Linux >= 6.19.12 < 6.20`
- `Linux 7.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
