怀化二手车网站,织梦网站评论后"提示验证码错误请点击验证码图片更新验证码,公司网站建设工作方案,免费的企业黄页网站永久免费最近在开放原子开源基金会网站上#xff0c;看到一些开源项目#xff0c;之前分析出华为的鸿蒙操作系统代码#xff0c;没有发现有价值的安全漏洞。现在#xff0c;下载上面的Onps开源网络协议栈#xff0c;既然是通讯所使用的软件#xff0c;其质量应该值得信任呢#…最近在开放原子开源基金会网站上看到一些开源项目之前分析出华为的鸿蒙操作系统代码没有发现有价值的安全漏洞。现在下载上面的Onps开源网络协议栈既然是通讯所使用的软件其质量应该值得信任呢下载源代码分析看看
Opns开源网络协议栈是完全自研、百分百原创的tcp/ip协议栈。代码主要是C语言和C语言总共115个文件34490行。可执行代码行25473行空行4334行代码注释率16.10%有两块代码具有重复块。
经过检测发现里面多处存在数组越界问题这些数组越界会导致缓冲区溢出有可能会被恶意攻击者所利用。下面我拿出其中一处问题进行简单分析。
这个数组越界的触发点在pppd.cpp文件的1603行第(1603)行数组[l_staIPCPNegoHandler]下标[i]的值可能是[10]超出了数组[l_staIPCPNegoHandler]的定义范围。 那我们分析这个缺陷产生的源在哪里首先查看l_staIPCPNegoHandler数组是哪里定义的是否有长度限制。经过分析找到在当前文件的302行定义该数组该数组长度是一个宏 IPCPCODE_NUM向上看296行定义了该宏的值为5 所以l_staIPCPNegoHandler数组声明时长度是5。
而在1603行和1604行都使用了该数组数组下标是取的for循环中变量ii在是for语句中由初值0递增递增的边界为CPCODE_NUM该宏是在88行声明的。
则i的最大值为10所以导致超过l_staIPCPNegoHandler数组的最大下标4导致数组越界产生缓冲区溢出。如果该数组中的数据可以注入则会导致难以预料的问题。 因为该软件为通讯协议栈代码中的这类缺陷会带给软件不可预料的风险。 希望国内的开源软件注重软件质量。
结束