Log4j2にRCEを可能にし得る新たな脆弱性
The CyberSec Guru – August 26, 2026
Apache Log4j2における新たなリモートコード実行の脆弱性が、8月24日に開示されている。ただし、影響を受けるのは特定の構成に限られ、Log4Shell(CVE-2021-44228)ほど深刻なわけではない模様。
U-Sec(Wujie Security)が報告したとされるこの脆弱性には本記事執筆時点でまだCVE識別子が割り当てられておらず、「Issue #4255」として追跡されている。現在#4255のタイトルは「Something wrong Happen」で、ステータスは「Closed」になっているものの、当初のタイトルは「[Security] FilteredObjectInputStream allowlist bypass via java.rmi.MarshalledObject with auto-trigger during LogEvent deserialization (2.11.0-2.26.1) #4255」となっていた。
同ページのアーカイブによると、この脆弱性は、FilteredObjectInputStream(FOIS)の許可リストを「java.rmi.MarshalledObject」経由でバイパスすることを可能にするもの。log4j-apiバージョン2.11.0〜2.26.1およびlog4j-coreバージョン2.8.0〜2.26.1が影響を受けるとされる。
すでに数件のPoCエクスプロイトコードが公開されているものとみられるが、#4255はLog4ShellのようなLog4jを使用していれば広く影響を受けるRCE脆弱性ではなく、特定のアプリケーション構成・条件下でのみ成立する脆弱性だとThe CyberSec Guruは指摘。悪用を成功させるためには以下2つの条件を満たす必要があるという。
- アプリケーションが、ネットワーク経由でシリアライズされたLogEventオブジェクトを受信するサービスを実際に稼働させていること(例:ObjectInputStreamLogEventBridgeや旧式のTcpSocketServerを使用している場合など)。
- 標的アプリケーションのクラスパスに、デシリアライゼーション攻撃に利用可能なガジェットライブラリが存在すること(例:パッチが適用されていないApache Commons Collections。通常はバージョン3.2.1以前)。
したがって、Log4jをローカルファイルへのログ記録だけに使用している場合や、Javaのネイティブシリアライゼーションを使用せず、一般的なJSON/TCPによるsyslog転送に使用している場合は、この攻撃ベクターによる脆弱性の影響を直接受けるわけではないとされる。
The CyberSec Guruは、JDK 9以降を実行している環境については、java.rmi.MarshalledObjectを明示的に拒否するJVM全体のシリアライゼーションフィルターを適用することが最も確実な当面の回避策になるとコメント。一方で、最も堅牢かつ長期的な解決策は、ログ転送でのJavaネイティブシリアライゼーションの使用をやめることによってアタックサーフェスそのものを排除することだ、と指摘している。













