脆弱性の発生するメカニズム 脆弱性の原因はlibraries/mult_submits.inc.php の以下の部分です。 case 'replace_prefix_tbl': $current = $selected[$i]; $newtablename = preg_replace("/^" . $from_prefix . "/", $to_prefix, $current); 上記再現手順の場合、preg_replace関数の呼び出しは以下の引数となります。 preg_replace("/^/e\0/", "phpinfo();", "test"); preg_replace関数(PHP5.4.6以前)の第1引数はバイナリセーフでないため、NULLバイト以降が無視され、結局以下の引数で呼び出されたのと同じになります。 preg_replace("/^/e", "phpinfo();
![phpMyAdmin3.5.8以前に任意のスクリプト実行を許す脆弱性(CVE-2013-3238)](https://cdn-ak-scissors.b.st-hatena.com/image/square/552f775aee6a2fb7adda218970a73073c5b29658/height=288;version=1;width=512/https%3A%2F%2F2.bp.blogspot.com%2F-_epjMgf2cVc%2FUZxoZAIFcNI%2FAAAAAAAAGKc%2F9-N4Zu8Sro8%2Fw1200-h630-p-k-no-nu%2Fphpmyadmin001.png)