FireEye Mandiant已发布有关Oracle Solaris漏洞的详细信息,该漏洞已由复杂的威胁参与者在攻击中利用。
漏洞跟踪为CVE-2020-14871,已在6月发现,但仅在Oracle 2020年10月重要补丁更新中发布了此补丁。滥用该漏洞的威胁行动者(已被追踪为UNC1945)至少已积极瞄准Solaris系统两年了。
零日漏洞是在可插入身份验证模块(PAM)库中发现的,该库可在Solaris应用程序中启用用户身份验证,同时为管理员提供配置身份验证参数的选项。
Mandiant解释说,CVE-2020-14871是基于堆栈的缓冲区溢出,驻留在PAM的parse_user_name函数中,并在将长度大于PAM_MAX_RESP_SIZE(512字节)的用户名传递给该函数时触发。该漏洞使未经身份验证的攻击者可以破坏Oracle Solaris系统。
“该漏洞可能已经存在数十年了,一个可能的原因是,只有在应用程序尚未将用户名传递给PAM之前将其限制为较小的长度时,该漏洞才可被利用。面对网络的软件并不总是限制用户名长度的一种情况出现在SSH服务器上,这就是我们发现的[EVILSUN]工具所使用的利用媒介。” Mandiant指出。
借助此错误,攻击者可以针对SSH键盘交互式身份验证,利用SSH在客户端和服务器上的PAM库之间中继提示和响应。它支持两因素和其他身份验证形式。
“通过操纵SSH客户端设置来强制键盘交互式身份验证提示输入用户名,而不是通过常规方式发送用户名,攻击者还可以将无限制的输入传递给PAM parse_user_name函数,” Mandiant的安全研究人员解释说。
研究人员提出了一种概念验证漏洞,旨在触发该错误并使SSH服务器崩溃。在易受攻击的服务器上,SSH客户端会传递“身份验证失败”消息,而无漏洞的客户端会在接收到过长的用户名时反复提示输入用户名。
Madiant说,易受攻击的操作系统包括Solaris 9的某些发行版,Solaris 10,Solaris 11.0和Illumos的所有发行版(OpenIndiana 2020.04)。Oracle已发布了针对Solaris 10和11的补丁程序,但不再发布针对Solaris 9的补丁程序,不再支持该补丁程序。
在未修补的Solaris 11.1和更高版本的系统上,parse_user_name函数仍然易受攻击,但是对PAM库的某些更改导致用户名在传递给易受攻击的函数之前被截断,从而阻止了通过SSH的利用。
Madiant解释说:“如果parse_user_name函数在另一个上下文中可以访问,则该漏洞可能变得可利用。”
对于Solaris 9系统以及打补丁不方便的Solaris 10或11服务器,可以通过添加行ChallengeResponseAuthentication no和KbdInteractiveAuthentication no并重新启动SSH服务器来修改/ etc / ssh / sshd_config文件,并将其重新启动。
但是,这不能消除漏洞,并且如果攻击者设法以任何方式设法达到parse_user_name函数,则仍然有可能被利用。因此,建议采取的措施是安装2020年10月重要补丁更新中包含的修补程序。