CVE-2020-8597: PPPD 远程代码执行漏洞通告

 

0x01 漏洞背景

2020年03月06日,360CERT监测发现,国外安全研究员Ilja Van Sprundel(IOActive)发现 PPPD 程序中存在一枚缓冲区溢出漏洞。

该漏洞 CVSS 评分 9.8,影响软件版本跨度长达17年。攻击者可以通过特制的流量包,远程攻击开放 PPPD 服务的服务器。因为 PPPD 通常以root(unix最高权限)运行,攻击成功可完全取得服务器控制权限。

 

0x02 风险等级

360CERT对该漏洞进行评定

评定方式 等级
威胁等级 严重
影响面 广泛

Centos yum 包管理器中有如下软件依赖 ppp 服务

  • NetworkManager-l2tp
  • NetworkManager-ppp
  • NetworkManager-pptp
  • modem-manager-gui-cm-pppd
  • openfortivpn
  • pptp
  • pptpdrp-pppoe
  • trinity-kppp
  • wvdial
  • xl2tpd

360CERT建议广大用户及时更新 ppp 软件包版本。做好资产 自查/自检/预防 工作,以免遭受攻击。

 

0x03 补丁分析

./pppd.h:816:#define BCOPY(s, d, l)  memcpy(d, s, l)

pppd/eap.c:

由于之前已经验证vallen > len的条件是否成立,所以在判断vallen >= len+sizeof(rhostname)时肯定为false,进入else语句,此时如果len -vallen > sizeof(rhostname)就会在复制时造成rhostname数组溢出,所以补丁修复了判断条件。

 

0x04 影响版本

2.4.2 <= pppd <= 2.4.8

 

0x05 修复建议

ppp 软件尚未针对该漏洞发布新的 Release 版本

升级 ppp 至 8d7970b8f3db727fe798b65f3377fe6787575426 (git commit id)

debian 8 已发布 ppp 2.4.6-3.1+deb8u1 修复该漏洞

debian 9 已发布 ppp 2.4.7-1+4+deb9u1 修复该漏洞

debian 10 已发布 ppp 2.4.7-2+4.1+deb10u1 修复该漏洞

centos 已经发布 ppp 2.4.5-34 修复该漏洞

360CERT建议及时通过系统自带包管理器进行升级(yum, apt, pacman …)

 

0x06 相关空间测绘数据

360安全大脑-Quake网络空间测绘系统通过对全网资产测绘,发现 ppp 服务在全球均有广泛使用,而境外使用尤其突出。具体分布如下图所示。

 

0x07 产品侧解决方案

360城市级网络安全监测服务

360安全大脑的QUAKE资产测绘平台通过资产测绘技术手段,对该类 漏洞/事件 进行监测,请用户联系相关产品区域负责人获取对应产品。

 

0x08 时间线

2020-02-03 NVD收录此漏洞

2020-03-05 外媒报道此漏洞

2020-03-06 360CERT发布预警

 

0x09 参考链接

  1. pppd: Fix bounds check in EAP code · pauzlusmack/ppp@8d7970b
  2. NVD – CVE-2020-8597
  3. Critical PPP Daemon Flaw Opens Most Linux Systems to Remote Hackers
  4. ppp-2.4.5-34.el7_7.x86_64.rpm CentOS 7 Download
(完)