CVE-2026-64338 in Linuxinfo

Summary

by MITRE • 07/25/2026

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

USB: misc: uss720: unregister parport on probe failure

uss720_probe() registers a parport before reading the 1284 register used to detect unsupported Belkin F5U002 adapters. If get_1284_register() fails, the error path drops the driver private data and the USB device reference, but leaves the parport device registered.

Leaving the port registered is more than a private allocation leak: parport_register_port() has already reserved a parport number and registered the parport bus device, while pp->private_data still points at the private data that the common error path is about to release.

Undo the pre-announce registration in the get_1284_register() failure branch before jumping to the common private-data cleanup path. Clear priv->pp first, matching the disconnect path and avoiding a stale pointer in the private data.

This issue was identified during our ongoing static-analysis research while reviewing kernel code.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 07/26/2026

The vulnerability resides within the Linux kernel's USB subsystem, specifically affecting the uss720 driver implementation that handles Belkin F5U002 USB-to-parallel adapter devices. This flaw represents a critical resource management error that occurs during device probe operations when the driver attempts to initialize hardware components and validate device compatibility through 1284 register detection. The issue demonstrates poor error handling practices where the driver fails to properly clean up partially initialized resources, creating persistent system artifacts that can lead to operational instability and potential security implications.

The technical root cause stems from improper resource cleanup during error conditions within the uss720_probe() function. When the get_1284_register() function fails to detect supported hardware capabilities, the driver enters an error path that correctly releases private data structures and USB device references but neglects to unregister a previously registered parport device. This creates a state where the parport subsystem maintains a reference to a device that should not exist, while the driver's private data structure has already been freed. The fundamental flaw lies in the mismatch between resource allocation and deallocation sequences, specifically the failure to reverse the parport registration that occurred before the 1284 register validation step.

The operational impact of this vulnerability extends beyond simple memory leaks to potentially compromise system stability and resource availability. When a parport device remains registered after probe failure, it occupies a reserved port number within the parport subsystem, preventing subsequent legitimate device registrations from utilizing those resources. This behavior creates a persistent denial-of-service condition where valid parallel port devices cannot be properly enumerated or accessed by the system. Additionally, the stale pointer reference in private data structures can lead to undefined behavior when other system components attempt to access freed memory locations, potentially causing kernel panics or data corruption scenarios that align with CWE-415: Double Free and CWE-825: Expired Pointer Dereference categories.

The mitigation strategy requires implementing proper error path handling that mirrors the successful initialization sequence in reverse order. Specifically, the driver must clear the parport private data reference before executing the common error cleanup path, ensuring that any pre-registered parport device is properly unregistered before releasing the underlying memory structures. This approach aligns with ATT&CK framework technique T1547.001: Registry Run Keys / Startup Folder, where proper resource management prevents unwanted persistence mechanisms from being established. The fix pattern follows established kernel development practices for error handling and resource cleanup, ensuring that all allocated resources are properly accounted for regardless of execution path taken during device initialization.

This vulnerability exemplifies the importance of maintaining consistent resource lifecycle management in kernel drivers, particularly when dealing with complex hardware interfaces that require multiple subsystem interactions. The static analysis approach used to identify this flaw demonstrates how automated code review techniques can detect subtle but critical resource management issues that may not surface during normal operational testing. The fix represents a defensive programming pattern that prevents partial initialization states from persisting and maintains system integrity even under error conditions, aligning with security best practices for kernel module development and the principle of least privilege in device driver operations.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/25/2026

Moderation

accepted

CPE

ready

EPSS

0.00220

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!