CVE-2024-41088

can: mcp251xfd: fix infinite loop when xmit fails

State
Published
Severity
Not scored
Published
Jul 29, 2024
Updated
May 11, 2026
Reserved
Jul 12, 2024

Read the record on cve.org

Description

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

can: mcp251xfd: fix infinite loop when xmit fails

When the mcp251xfd_start_xmit() function fails, the driver stops processing messages, and the interrupt routine does not return, running indefinitely even after killing the running application.

Error messages: [ 441.298819] mcp251xfd spi2.0 can0: ERROR in mcp251xfd_start_xmit: -16 [ 441.306498] mcp251xfd spi2.0 can0: Transmit Event FIFO buffer not empty. (seq=0x000017c7, tef_tail=0x000017cf, tef_head=0x000017d0, tx_head=0x000017d3). ... and repeat forever.

The issue can be triggered when multiple devices share the same SPI interface. And there is concurrent access to the bus.

The problem occurs because tx_ring->head increments even if mcp251xfd_start_xmit() fails. Consequently, the driver skips one TX package while still expecting a response in mcp251xfd_handle_tefif_one().

Resolve the issue by starting a workqueue to write the tx obj synchronously if err = -EBUSY. In case of another error, decrement tx_ring->head, remove skb from the echo stack, and drop the message.

[mkl: use more imperative wording in patch description]

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 55e5b97f003e85e66babb55f357627d52081a264 to before f926c022ebaabf7963bebf89a97201d66978a025Affected
  • 55e5b97f003e85e66babb55f357627d52081a264 to before 3e72558c1711d524e3150103739ddd06650e291bAffected
  • 55e5b97f003e85e66babb55f357627d52081a264 to before 6c6b4afa59c2fb4d1759235f866d8caed2aa4729Affected
  • 55e5b97f003e85e66babb55f357627d52081a264 to before d8fb63e46c884c898a38f061c2330f7729e75510Affected
LinuxLinux
  • 5.10Affected
  • before 5.10Not affected
  • 6.1.97 through 6.1.*Not affected
  • 6.6.37 through 6.6.*Not affected
  • 6.9.8 through 6.9.*Not affected
  • 6.10 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.