PPPD远程代码执行漏洞风险通告

发布时间 2020-03-06

漏洞编号和级别


CVE编号:CVE-2020-8597,危险级别:严重,CVSS分值:9.8


影响版本


pppd 2.4.2至2.4.8 版本


漏洞概述


US-CERT 发布安全公告称,PPP 守护进程 (pppd) 软件中存在一个已有17年之久的远程代码执行漏洞,影响几乎所有基于 Linux 的操作系统以及网络设备固件。


受影响的 pppd 软件是点对点协议(PPP,支持节点之间的通信和数据传输)的实现,主要用于设立互联网链接如拨号调制解调器、DSL宽带连接和虚拟专用网络的连接。


该漏洞由pppd 软件的可扩展认证协议 (EAP) 数据包解析器中存在的一个逻辑错误引发,可导致未认证攻击者在受影响系统上远程执行任意代码并完全控制系统。而攻击者要实现这一目的,需要做的不过是向易受攻击的 ppp 客户端或服务器发送格式错误的 EAP 数据包。


另外,由于 pppd 通常以高权限运行且与内核驱动程序一起运作,因此该漏洞可能使攻击者以系统或 root 权限执行恶意代码。


安全公告指出,“将所提供数据复制到内存前,验证输入大小时出现错误导致漏洞产生。由于对数据大小的验证不正确,因此可将任意数据复制到内存中并引发内存损坏问题,可能导致执行不必要的代码。该漏洞存在于 eap 解析代码逻辑中,具体存在于网络输入句柄调用的 eap.c 中的 eap_request() 和eap_response()函数中。”安全公告还指出,如果未启用 EAP 或远程对等方未使用密码协商EAP,则认为 pppd 不易受攻击的观点不正确,原因在于认证的攻击者可能仍然能够发送未经请求的 EAP 数据包触发缓冲区溢出漏洞。


漏洞验证


暂无PoC/EXP。


修复建议


ppp 软件尚未针对该漏洞发布新的 Release 版本,请升级 ppp 至 8d7970b8f3db727fe798b65f3377fe6787575426 (git commit id):https://github.com/paulusmack/ppp/commit/8d7970b8f3db727fe798b65f3377fe6787575426。

一些广泛使用的,流行的Linux发行版已经被证实受到影响,修复情况如下:



Debian:https://www.debian.org/security/2020/dsa-4632

Ubuntu:https://people.canonical.com/~ubuntu-security/cve/2020/CVE-2020-8597.html

SUSE Linux:https://www.suse.com/security/cve/CVE-2020-8597/

Fedora:https://access.redhat.com/security/cve/cve-2020-8597

NetBSD:https://cvsweb.netbsd.org/bsdweb.cgi/src/external/bsd/ppp/dist/pppd/eap.c?only_with_tag=MAIN

Red Hat Enterprise Linux:https://access.redhat.com/security/cve/cve-2020-8597

Centos:https://centos.pkgs.org/7/centos-updates-x86_64/ppp-2.4.5-34.el7_7.x86_64.rpm.html


此外,一些受到影响的应用程序和设备修复情况如下:


Cisco CallManager:https://quickview.cloudapps.cisco.com/quickview/bug/CSCvs95534/

TP-LINK 产品:https://www.tp-link.com/en/support/faq/2803/

OpenWRT Embedded OS:https://openwrt.org/advisory/2020-02-21-1

Synology(DiskStation 管理器、VisualStation、Router Manager):https://www.synology.cn/en-global/security/advisory/Synology_SA_20_02


参考链接


https://thehackernews.com/2020/03/ppp-daemon-vulnerability.html