CVE-2026-72048 in Linuxinfo

Summary

by MITRE • 08/15/2026

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

ieee802154: ca8210: fix cas_ctl leak on spi_async failure

ca8210_spi_transfer() allocates cas_ctl with kzalloc_obj(GFP_ATOMIC) and relies entirely on the SPI completion callback ca8210_spi_transfer_complete() to free it.

The spi_async() API only invokes the completion callback on successful submission. On failure it returns a negative error code without ever queuing the callback, which leaves cas_ctl and its embedded spi_message and spi_transfer orphaned. Every kfree(cas_ctl) in the driver is inside the completion callback, so there is no other reclamation path.

ca8210_spi_transfer() is called from ca8210_spi_exchange(), the interrupt handler ca8210_interrupt_handler(), and from the retry path inside the completion callback itself. The exchange and interrupt handler paths loop on -EBUSY, so under sustained SPI bus contention every retry iteration leaks a fresh cas_ctl (~600 bytes per occurrence).

Fix it by freeing cas_ctl on the spi_async() error path. While here, correct the misleading error string: the function calls spi_async(), not spi_sync().

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 08/15/2026

This vulnerability exists in the linux kernel's ieee802154 subsystem specifically within the ca8210 driver implementation that handles spi communication with the ca8210 wireless transceiver device. The flaw represents a memory leak condition that occurs when the spi_async() function fails to submit a spi transfer operation, leaving allocated kernel memory structures unreclaimed.

The technical implementation issue stems from improper resource management within the ca8210_spi_transfer() function which allocates memory for a cas_ctl structure using kzalloc_obj() with GFP_ATOMIC allocation flags. The driver design assumes that the spi_async() API will always invoke the completion callback ca8210_spi_transfer_complete() to handle cleanup operations, but this assumption fails when spi_async() returns an error code instead of queuing the callback. This creates a memory leak scenario where cas_ctl structures along with their embedded spi_message and spi_transfer objects remain allocated in kernel memory.

The operational impact of this vulnerability is significant particularly under sustained SPI bus contention conditions where multiple retries occur. Since ca8210_spi_transfer() can be invoked from multiple code paths including the main exchange function, interrupt handler, and retry loops within the completion callback itself, each failed spi_async() operation results in a memory leak of approximately 600 bytes per occurrence. This progressive memory consumption can lead to system instability, reduced performance, and potential denial of service conditions as kernel memory becomes increasingly fragmented.

The fix addresses this by implementing proper error handling that frees the cas_ctl structure when spi_async() returns an error code, ensuring all allocated resources are properly reclaimed regardless of the API's success or failure state. Additionally, the patch corrects a misleading error message that incorrectly referenced spi_sync() instead of spi_async(), which improves debugging accuracy and system maintainability. This vulnerability aligns with CWE-401 Memory Leak and represents a classic example of improper resource management in kernel space drivers. The issue impacts systems using ieee802154 wireless networking with ca8210 hardware, particularly those experiencing high SPI bus contention scenarios. According to ATT&CK framework, this represents a resource exhaustion technique that could potentially be leveraged for system stability compromise. The fix ensures proper error path handling consistent with kernel memory management best practices and maintains the expected behavior of the driver under both success and failure conditions.

Responsible

Linux

Reservation

08/09/2026

Disclosure

08/15/2026

Moderation

accepted

CPE

ready

EPSS

0.00210

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!