漏洞概述 该漏洞涉及Linux内核网络栈中的IP转发处理逻辑。具体而言,当数据包在同一个接口上进行路由查找时,如果启用了IPv4或IPv6转发选项,并且选择的出口接口与入口接口不同,数据包会被错误地标记为已转发。这可能导致数据包被错误地路由,而不是作为转发流量处理。 影响范围 受影响组件:Linux内核的网络栈,特别是 、 、 、 和 文件。 影响场景:当网络配置中启用了IPv4或IPv6转发,并且存在跨接口的数据包转发时,可能会发生此问题。 修复方案 1. 修改 和 : - 在 和 函数中,仅在启用了IPv4或IPv6转发选项,并且选择的出口接口与入口接口不同时,才设置 标志。 - 具体修改如下: 2. 修改 : - 在 函数中,根据是否启用了IPv4或IPv6转发选项,以及入口接口和出口接口是否相同,来设置 标志。 - 具体修改如下: 3. 修改 和 : - 在 和 函数中,根据是否启用了IPv4或IPv6转发选项,以及入口接口和出口接口是否相同,来设置 标志。 - 具体修改如下: POC代码 页面中未提供具体的POC代码或利用代码。 总结 该漏洞通过修改网络栈中的相关函数,确保只有在启用了转发选项且出口接口与入口接口不同时,才将数据包标记为已转发,从而避免了数据包被错误路由的问题。