OpenBSD多个严重认证绕过漏洞
OpenBSD是内置安全的开源操作系统。近期Qualys安全研究人员在OpenBSD中发现了多个高危安全漏洞,CVE编号为CVE-2019-19521,CVE-2019-19520,CVE-2019-19522,CVE-2019-19519。这4个漏洞分别是认证绕过和本地权限提升漏洞。
CVE-2019-19521
CVE-2019-19521是一个认证绕过漏洞。该漏洞位于OpenBSD认证框架处理用户通过smtpd, ldapd, radiusd, su, 或sshd服务登陆时提供的用户名的方式中。
远程攻击者利用该漏洞可以成功访问任意有漏洞的服务,只需要在用户名中输入"-schallenge" 或"-schallenge: passwd",然后输入任意密码,就会让OpenBSD将-翻译为命令行选项,而非用户名。
OpenBSD的认证框架会将"-schallenge"翻译为"-s challenge",这会让系统忽略challenge协议,最终自动绕过认证过程。
如果攻击者以-option的形式指定了用户名,就可以以一种意外的方式影响认证程序的行为。由于sshd或su的深层防御机制,该漏洞只可以在smtpd, ldapd, radiusd服务中被利用。但攻击者仍然可以远程利用该漏洞来确定OpenBSD系统是否受到CVE-2019-19521漏洞的影响。
本地权限提升漏洞
其他3个漏洞,CVE-2019-19520,CVE-2019-19522,CVE-2019-19519都属于本地权限提升漏洞。攻击者利用这3个漏洞可以让本地用户或者恶意软件获取auth组、root及其他权限。
CVE-2019-19520
该漏洞是由于dlopen(), xlock使用的环境提供的路径的误处理导致的,而这两个函数是OpenBSD默认安装的,允许攻击者提权到auth 组。
CVE-2019-19522
该漏洞是由于通过S/Key和YubiKey的认证机制中的不当操作导致的,S/Key和YubiKey并不在默认配置中。有auth组权限的本地攻击者可以获取root用户的所有权限。
CVE-2019-19519
该漏洞是由于su主要函数中的一个逻辑错误,攻击者利用该漏洞通过su的-L 选项可以获取除root外的其他任意用户的login类。
Qualys研究人员还发布了Poc漏洞利用代码,见 https://www.qualys.com/2019/12/04/cve-2019-19521/authentication-vulnerabilities-openbsd.txt
目前这4个漏洞都有相应的补丁,研究人员建议用户使用syspatch机制安装补丁。