安全通告
目前上述两个漏洞细节及PoC已在互联网公开。鉴于这些漏洞影响范围较大,建议客户尽快做好自查及防护。
本次更新内容:
新增PHP远程代码执行漏洞(CVE-2022-31626)、PHP远程代码执行漏洞(CVE-2022-31625)复现截图、修正漏洞描述、危害描述;
新增产品解决方案。
1. CVE-2022-31626 PHP 远程代码执行漏洞
|
PHP 远程代码执行漏洞 (CVE-2022-31626) |
||
公开时间 |
2022-06-09 |
更新时间 |
2022-06-10 |
CVE编号 |
CVE-2022-31626 |
其他编号 |
QVD-2022-8876 |
威胁类型 |
代码执行 |
技术类型 |
基于堆的缓冲区溢出 |
厂商 |
PHP |
产品 |
PHP |
风险等级 |
|||
奇安信CERT风险评级 |
风险等级 |
||
高危 |
蓝色(一般事件) |
||
|
|||
|
|
|
|
|
|
|
|
漏洞描述 |
在PHP的mysqlnd拓展中存在堆缓冲区溢出漏洞,利用该漏洞需要攻击者有连接php连接数据库的权限,通过建立恶意MySQL服务器,使受害主机通过mysqlnd主动连接该服务器,触发缓冲区溢出,从而在受害主机上导致拒绝服务或远程执行代码。基于php的数据库管理软件可能受该漏洞影响,如Adminer、 PHPmyAdmin 等工具。 |
||
影响版本 |
PHP 8.1.x < 8.1.7 PHP 8.0.x < 8.0.20 PHP 7.x < 7.4.30 |
||
不受影响版本 |
PHP 8.1.x >= 8.1.7 PHP 8.0.x >= 8.0.20 PHP 7.x >= 7.4.30 |
||
其他受影响组件 |
无 |
2. CVE-2022-31625 PHP 远程代码执行漏洞
|
PHP 远程代码执行漏洞 (CVE-2022-31625) |
||
公开时间 |
2022-06-06 |
更新时间 |
2022-06-10 |
CVE编号 |
CVE-2022-31625 |
其他编号 |
QVD-2022-8877 |
威胁类型 |
代码执行 |
技术类型 |
未初始化数组 |
厂商 |
PHP |
产品 |
PHP |
风险等级 |
|||
奇安信CERT风险评级 |
风险等级 |
||
高危 |
蓝色(一般事件) |
||
|
|||
|
|
|
|
|
|
|
|
漏洞描述 |
在PHP_FUNCTION中分配在堆上的的char* 数组没有被清除,如果发生转换错误,将会调用_php_pgsql_free_params()函数,由于数组没有初始化,导致可以释放之前请求的值,导致远程代码执行或拒绝服务。 |
||
影响版本 |
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 |
||
不受影响版本 |
PHP 7.4.x >= 7.4.30 PHP 8.0.x >= 8.0.20 PHP 8.1.x >= 8.1.7 |
||
其他受影响组件 |
无 |
奇安信CERT已成功复现PHP 远程代码执行漏洞(CVE-2022-31626),如下图所示,在调用 memcpy 函数向 buffer 偏移 MYSQLND_HEADER_SIZE(长度为4)处复制明文密码数据(长度为 packet->auth_data_len,此处为 5001)时,会溢出 4 个字节。这是因为如果处理的明文密码长度超过 0x1000 字节,就会为其申请该长度的缓冲区,而没有考虑 MYSQLND_HEADER_SIZE 的大小:
奇安信CERT已成功复现PHP远程代码执行漏洞(CVE-2022-31625),复现截图如下:
1. CVE-2022-31626 PHP远程代码执行漏洞
|
PHP 远程代码执行漏洞 (CVE-2022-31626) |
|||
CVE编号 |
CVE-2022-31626 |
其他编号 |
QVD-2022-8876 |
|
CVSS 3.1评级 |
高危 |
CVSS 3.1分数 |
7.5 |
|
CVSS向量 |
访问途径(AV) |
攻击复杂度(AC) |
||
网络 |
高 |
|||
所需权限(PR) |
用户交互(UI) |
|||
低权限 |
不需要 |
|||
影响范围(S) |
机密性影响(C) |
|||
不改变 |
高 |
|||
完整性影响(I) |
可用性影响(A) |
|||
高 |
高 |
|||
危害描述 |
PHP存在远程代码执行漏洞,攻击者在获取了连接数据库权限后,如Adminer、PHPmyAdmin 等工具的权限,通过建立恶意数据库服务器,主动连接至该数据库服务器,造成堆缓冲区溢出,从而导致远程代码执行。 |
2. CVE-2022-31625 PHP 远程代码执行漏洞
|
PHP 远程代码执行漏洞 (CVE-2022-31625) |
|||
CVE编号 |
CVE-2022-31625 |
其他编号 |
QVD-2022-8877 |
|
CVSS 3.1评级 |
高危 |
CVSS 3.1分数 |
7.5 |
|
CVSS向量 |
访问途径(AV) |
攻击复杂度(AC) |
||
网络 |
高 |
|||
所需权限(PR) |
用户交互(UI) |
|||
低权限 |
不需要 |
|||
影响范围(S) |
机密性影响(C) |
|||
不改变 |
高 |
|||
完整性影响(I) |
可用性影响(A) |
|||
高 |
高 |
|||
危害描述 |
在PHP_FUNCTION中分配在堆上的的char* 数组没有被清除,如果发生转换错误,将会调用_php_pgsql_free_params()函数,由于数组没有初始化,导致可以释放之前请求的值,导致远程代码执行或导致PHP进程崩溃。 |
目前官方已发布修复版本,用户可升级至以下安全版本:
PHP 8.1.7
PHP 8.0.20
PHP 7.4.30
注:CVE-2022-31625影响的PHP 5.x官方已结束维护,请用户升级到上述安全版本。
可通过php -v命令查看PHP版本:
奇安信天眼检测方案
奇安信天眼新一代安全感知系统已经能够有效检测针对该漏洞的攻击,请将规则版本升级到3.0.0611.13389或以上版本。规则ID及规则名称:
0x5e73,PHP mysqlnd远程代码执行漏洞(CVE-2022-31626);0x5e74,PHP pgsql远程代码执行漏洞(CVE-2022-31625) 。奇安信天眼流量探针规则升级方法:系统配置->设备升级->规则升级,选择“网络升级”或“本地升级”。
[1]https://bugs.php.net/bug.php?id=81719
[2]https://bugs.php.net/bug.php?id=81720
2022年6月10日,奇安信 CERT发布安全风险通告
2022年6月11日,奇安信 CERT发布安全风险通告第二次更新
原文始发于微信公众号(奇安信 CERT):PHP多个远程代码执行漏洞安全风险通告第二次更新
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论