Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-64512-Polyglot-PoC — ポリグロットファイルを使用したCVE-2025-64512のProof-of-Concept | Kitploit
ツール/GitHubGitHub/luigigubello/cve-2025-64512-polyglot-poc
脆弱性分析エクスプロイトウェブセキュリティ学習と教育ペイロード開発バイナリエクスプロイト
GitHubluigigubello/cve-2025-64512-polyglot-poc

CVE-2025-64512-Polyglot-PoC

ポリグロットファイルを使用したCVE-2025-64512のProof-of-Concept

リポジトリを見る
765ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2025-64512 ポリグロットペイロード

過去数週間(2025年11月)、PDFファイルを処理する人気のPythonプロジェクトであるpdfminer.six(特にAIパイプラインで使用)において、興味深い脆弱性(CVE-2025-64512)が公開されました。この脆弱性は、pickle.loads()を介して信頼できないデータをデシリアライズすることでリモートコード実行を可能にし、PDFファイルを攻撃ベクトルとして利用します。ここまでは順調です:人気のあるPythonパッケージにおける重要な脆弱性です。私の注目を集めたのは、その悪用可能性でした👀。

Linux系システムでは、ファイルシステム上のファイルのみが解決可能です。攻撃者は、悪意のあるPDFを処理のために提供し、悪意のあるpickleファイルを、攻撃者がすでに知っている場所にターゲットシステム上に存在させる必要があります(PDF内でそのパスを設定する必要があるため)。多くの場合、攻撃者がPDFとpickleファイルの両方を一緒に提供したとしても、事前にpickleファイルの完全なパスを知る方法がないため、悪用は困難です。[...] 全体として、LinuxまたはLinux系システムではリスクは一般的に低くなります。

つまり、Linux系システムでこの脆弱性を悪用するには、攻撃者は以下のことを行う必要があるようです:

  • 脆弱なシステムに悪意のあるPDFファイルと悪意のあるpickleファイルをアップロードまたは提供する;
  • 脆弱なシステム上の悪意のあるpickleファイルの位置(ファイルパス)を知っていること。

悪意のあるpickleファイルのファイルパスを知らなくても脆弱性をトリガーする有効なPDFファイルを作成できるでしょうか?

"有効"とは、pdfminer.sixがファイルを拒否せず、処理を開始することを意味します(なぜなら_ PDFファイルとはPDFリーダーが開くものだからです_)。答えははいです。ポリグロットペイロード(のようなもの)を作成します。アイデアは、有効なpickle.gzファイルでありかつ有効なPDFファイルでもあるファイルを作成し、pdf2txt.pyがPDFファイルとして処理を開始した後、同じファイルを指してGZIP形式のpickleコードを読み込ませることです。

多くの場合 - しかし常にではない 🥲 - ファイルが%PDF-を どこか に持っていれば、それはPDFファイルです(通常は最初の1024バイト以内)(1 - )。の場合、有効なPDFファイルはオブジェクトを持っていればよいです()。GZIPファイルには特定の初期バイトがあります()、コメント(FCOMMENT, )をサポートしています。

2
pdfminer.six
/Root
pdfdocument.py#L752
RFC 1952 - Sec. 2.3.1
が
RFC 1952 - Sec. 2.3.1

そこで、ポリグロットファイルの設計は次のとおりです:悪意のあるpickleペイロードを含む有効なGZIPを作成し、そのGZIPのFCOMMENTフラグに有効なPDFファイルを埋め込みます。そして、このファイルをpdf2txt.pyで有効なPDFとして使用して脆弱性をトリガーし、同じファイルを使って悪意のあるpickleを実行します。

(2025.12.12) 編集:

唯一の制約はファイル名で、.pickle.gzで終わる必要があることです(これはpdfminer.sixのコードcmapdb.py#L235に組み込まれています)。

私たちが持っている2つの制約は次のとおりです:

  • ファイル名: それは**.pickle.gz**で終わる必要があります(これはpdfminer.sixのコードcmapdb.py#L235に組み込まれています);
  • PDFの場所: 脆弱なシステム上のPDFの場所を依然として知っておく必要があります。

このCVEがこれほど過小評価されていることに私は少し驚いています。このプロジェクトの人気(GitHubで6k⭐️、しかしGitHubの統計によると34kのプロジェクトで使用)と、使用事例(コマンドラインツール、AIワークフロー、パイプライン、つまり、うまく動作しているなら更新したくないあらゆる種類のインフラ)を考慮すると。

例えば、12月1日より前にインストールされたMicrosoftのツールmarkitdown 0.1.3(microsoft/markitdown、GitHubで84k⭐️、2kのプロジェクトで使用)は、pdfminer.sixを介した任意のコード実行に対して脆弱です。Microsoftチームは12月1日にパッチ0.1.4をリリースしましたが、セキュリティアラートはなかったため、他のエンジニアリングチームが更新を優先しているとは思えません。

他のプロジェクトもCVE-2025-64512の影響を受ける可能性があり、悪用は非常に簡単です。

脆弱なプロジェクト

脆弱なプロジェクトの(不完全な)リスト:

  • pdfminer.six (20250506)(20251107で修正済み)
  • markitdown (0.1.3)(0.1.4で修正済み)
  • pdfplumber (0.11.7)(0.11.8で修正済み)

pdf2txt.py 20250506 用 PoC

root@kitploit:~
docker build -t cve-2025-64512-poc .  
docker run --rm -it cve-2025-64512-poc
pdf2txt.py payload.pickle.gz

markitdown 0.1.3 用 PoC

root@kitploit:~
docker build -t cve-2025-64512-poc .  
docker run --rm -it cve-2025-64512-poc
markitdown markitdown-payload.pickle.gz -x pdf -o output.md

動画

poc.gif

ツールをダウンロード