Java向けJSON処理ライブラリ Fastjsonの脆弱性 CVE-2026-16723がサイバー攻撃へ悪用

セキュリティニュース

投稿日時: 更新日時:

Java向けJSON処理ライブラリ Fastjsonの脆弱性 CVE-2026-16723がサイバー攻撃へ悪用

Java向けJSON処理ライブラリFastjsonに、認証なしで任意コードを実行される可能性がある脆弱性CVE-2026-16723が公表されました。CVSS v3.1の基本値は9.0で、深刻度はCriticalです。影響を受けるのはFastjson 1.2.68から1.2.83までを使用し、Spring Bootの実行可能fat JARとして動作するアプリケーションです。通常は危険な型の生成を抑えるAutoTypeが無効でも、標準設定のまま攻撃が成立する可能性があります。ImpervaとThreatBookは実環境での悪用を観測しており、Fastjson 1.x向けの修正版も提供されていません。影響するアプリケーションはSafeModeを直ちに有効化し、恒久対応としてfastjson2へ移行する必要があります。

Fastjsonの脆弱性CVE-2026-16723と実悪用の概要サマリー

  • CVE-2026-16723はFastjsonの型解決処理に存在する認証不要のリモートコード実行脆弱性です
  • CVSS v3.1の基本値は9.0で、深刻度はCriticalです
  • Alibabaの公式アドバイザリではFastjson 1.2.68から1.2.83までが影響対象です
  • Spring Boot 2.x、3.x、4.xの実行可能fat JARと、JDK 8、11、17、21で攻撃成立が確認されています
  • AutoTypeを明示的に有効化していない標準設定でも悪用される可能性があります
  • 外部のガジェットクラスをアプリケーションへ追加していなくても攻撃経路が成立します
  • Fastjson 1.x向けの修正版は提供されておらず、1.x系列はすでに保守されていません
  • SafeModeの有効化またはnoneautotypeビルドへの切り替えが緊急緩和策です
  • 恒久対応はfastjson2への移行で、fastjson2の全バージョンは本脆弱性の影響を受けません
  • Impervaは米国を中心に金融、医療、コンピューティング、小売などへの攻撃を観測しています
  • ThreatBookも実環境での悪用を検知しており、公開PoCも存在します
  • 被害組織名、攻撃成功後のマルウェア、情報漏洩、侵害台数は公表されていません
項目 内容
CVE番号 CVE-2026-16723
対象製品 Fastjson
脆弱性の種別 不適切な入力検証と安全でないデシリアライゼーションによるリモートコード実行
CWE CWE-20、CWE-502
CVSS v3.1基本値 9.0 Critical
CVSSベクター CVSS:3.1/AV/AC/PR/UI/S/C/I/A
影響を受けるバージョン Fastjson 1.2.68~1.2.83
主な影響条件 SafeModeが無効で、Spring Bootの実行可能fat JARとして稼働
検証済みSpring Boot 2.x、3.x、4.x
検証済みJDK 8、11、17、21
影響を受けない製品 fastjson2の全バージョン
影響を受けない構成 SafeMode有効、noneautotypeビルド、脆弱な条件を満たさない非fat JAR構成
修正版 Fastjson 1.x向け修正版なし
恒久対応 fastjson2へ移行
暫定対応 SafeModeの有効化、noneautotypeビルドへの切り替え、WAF・IPSによる監視と遮断
攻撃条件 ネットワーク経由、認証不要、利用者操作不要
想定される影響 Javaアプリケーションの権限で任意コード実行、情報窃取、Webシェル設置、横移動、サーバー侵害
公開PoC あり
実際の悪用状況 ImpervaとThreatBookが実環境での攻撃を観測
公式アドバイザリ公開日 2026年7月21日
CVE公開日 2026年7月23日
発見者 FearsOff CybersecurityのKirill Firsov氏

Fastjsonの標準設定で認証不要のRCE

AlibabaのFastjson開発チームは2026年7月21日、Fastjson 1.2.68から1.2.83までにリモートコード実行脆弱性が存在すると公表しました。

Fastjsonは、JavaオブジェクトとJSONデータを相互変換するためのライブラリです。Web API、業務アプリケーション、マイクロサービスなどで、受信したJSONの解析やJavaオブジェクトへの変換に利用されています。

CVE-2026-16723を悪用すると、攻撃者は細工したJSONを脆弱なアプリケーションへ送信し、アプリケーションを実行しているJavaプロセスの権限で任意コードを実行できる可能性があります。

認証済みアカウントや利用者の操作は必要ありません。外部からJSONを受け付けるAPIやWebアプリケーションが脆弱な条件を満たしていれば、攻撃対象になる可能性があります。

CVSS v3.1では攻撃元区分がネットワーク、必要な権限はなし、利用者操作も不要です。攻撃条件の複雑さは高と評価されていますが、機密性、完全性、可用性への影響はいずれも高く、スコープ変更も伴うため、基本値は9.0となっています。

影響を受けるバージョンと構成

Alibabaの公式アドバイザリでは、影響を受けるバージョンをFastjson 1.2.68から1.2.83までとしています。1.2.83はFastjson 1.x系列の最終リリースです。

バージョンが該当するだけでなく、Spring Bootの実行可能fat JARとして配布・起動されていることが主な攻撃成立条件です。

開発チームは次の環境でエンドツーエンドの攻撃成立を確認しています。

  • Spring Boot 2.x、3.x、4.x
  • JDK 8、11、17、21
  • AutoTypeが無効
  • SafeModeが無効
  • Spring Bootの実行可能fat JAR

AutoType無効、SafeMode無効はFastjson 1.xの標準的な設定です。

Fastjson 1.2.67以前について、ThreatBookは1.2.83以下という広い表現を使用しています。一方、CVE記録とAlibabaの公式アドバイザリは1.2.68から1.2.83を影響範囲としているため、本記事では公式アドバイザリの範囲を基準とします。

1.2.67以前も保守されていない旧版であり、今回のCVE対象外という理由だけで継続利用することは推奨できません。古い1.xを確認した場合も、fastjson2への移行を検討する必要があります。

実行可能fat JARが攻撃条件になる理由

Spring Bootの実行可能fat JARは、アプリケーション本体、依存ライブラリ、組み込みWebサーバーなどを一つのJARファイルへまとめる配布方式です。

運用者はJavaの実行コマンドからJARファイルを起動でき、Tomcatなどを別途構築しなくてもWebアプリケーションを実行できます。Spring Bootで広く使われている配布方式です。

CVE-2026-16723では、Fastjsonの型解決処理と、Spring Boot fat JAR内のクラス・リソースを読み込む仕組みが組み合わさることで攻撃経路が成立します。

Alibabaは、通常のWARとしてTomcatやJettyへ配置する構成など、脆弱なfat JARの条件を満たさない環境は影響を受けないと説明しています。

ただし、Spring BootアプリケーションでFastjsonを直接指定していない場合でも、別のフレームワークや社内ライブラリが依存関係として取り込んでいる可能性があります。ソースコードの検索だけではなく、ビルド後の成果物と推移的依存関係を確認する必要があります。

AutoTypeを無効にしても防げない

Fastjsonには、JSON内の型情報を基に、指定されたJavaクラスを生成するAutoType機能があります。

過去のFastjson脆弱性では、危険なクラスをAutoType経由で生成させる攻撃が問題となりました。このため、AutoTypeを無効にすることが主要な対策とされてきました。

CVE-2026-16723では、AutoTypeが無効でも別の型解決経路へ到達できます。

攻撃者が制御する型情報を処理する際、Fastjson 1.xはクラス名を基にリソースを探索します。Spring Bootのfat JAR環境では、この探索処理を悪用し、通常のAutoType制限を回避できる可能性があります。

Fastjson 1.xが型解決中に@JSONTypeアノテーションの存在を信頼の根拠として扱う動作も、制限回避に関係しています。

一般的なJavaデシリアライゼーション攻撃では、アプリケーションのクラスパスに悪用可能なガジェットクラスが必要になる場合があります。今回の脆弱性では、外部のガジェットライブラリがなくてもコード実行経路が成立します。

このため、AutoTypeを有効にしていない、危険なライブラリを追加していないという確認だけでは安全と判断できません。

Javaのデシリアライゼーションに起因する別のRCE事例については、Apache Causewayの脆弱性CVE-2025-64408でも取り上げています。

型を指定したparseObjectも緩和策にならない

Fastjson開発チームは、JSONを変換する際に特定のJavaクラスを指定していても、本脆弱性への十分な緩和策にはならないと説明しています。

例えば、受信したJSONを特定のDTOへ変換している場合でも、そのDTOにObject型やMap型のフィールドが含まれていれば、攻撃者がその内部へ不正な型情報を入れられる可能性があります。

入力先のクラスを固定しているため安全だと判断せず、実際に使用しているFastjsonのバージョン、SafeMode、配布方式を確認する必要があります。

入力可能なJSONフィールドをアプリケーション側で制限する対策は有効ですが、ライブラリ内部の脆弱な処理を完全に無効化するものではありません。

米国を中心に実際の攻撃を観測

Impervaは2026年7月24日、CVE-2026-16723を悪用する攻撃を観測していると公表しました。

攻撃対象は金融、医療、コンピューティング、小売、一般企業など複数の業種に及んでいます。地理的には大半が米国の組織で、シンガポールとカナダでも少数の攻撃が確認されています。

Impervaによると、攻撃通信の多くはブラウザーを装っていました。RubyやGoで作成されたツールによる通信も、合計で約30%を占めています。

ThreatBookも、同社の脅威検知基盤で実環境における悪用を捕捉したと説明しています。同社は2026年7月20日に脆弱性をカタログへ登録し、検知ルールを追加しました。

ただし、両社は被害を受けた組織名、攻撃成功件数、侵害後に設置されたマルウェア、情報漏洩の有無を公表していません。

観測されたリクエストがすべてコード実行に成功したとは限りません。攻撃試行をWAFなどで遮断したケースや、対象が脆弱な構成ではなかったケースも含まれる可能性があります。

一方、公開PoCがあり、認証も利用者操作も不要であるため、インターネット公開された該当アプリケーションは緊急対応の対象です。

Fastjson 1.x向けの修正版は提供されない

Fastjson 1.x系列はすでに保守が終了しており、CVE-2026-16723を修正した新しい1.xバージョンは提供されていません。

通常の脆弱性対応では、ベンダーが修正版を公開し、利用者が更新します。今回のケースでは、1.xのバージョン番号を上げるだけで恒久的に修正する方法がありません。

AlibabaはFastjson 1.xの利用者に対し、緊急対応としてSafeModeを有効化するか、脆弱なAutoType関連コードをコンパイル時に除去したnoneautotypeビルドへ切り替えるよう案内しています。

恒久対応はfastjson2への移行です。

fastjson2では、利用者が制御できるクラス名による同等のリソース探索を行わず、@JSONTypeを型解決の信頼根拠として使用しません。型の許可も許可リストを優先する設計へ変更されています。

fastjson2の全バージョンは、CVE-2026-16723の影響を受けません。

SafeModeを直ちに有効化

Fastjson 1.xをすぐに置き換えられない場合は、SafeModeを緊急で有効にします。

JVMの起動オプションを利用する場合は、次の設定を追加します。

-Dfastjson.parser.safeMode=true

アプリケーションコードでは、次の方法でグローバル設定を変更できます。

ParserConfig.getGlobalInstance().setSafeMode(true);

fastjson.propertiesを使用している環境では、次の設定を追加します。

fastjson.parser.safeMode=true

SafeModeは、脆弱な処理へ到達する前にJSON内の@typeを拒否します。

適用後は、起動ログやテストだけでなく、実際のJVMプロセスへ設定が反映されているかを確認してください。コンテナ、複数インスタンス、オートスケーリング環境では、一部のノードだけ設定が欠ける可能性があります。

SafeModeを有効化すると、AutoTypeに依存する既存機能へ影響が出る場合があります。緊急適用と並行して、シリアライズ・デシリアライズ、API連携、メッセージキュー、キャッシュ、バッチ処理を確認します。

noneautotypeビルドも緊急緩和策

Alibabaは、Fastjson 1.2.83のnoneautotypeビルドへの切り替えも緊急対応として案内しています。

Mavenでは、次の成果物が例示されています。

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.83_noneautotype</version>
</dependency>

noneautotypeビルドは、脆弱なAutoType関連コードをコンパイル時に除去しています。

SafeModeと同様に、既存アプリケーションが多態的な型変換へ依存している場合は互換性への影響を確認する必要があります。

これはFastjson 1.xを長期利用するための新しい保守版ではありません。保守終了系列から離脱するまでの暫定措置として扱います。

fastjson2への移行時は互換性を検証

fastjson2はパッケージ名、API、型変換、日付処理、アノテーション、デフォルト動作などがFastjson 1.xと異なる場合があります。

依存ライブラリのバージョンを機械的に変更するだけでは、ビルドエラーや実行時の互換性問題が発生する可能性があります。

移行時は次の項目を確認します。

  • JSONのシリアライズ結果
  • APIレスポンスのフィールド名と順序
  • 日付・時刻・タイムゾーン
  • 数値の精度
  • 列挙型
  • null値の扱い
  • 独自SerializerとDeserializer
  • @JSONFieldなどのアノテーション
  • Object型やMap型を含むDTO
  • Redisやメッセージキューに保存済みのJSON
  • 他システムとのデータ交換
  • Spring MVCやSpring WebFluxとの統合

Fastjsonが推移的依存関係として含まれている場合、直接fastjson2へ置き換えると、呼び出し元のライブラリがFastjson 1.xのAPIを前提として動作しなくなる可能性があります。

依存元の製品やフレームワークに更新版がないか確認し、必要であればベンダーへ問い合わせます。

Spring Framework自体の脆弱性対応については、Spring Frameworkの脆弱性CVE-2024-38816でも、依存関係と実際の利用条件を確認する重要性を解説しています。

WAFによる遮断はパッチの代替にならない

ImpervaとThreatBookは、WAFやIPSで不審なJSON、@typeフィールド、JARリソースを参照するパターンを検知・遮断する方法を案内しています。

WAFは、アプリケーションへ修正を適用するまでの攻撃機会を減らす暫定策として有効です。

ただし、公開された文字列だけに一致するルールは、JSONの表現変更、エンコード、入れ子構造、別のリクエスト経路によって回避される可能性があります。

正規のアプリケーションが@typeを使用している場合は誤検知も考えられます。遮断ルールを導入する際は、検知ログと業務影響を確認してください。

WAFを導入していても、SafeModeの有効化とfastjson2への移行は必要です。

攻撃の痕跡を確認

脆弱なFastjsonをインターネットへ公開していた組織は、設定変更だけでなく、すでに侵害されていないかを調査してください。

WebアクセスログとWAFログでは、不審な型情報を含むJSON、通常とは異なるPOSTリクエスト、外部リソース参照を示す文字列、連続するエラー応答を確認します。

JavaアプリケーションとOSでは、次の事象を調べます。

  • Javaプロセスからの不審な外向きHTTP・HTTPS通信
  • Javaプロセスから起動されたシェルやコマンド
  • Webアプリケーション配下へ追加された不明なファイル
  • Webシェル、バックドア、暗号資産採掘プログラム
  • 一時ディレクトリへ保存されたJARや実行ファイル
  • cron、systemd、コンテナ起動設定への不審な追加
  • アプリケーションのサービスアカウントによる通常と異なる操作
  • クラウドメタデータや認証情報へのアクセス
  • 不審な管理者アカウント、APIキー、アクセストークン
  • ログの削除や不自然な欠落

コンテナ環境では、侵害されたコンテナを再起動するだけでなく、イメージ、ボリューム、シークレット、サービスアカウント、クラスターロールを確認します。

RCE脆弱性への侵害確認については、Apache Tomcatのリモートコード実行脆弱性に関する記事も参考になります。

情報システム部門への示唆

情報システム部門と開発部門は、Fastjsonを直接利用しているアプリケーションだけでなく、推移的依存関係として組み込まれたシステムを含めて棚卸ししてください。

MavenやGradleの依存関係、SBOM、SCA製品、コンテナイメージ、展開済みJARを照合します。ソースリポジトリに記載がなくても、古いベンダー製品や社内共通ライブラリへ含まれている可能性があります。

確認時はバージョン番号だけでなく、次の条件を記録します。

  • Fastjsonのバージョン
  • Spring Bootのバージョン
  • JDKのバージョン
  • 実行可能fat JARか
  • 外部からJSONを受け付けるエンドポイントがあるか
  • SafeModeが有効か
  • noneautotypeビルドか
  • インターネットへ公開されているか
  • WAFやAPIゲートウェイを経由しているか
  • JavaプロセスのOS・クラウド権限
  • 外向き通信の制限
  • ログとEDRの監視状況

外部公開され、Fastjson 1.2.68~1.2.83、SafeMode無効、Spring Boot fat JARという条件がそろうシステムは最優先で対応します。

インターネットへ直接公開していない場合も、社内端末や別の公開システムが侵害された後に攻撃される可能性があります。内部システムだから対応を保留するのではなく、恒久移行の計画へ含めてください。

修正版が存在しない保守終了ライブラリでは、脆弱性管理票へ登録して更新日を待つ運用が機能しません。緊急緩和、移行、侵害調査を同時に進める必要があります。

今後の再発防止として、SBOMとSCAをCI/CDへ組み込み、保守終了したライブラリが新規ビルドへ混入した場合に警告またはビルド停止するルールを設けてください。

出典