---
title: "Apache Thrift の Java ライブラリで再帰の深さが無制限（CVE-2026-120135、CVSS v4.0 8.2）: TProtocolUtil.skip() への細工データで可用性に影響、0.24.0 で修正"
url: https://n-t-p.io/worldsecurity/articles/apache-thrift-java-tprotocolutil-skip-uncontrolled-recursion-cve-2026-120135-fixed-0-24-0
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月1日
updated: 2026年11月1日
severity: 高
cve: CVE-2026-120135
---

# Apache Thrift の Java ライブラリで再帰の深さが無制限（CVE-2026-120135、CVSS v4.0 8.2）: TProtocolUtil.skip() への細工データで可用性に影響、0.24.0 で修正

> **TL;DR:** Apache Thrift の Java ライブラリ（libthrift）0.24.0 より前で、TProtocolUtil.skip() の再帰の深さが既定で無制限（CVE-2026-120135、CWE-674）。細工した深い入れ子のデータで可用性に影響するおそれがある。CVSS v4.0 は 8.2（CNA の値）、EPSS は 0.00553、KEV なし。0.24.0 で修正、悪用は未確認。

**要点**
- Apache Thrift の Java バインディング（libthrift）0.24.0 より前で、TProtocolUtil.skip() が既定では再帰の深さを制限しない（CWE-674）。深い入れ子の細工データで可用性に影響するおそれ
- CVSS v4.0 は 8.2（Apache＝CNA の値、NVD 上は Secondary）。影響は可用性のみ。EPSS は 0.00553、KEV なし、NVD は Received
- 修正版は 0.24.0。GitHub の最新リリースは 0.25.0 で、0.24.0 以降への更新が対策（推定）
- 具体的な挙動（異常終了か停止か）と再現条件は勧告に記載がなく未確認。実際の攻撃での悪用も未確認
- Thrift ポートの到達制限、依存関係（間接依存を含む）の確認は推定

NVD は 2026-10-31 に、Apache Thrift の Java バインディングの CVE-2026-120135 を登録しました。Java ライブラリ（org.apache.thrift:libthrift）の TProtocolUtil.skip() が、既定では再帰の深さを制限していません（CWE-674: 制御されない再帰）。深く入れ子にした細工データを読ませると、可用性（サービスの継続）に影響するおそれがあります。CVSS v4.0 は 8.2（HIGH）で、Apache（CNA）が付けた値です。

## 何が起きるか

- 対象は、Apache Thrift の Java バインディング 0.24.0 より前の版です（CNA の記述）。
- Thrift は、サービス間の RPC やデータの直列化に使われるライブラリです。skip() は、受け取ったデータのうち読み飛ばす項目を処理する関数で、入れ子の構造を再帰でたどります。
- 再帰の深さに上限がない場合、非常に深い入れ子のデータを送られると、スタックの枯渇などで処理が異常終了したり、止まったりするおそれがあります（推定。具体的な挙動の詳細は勧告に書かれておらず、未確認です）。
- CVSS v4.0 のベクターでは、ネットワーク越し・認証不要・ユーザー操作不要で、影響は可用性のみ「高」（機密性・完全性への影響なし）です。攻撃の前提条件は「あり」とされ、Thrift の通信を受け付ける構成であることなどが条件になると考えられます（推定）。
- 実際の攻撃での悪用は確認していません。

## 修正の状況

- 修正版は 0.24.0 です。CNA は 0.24.0 への更新を推奨しています。
- GitHub 上の最新リリースは 0.25.0（2026-09-30 公開）で、0.24.0 以降の版に更新すれば修正を含むと考えられます（推定）。
- 回避策は勧告に記載がなく、確認できていません。

## 数値と出典（2026-11-02 時点）

| 項目 | 内容 |
|---|---|
| CVE | CVE-2026-120135 |
| NVD 公開日 | 2026-10-31 |
| 影響版 | Apache Thrift Java バインディング（org.apache.thrift:libthrift）0.24.0 より前 |
| 修正版 | 0.24.0 |
| CWE | CWE-674（制御されない再帰） |
| CVSS v4.0 | 8.2 HIGH（AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N）。Apache（security@apache.org）の値で、NVD 上は Secondary |
| NVD の状態 | Received（NVD 自身の評価は未実施） |
| EPSS | 0.00553（パーセンタイル 0.46、FIRST、2026-11-01 付） |
| KEV | 掲載なし（CISA のカタログで CVE-2026-120135 を確認できず） |

## severity を high とした理由

ネットワーク越しに認証なしで可用性を損なえる点と、Apache が重大度を「important」、CVSS v4.0 を 8.2 としている点から、high としました。一方で、影響は可用性のみで機密性・完全性への影響はなく、悪用の確認もなく、EPSS は約 0.6%、KEV にも載っていません。このため critical にはしていません。

## 対応として考えられること

1. 自社のアプリケーションや依存関係に、org.apache.thrift:libthrift（Java）が含まれているかを確認します。ビルドの依存関係の一覧（SBOM、pom.xml、build.gradle など）で版を見ます。
2. 0.24.0 以降への更新を計画します。直接の依存だけでなく、他のライブラリが取り込んでいる間接的な依存も対象です（推定）。
3. 更新までの間、Thrift のポートを信頼できるネットワークに限り、不特定の相手からの接続を受けない構成にします（推定）。
4. 入力データの大きさや入れ子の深さを制限できる設定が自社の構成にあれば、あわせて確認します（推定）。
5. サービスの異常終了や、スタックの枯渇を示すエラーが繰り返し出ていないか、ログとモニタリングを見ます（推定）。

## 未確認の点

- 実際の攻撃での悪用は確認していません。
- 再帰の上限がない場合の具体的な挙動（異常終了か停止かなど）と、再現に必要な条件は、勧告に詳細がなく未確認です。
- 0.24.0 より前のどの版から影響を受けるか、Java 以外の言語バインディングが影響を受けるかは確認していません。
- NVD 自身の評価は未実施（Received）です。CVSS は CNA の値です。


## 出典
- [NVD CVE-2026-120135](https://nvd.nist.gov/vuln/detail/CVE-2026-120135) — NIST NVD
- [CVE-2026-120135 CVE レコード](https://www.cve.org/CVERecord?id=CVE-2026-120135) — CVE Program
- [oss-security: CVE-2026-120135 Apache Thrift Java TProtocolUtil.skip() does not limit the recursion depth by default](https://www.openwall.com/lists/oss-security/2026/10/31/2) — oss-security（Openwall）
- [Apache Thrift ユーザーMLの告知スレッド](https://lists.apache.org/thread/2zzkm3mfhfg79ohjo37pg1gms5nto588) — Apache Software Foundation
- [Apache Thrift リリース（GitHub）](https://github.com/apache/thrift/releases) — Apache Thrift
- [FIRST EPSS CVE-2026-120135](https://api.first.org/data/v1/epss?cve=CVE-2026-120135) — FIRST
- [CISA KEV カタログ](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) — CISA

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/apache-thrift-java-tprotocolutil-skip-uncontrolled-recursion-cve-2026-120135-fixed-0-24-0