CVE-2026-43042Linux内核中的MPLS(多协议标签交换)模块存在一个由于并发访问导致的安全漏洞。该漏洞发生在RCU保护的代码路径(如mpls_forward和mpls_dump_routes)与标签表调整操作(resize_platform_label_table)之间。由于缺乏适当的同步机制,在并发调整平台标签表大小时,可能导致对platform_labels与platform_label的视图不一致,从而引发越界(OOB)内存访问。本地低权限攻击者可利用此漏洞造成拒绝服务或潜在的信息泄露。
该漏洞的核心原理在于Linux内核MPLS子系统中读写操作的竞态条件。读取路径使用RCU机制以优化性能,而写入路径(resize_platform_label_table)在修改标签表时使用platform_mutex互斥锁。当并发操作发生时,读取操作可能在写入操作部分完成(例如已更新size但未更新指针)的时间窗口内访问数据,导致计算出错误的数组索引并访问越界内存。尽管存在mpls_label_ok函数进行边界检查,但在竞态窗口下该检查可能失效。修复方案引入了seqcount序列锁,确保读者在读取时能获取到一致的数据快照,防止在表调整期间的非法内存访问。