F5 已发布针对 Nginx 严重漏洞的修复程序,该漏洞允许远程未经身份验证的攻击者通过精心构造的 HTTP 请求触发工作进程中的堆缓冲区溢出。该漏洞已于 7 月 15 日在Nginx 1.30.4(稳定版)和 1.31.3(主线版)以及 NGINX Plus 37.0.3.1 中CVE-2026-42533修复;使用早期版本的用户应升级。
触发此操作可能会导致工作进程崩溃或重启,从而造成拒绝服务;F5 表示,如果 ASLR 被禁用或可以绕过,它还可能允许远程代码执行。
溢出问题存在于 nginx 的脚本引擎中,也就是在请求时根据指令组装字符串的代码。它仅在特定配置下才会出现:一种基于正则表达式的配置,map其输出变量在从先前的正则表达式匹配中捕获结果后,被字符串表达式引用。
在这种模式下,引擎的两遍求值过程会分解。第一遍计算结果需要多少字节,并分配一个缓冲区来容纳这些字节;第二遍将这些字节写入缓冲区。两遍计算都读取同一个共享的捕获状态,在两遍计算之间对映射的正则表达式进行求值会覆盖该状态。
因此,测量阶段会根据原始捕获数据(例如位置匹配的引用)来调整缓冲区大小$1,而写入阶段则会使用攻击者指定的缓冲区大小来填充缓冲区。缓冲区太小,溢出数据的长度和内容都直接来自请求。
发布于 广东
