5月16日,PHP官方收到了来自c dot fol at ambionics dot io的一份报告,报告中提出关于PHP8.1.6版本,存在远程代码执行漏洞。经PHP官方确认,于6月9日,PHP官网发布了该漏洞的修复方案。
CVE-2022-31625
CVE-2022-31626
CVE-2022-31625:PHP远程代码执行漏洞
高危
漏洞POC:公开
CVE-2022-31626:PHP远程代码执行漏洞
CVSSv3评分为9.8
在pg_query_params()中,由于数组没有被初始化,因此可以释放以前请求中的延迟值,最终可导致远程代码执行。
PHP_FUNCTION(pg_query_params)函数中,使用zval_try_get_string进行数据类型转换,如果数据类型转换错误就会调用_php_pgsql_free_params释放掉的数组前部分值i,但由于错误传递参数,传递了整个数组的大小值num_params,导致释放了整个数组,进而导致释放了之前请求的值。
该漏洞在验证时会将mysql查询到的auth_data数据复制到内存数组p,申请p内存时,只申请了验证数据的buffer部分(长度为packet->auth_data_len)。而实际的auth_data是packet->auth_data_len+MYSQLND_HEADER_SIZE,所以导致复制时将大的数据复制到的小的空间发生了溢出。
目前官方已发布修复版本,用户可升级至以下安全版本:
PHP 8.1.7PHP 8.0.20PHP 7.4.30
PHP 8.1.7
PHP 8.0.20
PHP 7.4.30
注:CVE-2022-31625影响的PHP 5.x官方已结束维护,请用户升级到上述安全版本。
参考资料
[1]164K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1N6h3N6K6i4K6u0W2M7r3S2H3i4K6u0W2L8X3g2@1i4K6u0r3j5Y4g2Y4i4K6u0W2M7r3S2H3i4K6y4r3K9h3c8Q4x3@1b7^5x3e0M7I4z5b7`.`.
[2]e34K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1N6h3N6K6i4K6u0W2M7r3S2H3i4K6u0W2L8X3g2@1i4K6u0r3j5Y4g2Y4i4K6u0W2M7r3S2H3i4K6y4r3K9h3c8Q4x3@1b7^5x3e0M7J5x3l9`.`.
目前聚铭网络脆弱性扫描系统(CSV)已经支持该漏洞的检测,用户可以到官网11cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2B7N6h3#2A6L8X3k6G2i4K6u0W2j5$3!0E0i4K6u0r3K9h3&6V1k6i4S2Q4x3X3g2H3K9s2m8Q4x3@1k6U0j5i4c8A6k6q4)9K6c8o6f1I4下载最新漏扫插件,来检测是否存在该漏洞。
---- END ----