文章总结: 本文分析了CVE-2025-46836漏洞,存在于Linuxnet-tools组件的lib/interface.c文件中。漏洞成因是由于if_readlist_proc函数未对输入长度进行校验,直接通过指针操作将大缓冲区数据复制到仅16字节的name数组中,导致缓冲区溢出,建议及时更新补丁。 综合评分: 80 文章分类: 代码审计,漏洞分析,漏洞预警
【代码审计】CVE-2025-46836
原创
韭菜 韭菜
隐雾安全
2026年1月18日 09:01 四川
漏洞通告
net-tools 是一组程序,构成了 Linux 操作系统 NET-3 网络发行版的基础组件。
查看漏洞补丁
知道了删除了lib/interface.c下的while…
漏洞分析
关于这里能修改的参数只有一个指针*name
逆向追踪调用函数if_readlist_proc
知道了name的长度char name[IFNAMSIZ];IFNAMSIZ的长度是16
回到
函数,重点关注
是否可能超过16
到这里大概知道如果*p 的长度大于16那么就会造成溢出
漏洞点:
*name++ = *p++;
从237行开始逆向关注*p,看看是否进行了什么处理
整体看来并没有对*p做什么处理,两个判断218行和220行
if (isspace(*p))判断*p是否为空
if (*p == ‘:’) {判断*p是否是:
大概知道*name 读取的是 *p 空格之后:之前的数据
接下来关注*p是哪里来的
*p=buf而buf是通过文件读取的fgets(buf, sizeof buf, fh),buf读取的是fh读取的是buf大小的数据
buf[512]buf大小是512很明显超过了16,那么fh文件超过了16那么就存在溢出
JOIN US~
代码审计其实并不神秘,核心就在于对 “数据流向” 的把控。
扫码添加微信,备注【审计】,获取更多审计资料。
往期内容:
课程推荐:
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:隐雾安全 韭菜 韭菜《【代码审计】CVE-2025-46836》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论