当前位置: 首页 > news >正文

开放原子开源基金会网站上的开源项目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,导致数组越界,产生缓冲区溢出。如果该数组中的数据可以注入,则会导致难以预料的问题。

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

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

(结束)

http://www.lryc.cn/news/450380.html

相关文章:

  • 未来前端发展方向:深度探索与技术前瞻
  • 前端工程规范-2:JS代码规范(Prettier + ESLint)
  • Tomcat为什么要打破双亲委派?怎么保证安全
  • 【C++篇】启航——初识C++(下篇)
  • Elasticsearch快速入门
  • uniapp微信小程序遮罩层u-popup禁止底层穿透
  • 【RocketMQ】秒杀设计与实现
  • 高级架构师面试题
  • phpstudy简易使用
  • ubuntu server 常用配置
  • [Day 82] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 微信小程序map组件自定义气泡真机不显示
  • 数据结构之链表(2),双向链表
  • STL之list篇(下)(从底层分析实现list容器,逐步剥开list的外表)
  • 视频去水印的3个技巧,教你无痕去水印
  • LSTM模型改进实现多步预测未来30天销售额
  • 八LAMP搭建
  • Windows——解除Windows系统中文件名和目录路径的最大长度限制
  • 黑名单与ip禁令是同一个东西吗
  • FuTalk设计周刊-Vol.075
  • PE节表中是否存在misc.VirtualSize 比SizeofRawData还要大的情况
  • 栈及笔试题
  • 【工程测试技术】第3章 测试装置的基本特性,静态特性和动态特性,一阶二阶系统的特性,负载效应,抗干扰性
  • ireport 5.1 中文生辟字显示不出来,生成PDF报字体找不到
  • 给Ubuntu虚拟机设置静态IP地址(固定IP)
  • spring boot文件上传之x-file-storage
  • Object.values() 、 Object.keys()
  • 脸爱云管理系统存在任意文件上传漏洞
  • elasticsearch_exporter启动报错 failed to fetch and decode node stats
  • Git 使用方法