CVE-2020-8597|pppd远程代码执行漏洞

admin 2022年6月2日07:46:23安全漏洞评论4 views1178字阅读3分55秒阅读模式

2020年2月3日,pppd发布了更新补丁,修复了一个漏洞:CVE-2020-8597。深信服安全研究团队依据漏洞重要性和影响力进行筛选,作出漏洞通告。





漏洞名称:pppd远程代码执行漏洞CVE-2020-8597

威胁等级:高危

影响范围:ppp 2.4.2-2.4.8

漏洞类型:代码执行

利用难度:简单






漏洞分析


1 PPP组件介绍

PPP是用于通过拨号调制解调器、DSL连接和许多其他类型的点对点链接建立互联网链接的协议。pppd软件还可以使用多个身份验证协议对网络连接的双方进行身份验证。


2漏洞分析

  由于点对点协议守护程序(pppd)中可扩展身份验证协议(EAP)数据包处理过程中存在一个缓冲区溢出漏洞,导致攻击者可利用该漏洞在目标主机上面执行任意代码。
   该漏洞存在于eap报文解析代码eap.c中的eap_request函数和eap_response函数:
static void eap_request(esp, inp, id, len)
static void eap_response(esp, inp, id, len)
  这两个函数参数inp的第一个字节表示报文类型,如果类型为EAPT_MD5CHAP,则会检查传入数据的长度,此处代码的逻辑旨在确保嵌入数据的长度小于整个数据包的长度,此处的判断存在一处逻辑错误,这是导致代码出现漏洞的主要原因。在验证之后,在没验证rhostname合法性的前提条件下,会将rhostname这个变量的值复制到本地缓冲区中而不进行任何边界检查,这是该漏洞的第一处逻辑错误。

CVE-2020-8597|pppd远程代码执行漏洞

 另一个逻辑错误存在于eap_input函数中,该函数不检查在链路控制协议(LCP)阶段是否协商了EAP。这允许未经身份验证的用户向pppd服务发送EAP数据包,即使ppp由于缺乏对EAP协议的支持或由于LCP阶段中商定的秘钥不匹配而导致身份验证失败,eap_input函数仍然会处理EAP数据包并触发缓冲区溢出。
pppd通常以root权限允许运行,攻击者可以利用该漏洞在目标主机以root权限执行任意代码。


影响范围


目前受影响的ppp版本:

2.4.2-2.4.8



解决方案

检测方式

使用如下命令检测当前pppd版本:

pppd --version

若检测当前版本在受影响范围内,则存在上述安全风险。


1修复建议

官方已发布该漏洞的修复补丁。

补丁链接:
https://github.com/paulusmack/ppp/commit/8d7970b8f3db727fe798b65f3377fe6787575426


时间轴


2020/2/3



官方发布漏洞修复补丁。

2020/3/6



深信服千里目安全实验室发布漏洞分析文章。


点击阅读原文,及时关注深信服智安全Wiki平台查询漏洞的信息(需登录)~

CVE-2020-8597|pppd远程代码执行漏洞



原文始发于微信公众号(深信服千里目安全实验室):CVE-2020-8597|pppd远程代码执行漏洞

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日07:46:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  CVE-2020-8597|pppd远程代码执行漏洞 http://cn-sec.com/archives/784994.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: