开放原子开源基金会网站上的开源项目Opns存在缓冲区溢出缺陷

最近在开放原子开源基金会网站上,看到一些开源项目,之前分析出华为的鸿蒙操作系统代码,没有发现有价值的安全漏洞。现在,下载上面的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循环中变量i,i在是for语句中由初值0递增,递增的边界为CPCODE_NUM,该宏是在88行声明的。

则i的最大值为10,所以导致超过l_staIPCPNegoHandler数组的最大下标4,导致数组越界,产生缓冲区溢出。如果该数组中的数据可以注入,则会导致难以预料的问题。

因为该软件为通讯协议栈,代码中的这类缺陷会带给软件不可预料的风险。

希望国内的开源软件注重软件质量。

(结束)

相关推荐
猫头虎-人工智能2 天前
openEuler远程批量部署实战 SSH VNC IPMI全流程解析
运维·git·开源·ssh·github·开放原子·开源软件
CaracalTiger2 天前
在openEuler操作系统中多样性算力支持与性能压力测试操作
linux·运维·git·开源·开放原子·压力测试·开源软件
开源头条16 天前
2025开放原子开发者大会开源鸿蒙技术分论坛:AI赋能筑智基,生态共荣启新篇
开源·开放原子·harmonyos
ShiMetaPi1 个月前
基于M4-R1开发板的OpenHarmony开发实战丨创建第一个应用工程
嵌入式硬件·开放原子·鸿蒙系统·openharmony·开源鸿蒙·北向开发
DevSecOps选型指南4 个月前
技术分享 | 悬镜亮相于“2025开放原子开源生态大会软件物料清单(SBOM)”分论坛
开源·开放原子·软件供应链安全工具·投毒情报中心·投毒情报
开源头条5 个月前
2025开放原子开源生态大会 | openKylin的技术跃迁和全球协作
开源·开放原子
openKylin6 个月前
“开放原子园区行”太原站:openKylin以开源之力,赋能产业发展
开源·开放原子
:mnong7 个月前
开放原子大赛石油软件赛道参赛经验分享
c++·qt·hdfs·开放原子·图形渲染·webgl·opengl
waicsdn_haha9 个月前
Kubeflow 2025 全栈式机器学习平台部署指南(云原生+量子混合计算)
python·神经网络·云原生·开放原子·apache·量子计算·kubeflow
深圳深光标准技术9 个月前
开放鸿蒙认证,OpenHarmony兼容性认证介绍
华为·开放原子·harmonyos·鸿蒙系统·开源鸿蒙