HN 日本語サマリー

← 一覧へ戻る
セキュリティ

このPHP脆弱性には簡単なエクスプロイトが存在しません

There isn't an easy exploit for this PHP vulnerability (eliastaylor.com)

564 pointsby zkldi341 コメント

要約

最近話題になっているPHPの脆弱性について、その深刻さは認めつつも、Log4Shellなどの過去の有名な脆弱性と比較して、容易に悪用できるものではないと論じています。多くの公開されている「PoC」エクスプロイトは、そのままでは動作しないか、ローカルファイルインクルージョン(LFI)などの追加の脆弱性を必要とするため、この脆弱性単体では深刻な問題とは言えないと指摘しています。

全文翻訳

このPHP脆弱性には簡単なエクスプロイトが存在しません

分かっています、分かっています。あなたが聞いているのはこれだけです。そして、数字の4も。

誤解しないでください、明らかにバグは存在し、それは本当に重要です。しかし、これは簡単にはエクスプロイトできません。間違いなくLog4Shell/Heartbleed/RoRYamlなどとは比べ物になりません。

正当化しろ、この狂人!

このPHP脆弱性は、それほどエクスプロイト可能ではないと思います。5年前なら人々はこれを理解したでしょうが、今や人々はLLMに騙されて、実際には存在しないエクスプロイトを持っていると思い込まされています。

現在のGitHubを見ると、この脆弱性の「PoC」エクスプロイトが文字通り何千件もあります。しかし、それらに共通する1つのことは、それらがバニラPHPインスタンスでは動作しないということです。

どうぞ、脆弱だと思われるPHPサーバーをDockerで立ち上げて、自分でPoCを実行してみてください。LLMにやらせないでください。いいえ。スクリプトを、自分で実行してください。エクスプロイトは機能しません。

エクスプロイトはどこだ、デュード?

多くの人々は、LLMが差分を読むだけで即座にエクスプロイトチェーンを構築できるようになり、たとえこれが他のエクスプロイトよりもエクスプロイトが難しいとしても、LLMが競争の場を平準化すると想定していたと思います。さて。動作するエクスプロイトはありません。では、どうしますか?

私がインターネット上の「我々は非常にまずい」CVE10について考えるとき、以下の脆弱性を思い浮かべます。

  • RoR YAMLデコーディング(悪いYAMLを含むPOSTボディを送信する)
  • Log4shell(ユーザーエージェントを${jdni:ldap:}に設定する)
  • Shellshock(env x='() { :;}; echo vulnerable' bash -c "echo this is a test"をコピーして編集する)
  • Heartbleed(Content-Length 10000000を要求する)

これらの脆弱性がニュースになった途端、ボットネットが被害をもたらしていました。そして、それはLLMが登場する前でした!人々はボットネットを書かなければなりませんでした。自分の手で!

この脆弱性が公開されてから10時間しか経っていませんが、ソフトウェア世界の半分がこれを見ており、10万人が「超知能」を駆使していることは間違いありません。それにもかかわらず、動作するエクスプロイトはありません。出回っているものは偽物か、ラボでしか機能しないものです。なぜなら…

クソッタレなLLM、マジで。

スクリプトキディ(そしてスクリプト大人、彼らも脳をオフにしている)は今、こう考えています。まあ、彼らはUAFチェーンを理解していませんが、このClaudeというやつは何でも知っていて、完全にエクスプロイトを作れると思っています。

滑稽なことに、その結果、LLMは弟にコントローラーのプラグを抜いた状態のものを渡します。画面にはエクスプロイトと表示され…いくつかの決定的なトランスクリプトが表示されます…しかし、テストしているサーバーは、深刻な脆弱性を持つように変更されています。ズルだ!!

  • https://github.com/david-alvarez-rosa/php-rce
  • https://github.com/eness/php2shell-CVE-2026-109618-CVE-2026-109619-PoC
  • https://github.com/ikow/php2shell-poc

ほとんどの「PoC」に共通する非常に面白い点は、それらが「LFI」、つまりローカルファイルインクルージョンに依存していることです。PHP以外の言葉で言えば、彼らのエクスプロイトチェーンは、サーバーが効果的にeval(read(filename_provided_by_user))を実行することを必要とします。

PHPアプリが何らかの意味でダメになっていることは珍しくありませんが、サーバーが既存の脆弱性を持っていることを必要とする(例えば/etc/passwordをcatできる)というのは、狂った前提条件です。もしこれが必要なら、これは深刻なバグではありません。

最も奇妙なのは、これほど多くの人々が独立してこの異常に奇妙な判断の誤りを犯していることです。それは、彼らが独立してこの決定を下していないからです。Claude/Etc.がすべての判断を下しました。それゆえ、論理的エラーの奇妙な分布が生じています。

Claude/GPTに設計上の決定を任せる人がどれほど多く、AIが現在世界で主要な意思決定者であるかについて、重要なことを言うべきことがあります。問題解決の方法が極端に過剰表現されている「意思決定シェリングポイント」という奇妙なケースがあります。なぜなら、それがClaudeが標準で実行することだからです。

「ほとんどのウェブサイトは今や同じように見える」というケースではこれは迷惑ですが、LLMはすべてのドメインを同時に破壊する力を持っているため、これも「ほとんどの決定は奇妙に同じように見える」のです。特にこのケースでは、AIがサーバーに脆弱性を挿入して…サーバーがあなたの「あらゆるPHPインスタンスをエクスプロイトする」攻撃に対して脆弱であることを証明するために!

では、なぜ誰もがそんなに怖がっていたのか?

なぜなら:

  1. PHPコアチームのメンバーが、これが壊滅的であると述べた(「パッチドロップ後15分でエクスプロイトが出現し始めるだろう」)
  2. 我々は皆、心の底ではPHPが安全でないことを知っている
  3. エクスプロイト動画にアニメの女の子が出ていた
  4. 我々は皆、LLMがインターネットを100トンのチェーホフの金床のように覆い隠していることを知っており、コードが安全でないことを知っている

そして、私たちは以前にもこのような経験をしましたが、LLM時代ではありませんでした。幸いなことに、今回はそうではないようです。これは簡単にはエクスプロイトするには難しすぎます。これはLog4Jの瞬間ではありません。