CVE-2026-31405Linux内核的dvb-net模块中存在一个严重的越界访问漏洞。在处理ULE(Unidirectional Lightweight Encapsulation)扩展头时,handle_one_ule_extension函数未能正确验证索引范围。由于用于索引函数指针表的htype变量取值范围为0-255,而数组大小仅为255(有效索引0-254),当htype为255时会发生越界读取。攻击者可以通过发送特制的网络数据包触发此漏洞,导致内核崩溃或潜在的任意代码执行。该漏洞无需认证且无需用户交互即可通过网络被利用,危害极大。
漏洞位于Linux内核的drivers/media/dvb-core/dvb_net.c文件中的handle_one_ule_extension函数。该函数维护了两个函数指针表:ule_mandatory_ext_handlers和ule_optional_ext_handlers,这两个表均被声明为包含255个元素。索引值htype由网络数据包中的ule_sndu_type字段通过`ule_sndu_type & 0x00FF`计算得出,因此其取值范围理论上为0-255。代码在访问数组前未对htype进行边界检查。当htype等于255时,数组访问越界,读取到表外的内存数据。由于该数据随后被当作函数指针调用,攻击者若能控制该内存区域的值,即可劫持内核执行流,实现本地提权或远程代码执行。