Supermicro基板管理控制器(BMC)出现重大层级漏洞CVE-2024-36435,这项漏洞起初由Nvidia安全团队通报,该公司于7月发布公告及新版固件应对。针对此事,9月底安全企业Binarly披露相关细节。
此漏洞引起研究人员高度关注的原因,在于攻击者可在未经身份验证的情况下,轻易地借由发出请求触发弱点,引起内存堆栈溢出,最终有机会执行任意程序代码。Binarly认为,这是今年度最严重的BMC漏洞。
针对这项漏洞,根据Supermicro在公告其中的说明,发生的原因在于固件的GetValue功能函数并未检查输入的值,而有机会引发内存缓冲区溢出,影响BMC的网页服务器组件。部分的X11、X12、H12、B12、X13、H13,以及搭载CMM6模块的B13主板曝险。MITRE评估其CVSS风险评分达到9.8。
Binarly针对这项漏洞进一步分析,他们提到该漏洞存在于BMC的网络组件,假如攻击者能够访问BMC网页界面,就能利用漏洞,而且,过程中无需通过身份验证,也不需要用户互动。
一旦攻击者发出POST请求到/cgi/login.cgi,就会交由login.cgi程序进行处理,此程序的主函数cgiGetPostVariable便会尝试取得用户提供的帐密数据,但该功能函数只检查收到的HTTP访问请求类型是POST或DELETE,以及body的内容不是空值,然后调用GetValue功能函数进行后续处理、解码,但过程里并未对输入内容首席执行官度限制,从而导致输入数据的实际大小,有可能与内存分配的缓冲区大小不符的情况。
研究人员指出,虽然Supermicro导入了名为NX的缓解措施,但攻击者可滥用libc的小工具ROP猜测所需资讯,并指出根据他们的测试,攻击者只要发出100个请求,就有机会达到程序代码执行的目的,他们也公布了概念性验证(PoC)程序代码。
此外,若是搭配存在R12SPD-R主板的漏洞BRLY-2024-023,攻击者有机会在取得root权限后,持续在受害服务器活动。另一方面,研究人员疑似在2年前Supermicro发布的固件看到类似的修补手法,这代表当时已有人发现相关弱点,但该公司可能后续未彻底清查与预防其他产品出现此类漏洞,因此,他们认为,这也凸显软件供应链安全实际执行的困难。