近日,奇安信CERT监测到 PHP 官方发布了多个远程代码执行漏洞,包含CVE-2022-31626、CVE-2022-31625。PHP 远程代码执行漏洞(CVE-2022-31626),由于PHP未检查复制的数据长度和缓冲区长度,导致堆溢出,可能导致远程代码执行,基于php的数据库管理软件可能受此漏洞影响,如Adminer、PHPmyAdmin 等工具。PHP 远程代码执行漏洞(CVE-2022-31625),由于PHP存在未初始化数组,释放该数组时可能导致远程代码执行。

目前上述两个漏洞细节及PoC已在互联网公开。鉴于这些漏洞影响范围较大,建议客户尽快做好自查及防护。

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风险评级

风险等级

高危

蓝色(一般事件)

现时威胁状态

POC状态

EXP状态

在野利用状态

技术细节状态

已公开

未发现

未发现

已公开

漏洞描述

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风险评级

风险等级

高危

蓝色(一般事件)

现时威胁状态

POC状态

EXP状态

在野利用状态

技术细节状态

已发现

未发现

未发现

已公开

漏洞描述

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

其他受影响组件

威胁评估

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 8.1.7

PHP 8.0.20

PHP 7.4.30

注:CVE-2022-31625影响的PHP 5.x官方已结束维护,请用户升级到上述安全版本。

参考资料

[1]https://bugs.php.net/bug.php?id=81719

[2]https://bugs.php.net/bug.php?id=81720

声明:本文来自奇安信 CERT,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。