1、漏洞概述
5月16日,PHP官方收到了來自c dot fol at ambionics dot io的一份報告,報告中提出關於PHP8.1.6版本,存在遠端程式碼執行漏洞。經PHP官方確認,於6月9日,PHP官網釋出了該漏洞的修復方案。
CVE-2022-31625
CVE-2022-31626
2、漏洞等級
高危
漏洞POC:公開
高危
漏洞POC:公開
CVSSv3評分為9.8
3、漏洞影響
4、漏洞分析
在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,所以導致複製時將大的資料複製到的小的空間發生了溢位。
5、修復建議
目前官方已釋出修復版本,使用者可升級至以下安全版本:
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
6、產品支援
目前聚銘網路脆弱性掃描系統(CSV)已經支援該漏洞的檢測,使用者可以到官網https://www.juminfo.com/index.php?catid=51下載最新漏掃外掛,來檢測是否存在該漏洞。
---- END ----