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/


京公网安备11010802024551号