---
title: "pickle の安全確認ツール fickling に迂回 2 件（CVE-2026-16760・CVE-2026-118938）: 「安全」と判定されたまま任意コードが動く"
url: https://n-t-p.io/worldsecurity/articles/fickling-pickle-safety-checker-bypass-likely-safe-2026-16760-118938
lang: ja
kind: 速報
category: 脆弱性・CVE
author: World Security 編集部
published: 2026年11月7日
updated: 2026年11月7日
severity: 高
cve: CVE-2026-16760, CVE-2026-118938
---

# pickle の安全確認ツール fickling に迂回 2 件（CVE-2026-16760・CVE-2026-118938）: 「安全」と判定されたまま任意コードが動く

> **TL;DR:** Python の pickle 検査ツール fickling（0.1.12 まで）に、危険な pickle を LIKELY_SAFE と誤判定する迂回が 2 件。CVE-2026-16760（標準ライブラリ由来の名前を無条件に信用）と CVE-2026-118938（ドット付き名の見落とし）。どちらも GitHub 評価 High、CVSS v3.1 8.8、CWE-502。判定を根拠に fickling.load() で読み込むと任意コードが動く。修正版のリリースは未確認。KEV 掲載なし、EPSS は公開直後のため未算出。

**要点**
- fickling 0.1.12 までで、危険な pickle を LIKELY_SAFE と誤判定する迂回が 2 件（CVE-2026-16760・CVE-2026-118938、High、CVSS v3.1 8.8、CWE-502）
- 判定を根拠に fickling.load() で読み込む運用だと、細工された pickle で任意コードの実行（一部はファイル書き込み）に至る
- PyPI の最新版は 0.1.12（2026 年 6 月 26 日）で、修正版は未確認。勧告が挙げるコミットは件名・変更内容が勧告の説明と合わず、対策かは未確認（推定）
- 対応は、fickling の判定だけで出所不明の pickle を読み込まないこと。別形式への移行や隔離環境での読み込みを検討
- NVD は Received で評価未確認。KEV 掲載なし、EPSS は公開直後のため未算出

Python の pickle ファイルを検査するツール fickling（0.1.12 まで）で、危険な pickle を「ほぼ安全（LIKELY_SAFE）」と誤判定してしまう迂回が 2 件公開されました。CVE-2026-16760 と CVE-2026-118938 で、GitHub Advisory の深刻度はどちらも High、CVSS v3.1 は 8.8（CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H）、CWE-502（信頼できないデータの逆シリアル化）です。CISA の KEV には載っていません。EPSS は 2 件とも FIRST に値がなく、公開直後のため未算出です。

## 何が起きるか

- fickling は、`fickling.load()` の中で安全確認（`check_safety()`）をしてから pickle を読み込みます。この確認が誤って「安全」を返すと、細工された pickle がそのまま読み込まれ、利用者のプロセスの権限でコードが動きます。
- CVE-2026-16760: 標準ライブラリのモジュールから取り込まれた名前を、中身を調べずに「安全な取り込み」として扱ってしまいます。そのため、標準ライブラリ内の危険な関数を呼ぶ pickle が検出されません。勧告が示す例は、任意コードの実行（`dataclasses._create_fn`、`mailcap.findmatch`）と、任意のパスへのファイル書き込み（`readline` の履歴ファイル書き出し）です。前者の 2 つは Python 3.13 でモジュールや関数が削除されているため、3.12 までが対象です。
- CVE-2026-118938: 名前にドットを含む指定（例 `Values.read_file`）を、先頭の部分しか記録せず通常の取り込みとして表示するため、末尾の属性が呼び出しとして調べられません。勧告は `optparse.Values.read_file`（ファイルの内容を `exec` で実行する）を例に、任意コードの実行ができるとしています。
- 2 件は原因が別で、別々に直せる問題だと勧告は説明しています。

## 影響を受ける版と修正

- 勧告は「0.1.12 まで」としています。0.1.12 は PyPI の最新版で、2026 年 6 月 26 日（UTC）の公開です（10/31 時点で、これより新しい版は PyPI にありません）。
- 修正版のリリースはまだ確認できません。勧告は、10/30 時点でベンダーの master ブランチに一部の対策（上の 3 モジュールを禁止リストへ追加）が入った、リリースは保留中、と書いています。
- 勧告が挙げるコミット d011709 を GitHub で確認したところ、件名は「Analyze PyTorch ZIP records with PyTorch reader」（10/30）で、変更も cli.py・loader.py・pytorch.py とテストでした。禁止リストを変える内容は確認できず、勧告の説明と合いません。参照先のコミット番号がずれている可能性があります（推定）。
- 勧告は、CVE-2026-118938 の迂回は master の同じ時点でも残っているとしています。つまり、どちらも利用可能な修正版はまだありません。

## 悪用の条件

- fickling を「pickle を読み込んでよいかの判定」に使い、`LIKELY_SAFE` なら `fickling.load()` などで読み込む運用をしている。
- 攻撃者が、その pickle ファイル（機械学習モデル、キャッシュ、受け取ったデータなど）を差し込める。CVSS では、利用者が読み込む操作（UI:R）が必要です。

## 対応

1. fickling を使っている箇所を洗い出し、判定結果だけを根拠に pickle を読み込んでいないか確認します。
2. 出所の分からない pickle は、fickling が「安全」と返しても読み込みません。可能なら pickle 以外の形式（safetensors、JSON など）へ移します。
3. やむを得ず読む場合は、使用中の Python が 3.13 以降かを確認し、隔離された環境（コンテナなど権限の小さい環境）で読み込みます。ただし、`optparse` を使う CVE-2026-118938 は 3.13 でも通ります。
4. 修正版が出たら更新します。リリースの有無は PyPI とリポジトリのリリース欄で確かめてください。

## 未確認の点

- 修正版の版番号と時期は未確認です。上のコミットが対策に当たるかも、確認できていません。
- NVD は 10/30 に登録されましたが、状態は Received（NVD 自身の評価は未確認）です。上の CVSS は GitHub の値です。
- 悪用の報告は見つかっていません（KEV 掲載なし）。EPSS は未算出です。
- 実際の環境での再現は確認していません。記載は勧告と公開情報に基づきます。


## 出典
- [GitHub Advisory GHSA-cgc3-662q-qmrc（CVE-2026-16760）](https://github.com/advisories/GHSA-cgc3-662q-qmrc) — GitHub
- [GitHub Advisory GHSA-6jfm-qx2v-27jg（CVE-2026-118938）](https://github.com/advisories/GHSA-6jfm-qx2v-27jg) — GitHub
- [勧告が参照するコミット d011709](https://github.com/trailofbits/fickling/commit/d0117098e3512fb4eb05cdd4fd3becd31eba0248) — GitHub
- [PyPI fickling 0.1.12](https://pypi.org/project/fickling/0.1.12) — PyPI
- [NVD CVE-2026-16760](https://nvd.nist.gov/vuln/detail/CVE-2026-16760) — NIST NVD
- [NVD CVE-2026-118938](https://nvd.nist.gov/vuln/detail/CVE-2026-118938) — NIST NVD
- [FIRST EPSS API](https://api.first.org/data/v1/epss?cve=CVE-2026-16760,CVE-2026-118938) — FIRST
- [CISA Known Exploited Vulnerabilities Catalog（JSON）](https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json) — CISA

---
出典: World Security（株式会社NTP） https://n-t-p.io/worldsecurity/articles/fickling-pickle-safety-checker-bypass-likely-safe-2026-16760-118938