💣
`register_argc_argv`はnon-CLIなSAPI環境にどう影響するか
Laravelの脆弱性に「register_argc_argv = on
のときにクエリパラメータ経由で環境変数を操作できる」というのがあったので気になって調べた。
公式ドキュメントによれば、register_argc_argv
は
Tells PHP whether to declare the argv & argc variables (that would contain the GET information)
とのこと。
$_SERVER['argv']
のほうを見ると、
When called via the GET method, this will contain the query string.
とのことで、register_argc_argv = on
なnon-CLI環境においてはクエリストリングが引数として扱われるということらしい。
argv
を見るような処理を外部から起動できる場合、この性質を使えば任意の引数を渡すことができる。他にもさまざまなプロジェクトが影響を受けていた。
参照: CactiのPOC
Discussion