Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
VectorFreed — librsvg の use-after-free RCE チェーン(CVE-2026-96889)を、SVG ジェネレーター PoC と librsvg、Next.js、Satori 向けの緩和ガイダンスとともに解説します。 | Kitploit
ツール/GitHubGitHub/rafabd1/vectorfreed
メモリフォレンジック脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集論文と研究バイナリエクスプロイト
GitHubrafabd1/vectorfreed

VectorFreed

librsvg の use-after-free RCE チェーン(CVE-2026-96889)を、SVG ジェネレーター PoC と librsvg、Next.js、Satori 向けの緩和ガイダンスとともに解説します。

リポジトリを見る
191881日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

VectorFreed

概要

本ドキュメントでは「VectorFreed」を紹介します。これは、私(@rafabd1)がlibrsvgで発見したuse-after-free(CVE-2026-96889)から始まる脆弱性チェーンです。Node.js/Sharp/libvipsビルドでは、このバグがコマンド実行につながりました。本ドキュメントでは、このバグ、これまでにアプリケーションで確認された経路、そして現在利用可能な修正について説明します。

詳細

SVGはXIncludeを通じて別のSVGを含めることができます。脆弱な経路では、libxml2が外側のドキュメントでエンティティを展開している間に、librsvgがインクルードされたドキュメントの解析を開始します。インクルードされたSVGが同じ名前のエンティティを宣言している場合、librsvgは最初のエンティティを置き換えて解放します。libxml2は依然としてそのポインタを保持しています。

インクルードされた解析が終了すると、libxml2はその古いポインタで処理を続行します。その時点でメモリはすでに別の何かに属している可能性があるため、その後の書き込みでそれを破壊する可能性があります。クラッシュが一つの結果です。他のケースでは、これがコマンド実行にもつながりました。

どこで発生するか

攻撃者はlibrsvgに到達するために細工されたSVGマークアップを必要とします。これはアプリケーションがSVGファイルを受け入れるときに発生する可能性がありますが、アプリケーションがユーザー入力からSVGを構築するときにも発生する可能性があります。依存関係ツリーのどこかでlibrsvgを使用しているだけでは、悪用可能な経路が確立されるわけではありません。画像がレンダリングされるときに、入力が影響を受けるビルドに到達する必要があります。

Next.js

ImageResponse

私たちがテストしたNext.jsのルートは、SVGアップロードではなくテキストを受け入れました。それは、Node.js版のImageResponseのインラインSVG内にそのテキストを配置しました。Satoriの別のエスケープバグにより、テキストが生成されたSVGマークアップを変更することができました。その後、Sharp/libvipsがそのSVGをlibrsvgに渡しました。VercelはNext.jsの経路をCVE-2026-94545として追跡しました。ImageResponseのEdge版はこの経路の影響を受けません。こちらが短いNext.jsの再現です。

Image Optimization

2つ目のNext.jsのルートは、Image Optimization APIを通じて同じlibrsvgのバグに到達しました。攻撃者が制御する画像ソースがAPIに受け入れられたとき、細工された画像がフレームワークのSVG拒否を通過し、後にSharp/libvipsによってSVGとして処理される可能性がありました。これにより、SatoriやImageResponseを使用することなく、glibcベースのLinux上で認証されていないリクエストに対して上流のメモリ破壊が露出しました。

Vercelはこの経路を、上流のCVE-2026-96889の下でGHSA-2464-fhr4-w9xwとして公開しました。アドバイザリはこれをCritical、CVSSスコア9.5と評価しています。

Ghost

Ghostには別の経路があります。Contributorを含むスタッフユーザーが、自分が制御するサイトのブックマークカードを作成できました。その後、カード画像の処理がGhostサーバー上でコマンドを実行する可能性がありました。GhostはこれをCVE-2026-105642として公開しました。

範囲

この調査中に、私は複数の下流製品で影響を受ける入力経路を特定し、そのうちのいくつか(上記の両方のNext.js経路とGhostのケースを含む)でコマンド実行を確認しました。その入力がどのようにlibrsvgに到達するかは製品ごとに異なります。だからこそ、上流の画像パーサーのバグが、一見無関係に見える場所で発見されることがあります。最近のlibheifのケースも別の例です。これは、librsvgを使用するすべての製品がリモートで悪用可能であることを意味するものではありません。

何を更新すべきか

  • librsvg: 2.63.2 に修正が含まれており、2.62.4、2.61.5、2.60.3、2.57.5、2.56.6 にバックポートされています。古いベンダービルドを使用している場合は、修正が含まれているか確認してください。librsvg アドバイザリを参照してください。
  • Next.js (ImageResponse): バージョン 16.2.0 から 16.3.5 は、アプリケーションが攻撃者制御の値を SVG コンテンツ、属性、またはスタイルに挿入する場合に影響を受けます。16.3.6 にアップグレードしてください。
  • Next.js (Image Optimization): アドバイザリでは >= 10.0.0 <= 15.5.27 および > 16.0.0 <= 16.4.0 が影響を受けると記載されています。15.5.28 または 16.4.1 にアップグレードしてください。Sharp 0.35.5 以降には上流の修正が含まれています。
  • Ghost: Ghost はバージョン >= 6.56.0 かつ < 6.67.0 が影響を受けると記載しています。6.67.0 にアップグレードしてください。
  • Satori: 直接使用している場合、0.33.5 で Next.js ルートで使用される別のエスケープバグが修正されています。

Sharp のプリビルドバイナリを使用している場合は、アプリがインストールした @img/sharp-libvips-* パッケージを確認してください。これには librsvg を含む libvips とその依存関係がバンドルされています。システムの librsvg を更新しても、アプリは古いものを使用し続ける可能性があります。

PoC と今後の展開

UAF PoC には、いくつかの入力パス向けの SVG ジェネレータが含まれており、チェーンの開始時点での use-after-free を確認するために使用できます。

EQSTLab Next.js ImageResponse RCE PoC は、固定された Node.js/Sharp ビルド向けのこのチェーンの動作例です。ペイロードを自動的に生成して送信します。動作するエクスプロイトが現在公開されているため、影響を受ける依存関係を更新するか、できるだけ早く入力パスを緩和してください。

[!WARNING] このチェーンに対する汎用的な RCE PoC は存在しません。EQSTLab の例は固定されたビルドを対象としています。他のターゲットでは異なるペイロードが必要になる場合があります。コマンド実行に SVG <foreignObject> に依存する PoC は、ここで説明するチェーンを実証するものではありません。

他のターゲットでの初期検証には、UAF PoC の方が実用的です。また、今後数週間で、UAF からコマンド実行に至るまでの手順と、このチェーンに関する過去 1 か月の研究を振り返るポストモーテムを含む技術記事を公開する予定です。

参考資料

  • librsvg の issue と修正
  • librsvg RustSec アドバイザリ
  • Next.js ImageResponse セキュリティアップデート および アドバイザリ
  • Next.js Image Optimization アドバイザリ
  • Ghost アドバイザリ
  • Satori アドバイザリ
  • Next.js 再現に関する投稿
ツールをダウンロード