一名来自Cure53的安全研究人员Elyas Damej周三(5/31)通过GitHub,公布了一个攸关Reportlab开源项目的漏洞概念性验证攻击程序,还详细说明该漏洞的技术细节,此一编号为CVE-2023-33733的安全漏洞虽然已于今年4月底修补, 但有鉴于Reportlab的热门程度,外界推测该漏洞很快就会遭到黑客利用。
Reportlab为一专门用来建立PDF文件的Python库,也能用来制造各种图表,它的每月下载量超过300万次,可以想见的是,CVE-2023-33733漏洞波及了各种利用Reportlab来处理PDF文件的应用与工具。

Damej说明,他们是在稽核一个网页应用时,发现该应用程序采用了Reportlab函式库,以将HTML转成PDF文件,有鉴于Reportlab过去曾经修补一个与此有关、且可导致远程程序执行的安全漏洞,促使他们兴起找出如何绕过该修补的念头。
当时Reportlab修补的方式是嵌入一个与其它Python函式隔离的沙盒,它拥有许多覆盖的内置函式,可允许安全代码的执行,并避免其访问危险函式,企图建立一个消毒的执行环境。 然而,Damej发现其中一个名为“type”的内置类别若与一个引数一起被呼叫,便会响应一个该类别的对象,但若是与3个参数一同被呼叫,却会建立一个源自其它类别的新类别,即可绕过原先的检查。
当发现可绕过修补的方式时,Damej即打造了概念性验证攻击程序,而且只需要一行的代码。
Damej提醒,各种利用Reportlab的程序及库都会受到该漏洞的影响,在将恶意HTML转成PDF时面临远程程序执行的攻击风险。