近日,奇安信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。