リモートコード実行(RCE)とは?「任意のコード実行」の意味をわかりやすく
リモートコード実行(RCE、Remote Code Execution)とは、ネットワーク越しにたどり着いたシステムの上で、攻撃者が自分のコードを実行できてしまうおそれがある、という意味で使われる言葉です。日本の注意喚起では「任意のコード実行」という表現がよく使われます。IPAは、2026年10月に公表されたPHPの脆弱性について、悪用された場合、遠隔の第三者によって任意のコードが実行される可能性があるとしています。この記事は2026年10月23日時点の情報です。
要点
リモートコード実行(RCE)とは、セキュリティ上の欠陥によって、離れた場所にいる誰かがネットワーク経由でコンピュータ上のコードやコマンドを実行できてしまうおそれがあることです。JPCERT/CCは、PHP2Shellが悪用された場合、PHPの実行プロセスの権限で任意のコードを実行される可能性があるとしています。対策はサーバーの運営者が該当ソフトウェアを更新することです。
リモートコード実行とはどういう意味ですか
いちばんわかりやすいのは、注意喚起そのものの言葉です。PHPプロジェクトの2026年10月21日のアドバイザリは、修正した脆弱性を、認証なしでのリモートコード実行を許しうる2件の深刻な脆弱性だと説明しています。IPAは「遠隔の第三者によって、任意のコード実行が実行される可能性」、JPCERT/CCは「PHPの実行プロセスの権限で任意のコードを実行される可能性」と書いています。
大事なのは「リモート(遠隔)」と「認証なし」の2つです。CVSSという深刻度の評価方法を管理するFIRSTの仕様書は、ネットワーク越しに攻撃できる脆弱性はよく「リモートから悪用可能」と呼ばれ、攻撃しうる範囲はインターネット全体にまで及ぶとしています。同じ仕様書では、アカウントやログインがいらない攻撃者を、攻撃の前に認証されていない、つまり設定やファイルへのアクセスが何も必要ない状態だと説明しています。
RCEは、その欠陥で何ができてしまうかを表す言葉で、すでに何かが起きたという意味ではありません。
なぜRCEは深刻とされるのですか
攻撃者のコードが動いたあとにできることが大きいからです。CVSSでは、これを「影響」として記録します。IPAの説明では、CVSSは機密性、完全性、可用性の3つへの影響を評価し、機密性は情報が漏えいする可能性、完全性は情報が改ざんされる可能性、可用性は業務が遅延、停止する可能性にあたります。PHPプロジェクトは、PHP2Shellの2件とも、この3つへの影響をすべて「高」と評価しています。
FIRSTの仕様書は、完全性への影響が高い例として、脆弱なシステムが守っているファイルをすべて書き換えられる場合を挙げています。機密性への影響が高い例は、管理者のパスワードやウェブサーバーの秘密鍵が盗まれる場合です。
同じ評価には、攻撃を難しくする要素も記録されています。PHP2Shellの2件は、攻撃条件の複雑さが「高」、攻撃に必要な条件が「あり」とされています。FIRSTによると、前者は既存のセキュリティ対策をかいくぐる必要がある攻撃です。後者は、システムの設定や動作の状態など特定の条件に左右される攻撃で、成功するまで同じ相手に何度も試す必要がある場合がある、としています。
こうした要素をすべて含めたPHPプロジェクトの評価は、2件とも10点中9.2で、「緊急」にあたる区分です。
自分のサイトを運営している場合、RCEは何を意味しますか
サイトが影響を受けるバージョンのPHPで動いているなら、更新が急ぎだということです。PHPのアドバイザリは、リスクが最も高いのはApacheのmod_phpで、認証なしのリクエストでアプリケーションのコードが動く前に攻撃が成立する、実証済みのエクスプロイトがあるとしています。mod_phpでは、WordPressなどのサイトのソフトウェアが動き出す前に攻撃が通りうる、ということです。どのバージョンで修正されたか、何をすればよいかはPHP2Shellの解説にまとめています。
まずはPHPのバージョンを確認する方法から始めてください。PHPをサーバー会社が管理しているなら、レンタルサーバーが対応済みのとき自分がやることも参考になります。
サイトを見るだけの人にとっては
PHPのRCEは、サーバー側の欠陥です。PHPのアドバイザリが影響を受けるものとして挙げているのはPHP-FPMやApacheのmod_phpなどのサーバーのソフトウェアで、ブラウザや閲覧者の端末には触れていません。2026年10月23日時点で、米国のCISAは10月21日の注意喚起(10月23日改訂)で、公開した時点ではこれらの脆弱性が実環境で悪用に成功した例を観測していないとしています。関連する疑問は改ざんされたサイトを見ただけで感染するかと個人情報の漏洩を確認する方法で扱っています。
PHP2Shellはどうやってリモートコード実行につながるのですか
PHPのアドバイザリは、2件をRCEに至る仕組みで名付けています。1件目は「RCE via OOM corruption」(CVE-2026-109618)で、メモリ不足の処理が、リクエストの内部データが一部しか初期化されていない間にPHPを中断させうるものです。2件目は「RCE via stale global state」(CVE-2026-109619)で、リクエストが持つ内部の状態が、その裏付けとなるメモリが解放されたあとも残りうるものです。IPAはこれを、メモリ不足(OOM)のエラー処理に起因する脆弱性と、リクエスト処理に関連する脆弱性と説明しています。公式のCVEの記録は、そのあとPHPが、1件目では初期化されていない、2件目では解放済みのリクエストのメモリを読んだり、それをもとに処理を分岐させたりしうる、と補っています。
よくある質問
RCEは何の略ですか
Remote Code Execution、日本語ではリモートコード実行です。PHPプロジェクトは、PHP2Shellの2件の名前にこの略語を使っています。公式のCVEの記録でも、どちらもリモートコード実行(RCE)につながりうるとされています。
リモートコード実行は、ハッキングされたということですか
違います。RCEは欠陥によって何が可能になるかを表す言葉です。ハッキングされたというのは、誰かが実際に欠陥を使ってシステムを攻撃したということです。PHP2Shellについて、侵害されたサイトの数を示した公式の注意喚起はありません。サイトの様子がおかしいときはホームページが改ざんされたときの対処をご覧ください。
注意喚起の「認証なし」とは
攻撃者がログインしている必要も、アカウントやパスワードを持っている必要もない、という意味です。IPAのCVSSの説明でも、攻撃前に認証(ログインなど)が要るかどうかを評価する項目があり、「不要」は攻撃前にログインがいらないことを指します。
RCEはいつも「緊急」と評価されますか
そうとは限りません。点数は影響だけでなく、攻撃のしやすさや必要な条件でも変わり、評価する組織によって違うこともあります。米国の脆弱性データベースNVDは、CVE-2026-109619を「緊急」ではなく「重要」にあたる区分で評価しています。点数の比較はCVSSとはで説明しています。
RCEは脆弱性の一種ですか
はい。IPAは脆弱性を、攻撃されることで製品の本来の機能や性能を損なう原因となりうるセキュリティ上の問題箇所だとしています。RCEは、そうした脆弱性によって可能になることのひとつを表す言葉です。脆弱性という言葉そのものは脆弱性とはで説明しています。
出典
- Security advisory: Critical remote code execution vulnerabilities, update now (2026年10月21日), PHP
- PHPの脆弱性対策について(CVE-2026-109618、CVE-2026-109619:PHP2shell), IPA
- PHPにおける複数の脆弱性(CVE-2026-109618、CVE-2026-109619)に関する注意喚起, JPCERT/CC
- Critical vulnerabilities in PHP require immediate patching, CISA
- 共通脆弱性評価システムCVSS概説, IPA
- 共通脆弱性評価システムCVSS v3概説, IPA
- CVSS v4.0 Specification Document, FIRST
- RCE via OOM corruption, GHSA-w8hw-w9fx-j79w, PHP
- RCE via stale global state, GHSA-6wmf-4rv5-p3rp, PHP
- CVE-2026-109619, National Vulnerability Database, NIST
- 脆弱性関連情報の届出受付, IPA