CVE-2026-64571

wifi: p54: validate RX frame length in p54_rx_eeprom_readback()

State
Published
Severity
Not scored
Published
Aug 5, 2026
Updated
Aug 19, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

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

wifi: p54: validate RX frame length in p54_rx_eeprom_readback()

p54_rx_eeprom_readback() copies the requested EEPROM slice out of a device-supplied readback frame without checking that the skb actually holds that many bytes. Commit da1b9a55ff11 ("wifi: p54: prevent buffer-overflow in p54_rx_eeprom_readback()") closed the destination overflow by copying a fixed priv->eeprom_slice_size (and rejecting a mismatched advertised len), but the source side is still unbounded: nothing verifies the frame is long enough to supply that many bytes.

A malicious USB device can send a short frame whose advertised len matches priv->eeprom_slice_size while the payload is truncated. The equality check passes and memcpy() reads past the end of the skb, leaking adjacent heap:

BUG: KASAN: slab-out-of-bounds in p54_rx (drivers/net/wireless/intersil/p54/txrx.c:507) Read of size 1016 at addr ffff88800f077114 by task swapper/0/0 Call Trace: <IRQ> ... __asan_memcpy (mm/kasan/shadow.c:105) p54_rx (drivers/net/wireless/intersil/p54/txrx.c:507) p54u_rx_cb (drivers/net/wireless/intersil/p54/p54usb.c:163) __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1657) dummy_timer (drivers/usb/gadget/udc/dummy_hcd.c:2005) ... </IRQ>

The buggy address belongs to the object at ffff88800f0770c0 which belongs to the cache skbuff_small_head of size 704 The buggy address is located 84 bytes inside of allocated 704-byte region [ffff88800f0770c0, ffff88800f077380)

Check that the slice fits in the skb before copying.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before 7a456ffcd20bd92ad0ef46c1aaa0e39e3be1f7e7Affected
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before 88f7044f92b8326fbfab26d0d8ed297c367ebb76Affected
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before f21b7e096fe5371bf697cd410537fb434a763f5eAffected
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before 25c3b85af3fc4f8043159b14e65790fc3bbdaf48Affected
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before f46f8f9c43fd02f4dd5f716d4bda296a523c04f0Affected
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before d38f5d868a0a4770e3bcd0925e16c46acdbc9509Affected
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before 9096e1f7014174067239a63df18ae5f28301990dAffected
  • 7cb770729ba895f73253dfcd46c3fcba45d896f9 to before ebd6d37fa94bee929e0b4c9ca19fdf9b1dcf6ceaAffected
LinuxLinux
  • 2.6.28Affected
  • before 2.6.28Not affected
  • 5.10.265 through 5.10.*Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.148 through 6.6.*Not affected
  • 6.12.101 through 6.12.*Not affected
  • 6.18.42 through 6.18.*Not affected
  • 7.1.6 through 7.1.*Not affected
  • 7.2 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.