CVE-2026-43371Linux内核中的macb驱动程序存在一处拒绝服务漏洞,主要影响使用AMD ZynqMP芯片并配置NFS根文件系统的设备。当设备从挂起状态恢复时,由于驱动程序未能正确同步硬件发送缓冲区指针与软件指针,导致已发送的数据包被卡住且关联的内存无法释放。这一缺陷会造成网络传输长时间中断,致使NFS根文件系统恢复过程显著延长,最终导致系统无法提供正常服务。
漏洞位于Linux内核网络驱动macb中。根据AMD Zynq UltraScale+技术参考手册,硬件在禁用发送时会自动重置队列指针,但macb驱动仅将软件层面的 `queue->tx_head` 和 `queue->tx_tail` 重置为0。这种不一致导致严重后果:首先,硬件队列中残留的数据包被静默丢弃,导致SKB结构体内存泄漏;其次,重置操作未加锁保护,可能与 `macb_tx_poll` 或 `macb_start_xmit` 产生竞态条件,破坏数据一致性;最关键的是,驱动误判队列为空(head==tail),导致传输逻辑卡在一个已标记为“已使用”但未被软件清理的数据包上,系统必须等待新数据包到达该位置才能打破僵局。修复方案是重新排列发送环形缓冲区,确保第一个未发送包位于起始位置,并使用锁保护指针更新。