PHP内存未初始化导致RCE漏洞复现CVE-2022-31625

漏洞描述

该漏洞源于在 PHP 源码中存在数组内存未初始化会导致远程代码执行的安全问题,攻击者可利用该漏洞在未授权情况下,构造恶意数据执行攻击,最终可获取服务器最高权限。
 


 

漏洞影响版本

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.ini`,启用 `pgsql` 扩展:

extension=pgsql

postgres 数据库安装:

sudo apt install postgresql postgresql-contrib
sudo /etc/init.d/postgresql start

postgres 配置密码并允许网络访问。重启服务:

sudo /etc/init.d/postgresql restart
sudo /etc/init.d/postgresql status

图片[1]-PHP内存未初始化导致RCE漏洞复现CVE-2022-31625-孤勇者社区

利用 POC ( `test.php` )触发漏洞,可以看到 `efree` 释放了一个错误地址导致进程崩溃:

php.exe -f test.php

图片[2]-PHP内存未初始化导致RCE漏洞复现CVE-2022-31625-孤勇者社区

 


 

解决方案

1.如何检测组件系统版本

1.1 php 命令检测

php 安装目录下输入以下命令即可(php 配置了系统变量的可在任意目录下执行此操作)

php -v

php --version

图片[3]-PHP内存未初始化导致RCE漏洞复现CVE-2022-31625-孤勇者社区

1.2 phpinfo 页面检测

网站根目录创建 phpinfo.php 文件,内容如下:

<?php phpinfo(); ?>

创建完毕后访问该页面,即可查看当前版本。

图片[4]-PHP内存未初始化导致RCE漏洞复现CVE-2022-31625-孤勇者社区
 

2.官方修复建议

当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:

Windows系统:
https://windows.php.net/download

Linux系统:
https://www.php.net/downloads.php
 

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 共2条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像张的0
    • 头像拟王0