Linux包管理器snap外地提权误差清静通告

宣布时间 2019-02-15

误差编号和级别


CVE编号:CVE-2019-7304,危险级别:高危,CVSS分值:官方未评定


影响版本


snapd 2.28 至2.37版本


误差概述


snap是一个Linux系统上的包管理软件。在Ubuntu18.04后默认预装置到了系统中。2019年2月13日,Chris Moberly果真了使用snap包管理工具的服务历程snapd中提供的REST API服务因对请求客户端身份判别保存问题从而提权的误差细节。


使用该误差可以让通俗用户伪装成root用户向snapd提供的REST API发送请求。攻击者使用全心结构的装置剧本或Ubuntu SSO可以让并不具有sudo权限的通俗用户获得执行sudo的权限,从而获得提升到root用户权限的能力,抵达外地提权的效果。


误差验证


EXP:https://shenaniganslabs.io/2019/02/13/Dirty-Sock.html


snapd是snap包管理器的一个服务历程。它以root用户权限在后台运行,并允许通俗用户以UNIX套接字的方法与其举行通讯,并提供服务,其中一些特权操作需要判别用户身份(uid)才华执行。其中获取客户端信息的代码最终会使用ucrednetGet(如下)函数来获取客户端用户id,在该函数中会把字符串remoteAddr按";"支解后寻找"uid="字符串来判断目今用户的uid,通常情形下,remoteAddr大致为“ pid=5100;uid=1002;socket=/run/snapd.socket;@”这样的名堂。从代码逻辑可以看出,后面泛起的"uid="效果会笼罩前面获得的uid。攻击者使用这一点即可通过结构UNIX socket绑定地址,例如"/tmp/sock;uid=0;"。抵达伪装root用户发出请求的目的。进而通过snapd执行一些特权操作抵达提权的目的。



尊龙凯时 - 人生就是搏!


尊龙凯时 - 人生就是搏!


尊龙凯时 - 人生就是搏!


修复建议


现在误差细节已经披露,官方也在2.37.1中予以修复。


Ubuntu用户可以通过apt update && apt-get install snap ,将snap升级至最新版本予以修复。

https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-7304.html


参考链接


https://shenaniganslabs.io/2019/02/13/Dirty-Sock.html

https://initblog.com/2019/dirty-sock/