「wp2shell」という言葉を目にして、なんとなく不安なまま、この記事にたどり着いた方が多いと思います。攻撃のやり方が公開され、管理者パスワードの読み取りまで実際にやってみせた、と報じられている脆弱性です。ここでは、これが何なのか、自分のサイトが無事かどうかをどう見極めるのか、そしてもし入られていたら何をすればいいのかを、順番に整理していきます。
そもそも wp2shell とは
wp2shell は、2026年7月中旬に公表されたWordPress本体の脆弱性で、CVE-2026-63030 と CVE-2026-60137 という2つの番号が振られています。厄介なのは、攻撃にログインもプラグインも要らないことです。脆弱なバージョンのまま公開しているだけで、外から誰でも仕掛けられる。ここがこの脆弱性を「緊急」たらしめている部分です。
攻撃者が最終的に置きたがるのは、いわゆる「Webシェル」です。これは、ブラウザからサーバーを遠隔操作するための小さな不正プログラムだと思ってください。一度これを仕込まれると、ファイルを読み書きされ、データベースを覗かれ、別のマルウェアを追加で置かれる。つまり、サイトの鍵を丸ごと渡してしまったような状態になります。実際に wp2shell では、データベース情報を抜かれたり、勝手に管理者アカウントを作られたり、というところまで報告されています。
報道で「パスワードのハッシュを読み取られた」とされている点は、あとで効いてきます。ハッシュが漏れたと仮定すると、パスワードを変えるだけでは足りず、ログイン状態を保つための秘密の鍵まで作り直さないと、盗まれたセッションが生き続けてしまうからです。この話は後半でもう一度触れます。
入られると、何が起きるのか
Webシェルを仕込まれたサイトは、たいてい見た目には何ともありません。だからこそ厄介で、被害が表に出てくる頃には、すでに手遅れになっていることが多いのです。よくあるのは、こういう形です。
まず、一度入られると裏口を常設されます。パスワードを変えても、その裏口から出入りされ続ける。次に、サイトがスパムメールの発信元や、怪しいサイトへの誘導装置として使われます。ここまで来ると、Googleに「危険なサイト」と判定され、検索結果から弾かれたり、ブラウザに警告を出されたりして、アクセスが一気に消えます。さらに深刻なのは、問い合わせフォームや会員情報、決済情報が抜かれるケース。そして自社サイトが踏み台にされれば、閲覧者や取引先にまで被害が及び、信用の問題に発展します。
感染していないか、どう見極めるか
「表示は普通だから平気だろう」は通用しません。Webシェルは、正常に動いているサイトの裏側でおとなしくしているからです。ちゃんと確認するには、次の8つの角度から機械的に点検する必要があります。これは、私たちが診断のときに実際に見ている項目でもあります。
1. Webシェル特有のコードの痕跡。eval() とデコード関数を組み合わせた書き方や、外部からの入力がそのまま実行される構造など、まっとうなプログラムなら普通は書かない形を探します。
2. 本体ファイルの改ざん。WordPress公式が配っている正規版と1ファイルずつ突き合わせて、書き換えられたもの、勝手に足されたもの、消えたものを洗い出します。
3. アップロード領域の不審なファイル。本来は画像しか置かれないはずのフォルダに、PHPファイルや二重拡張子のファイルが紛れていないか。そこにプログラムがあること自体が、もう異常です。
4. 最近書き換えられたファイル。自分は何もしていないのに、深夜などにまとめて更新されているコードがないか。
5. 見覚えのない管理者。いつの間にか管理者権限のユーザーが増えていないか。
6. データベースへの注入。自動で読み込まれる設定値の中に、不正なコードが埋め込まれていないか。
7. 予約タスクの乗っ取り。シェル本体を消しても再び感染させるために、身元不明だったり、わざと読みにくくした予約処理が仕込まれていないか。
8. 設定ファイルの改ざん。wp-config.php や .htaccess に、全ページへコードを差し込む仕掛けや、不正な転送が書き加えられていないか。
このうち特に見落とされやすいのが、6・7・8です。ここはWebシェル本体を消しても生き残る、再感染の温床になります。怪しいファイルを1つ見つけて削除し、それで安心してしまう。数日後にまた汚染される。その繰り返しの原因は、たいていこのあたりの取りこぼしです。
もし入られていたら
感染が疑われるときは、動く順番が大事です。慌てて消すと、かえって後で困ります。
最初にやるべきは、現状の保全です。いきなり削除すると、後から「どこから、いつ入られたのか」を調べられなくなります。証拠と、復旧用のバックアップを先に取ってください。そのうえで本体・プラグイン・テーマを最新化して侵入口をふさぎ、管理者のパスワードをすべてリセットします。ハッシュが漏れている前提に立つなら、ここは全員分やり直すべきです。
見落としがちなのが、その次です。wp-config.php の中にある認証キー(SALT、SECRET_KEY)を作り直してください。これをやらないと、攻撃者が盗んだログインセッションがそのまま有効で、パスワードを変えても入られ続けます。最後に、シェル本体・裏口・不正な予約タスクを、ファイルだけでなくデータベースや設定まで含めて除去し、もう一度スキャンをかけて、きれいになったことを確かめます。
本体を更新すれば、その穴からの新しい侵入は止まります。ですが、更新より前に置かれたWebシェルや、データベース・予約タスクに仕込まれた裏口は、更新しても勝手には消えてくれません。だから「更新(入口をふさぐ)」と「除去・鍵の作り直し(すでに入られた分の後始末)」は、必ず両方やる必要があるのです。片方だけでは、閉めたドアの内側に合鍵を残したままになります。
「確認したほうがいいのは分かったけれど、自分でここまで見るのは正直きつい」——そういう方のために、この記事で挙げた8つの観点を、当社が自作した専用ツールで一気に点検する感染診断を行っています。サイトを一切書き換えず(見るだけ・データも外に送りません)、Webシェルの痕跡から本体の改ざん、不正アカウント、設定の汚染まで確認し、結果をレポートでお渡しします。そのまま対処のご相談まで受けられます。島根県から、全国対応です。
ふだんから、できること
今回をきっかけに、日頃の守りも見直しておくといいと思います。本体・プラグイン・テーマはこまめに更新する。自動更新を入れておくと安心ですが、入れていても実際に適用されているかは、たまに管理画面で見てください。使っていないプラグインやテーマは、停止で放置せず削除する。停止中でもファイルは残っていて、そこが穴になり得るからです。管理者パスワードは使い回さず、二段階認証を入れる。アップロードフォルダでのPHP実行は、そもそも無効にしておく。そして、定期的なバックアップと、ときどきの感染チェックを習慣にしておく。地味ですが、これが一番効きます。
まとめ
wp2shell(CVE-2026-63030 ほか)は、認証もプラグインも要らずにサイトを乗っ取れる、かなり危険な脆弱性です。対象バージョンなら、まず 6.8.6/6.9.5/7.0.2 以上へ即更新。ただし更新はあくまで入口対策で、すでに入られていた場合の裏口は、除去と鍵の作り直しをしないと残り続けます。確認は8つの角度から、特にデータベース・予約タスク・設定ファイルまで見ること。そして、ハッシュ流出を前提に、パスワードと認証キーは作り直しておくこと。
この手の攻撃でいちばんまずいのは、「たぶん大丈夫」で放っておくことです。表示が正常でも、裏口は静かに残ります。少しでも引っかかるなら、まず今の状態を確認しておくことをおすすめします。
※本記事はWebシェル感染についての一般的な解説であり、特定の被害に対する結果を保証するものではありません。感染確認ツールによる点検は「よくある痕跡」を対象とした一次チェックであり、すべての侵害を検出できるわけではありません。バージョン番号・CVE番号は公開時点の情報です。重大な被害が疑われる場合は、専門のインシデント対応もあわせてご検討ください。
WordPressの感染診断・セキュリティ相談はこちら
感染診断を相談する →