一、背景介绍
6月10日,PHP 官方发布了多个远程代码执行漏洞,包含CVE-2022-31626、CVE-2022-31625。目前上述两个漏洞 PoC 及细节已在互联网上公开,该漏洞现实威胁提升,官方已经发布补丁。
1.1 漏洞描述
1.1.1 CVE-2022-31626在 PHP 的 mysqlnd 拓展中存在堆缓冲区溢出漏洞,利用该漏洞需要攻击者有连接 php 连接数据库的权限,通过建立恶意MySQL 服务器,使受害主机通过 mysqlnd 主动连接该服务器,触发缓冲区溢出,从而在受害主机上导致拒绝服务或远程执行代码。
1.1.2 CVE-2022-31625在 PHP_FUNCTION 中分配在堆上的的 char* 数组没有被清除,如果发生转换错误,将会调用_php_pgsql_free_params()函数,由于数组没有初始化,导致可以释放之前请求的值,导致远程代码执行。
1.2 漏洞编号
CVE-2022-31626、CVE-2022-31625
1.3 漏洞等级
高危
二、影响范围和修复建议
2.1 受影响版本
2.1.1 CVE-2022-31626:
PHP 8.1.x < 8.1.7
PHP 8.0.x < 8.0.20
PHP 7.x < 7.4.30
2.1.2 CVE-2022-31625:
5.3.0 <= PHP 5.x <= 5.6.40
7.0.1 <= PHP 7.x < 7.4.30
8.0.0 <= PHP 8.0.x < 8.0.20
8.1.0 <= PHP 8.1.x < 8.1.7
2.2 修复建议
目前官方已发布修复版本,用户可升级至以下安全版本:
PHP 8.1.7
PHP 8.0.20
PHP 7.4.30