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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-27621 — CVE-2026-27621 - TypiCMS Coreには、SVGファイルのアップロードを介した格納型クロスサイトスクリプティング(XSS)の脆弱性があります。 | Kitploit
ツール/GitHubGitHub/lukasz-rybak/cve-2026-27621
脆弱性分析ウェブアプリケーション悪用ウェブセキュリティ論文と研究学習と教育
GitHublukasz-rybak/cve-2026-27621

CVE-2026-27621

CVE-2026-27621 - TypiCMS Coreには、SVGファイルのアップロードを介した格納型クロスサイトスクリプティング(XSS)の脆弱性があります。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-27621: TypiCMS Core における SVG ファイルアップロードを介した格納型クロスサイトスクリプティング (XSS)

概要

項目詳細
CVE IDCVE-2026-27621
深刻度MEDIUM
アドバイザリアドバイザリを表示
発見者Lukasz Rybak

影響を受ける製品

  • typicms/core (バージョン: < 16.1.7)

CWE 分類

  • CWE-79: Web ページ生成時における入力の不適切な無効化 ('クロスサイトスクリプティング')

詳細

I. 概要

TypiCMS のファイルアップロードモジュールには、格納型クロスサイトスクリプティング (XSS) の脆弱性が存在します。このアプリケーションは、ファイルアップロード権限を持つユーザーに SVG ファイルのアップロードを許可します。MIME タイプの検証は行われますが、SVG ファイルのコンテンツはサニタイズされません。攻撃者は、悪意のある JavaScript コードを含む特別に細工された SVG ファイルをアップロードできます。別のユーザー (管理者など) がアプリケーションを通じてこのファイルを表示またはアクセスすると、スクリプトがそのユーザーのブラウザで実行され、そのユーザーのセッションが侵害されます。

この問題は、SVG 解析ロジックのバグによって悪化します。アップロードされた SVG に viewBox 属性が含まれていない場合、500 エラーが発生する可能性があります。ただし、攻撃者は悪意のあるペイロードに有効な viewBox 属性を簡単に含めることができるため、これは XSS の脆弱性を緩和するものではありません。

II. 脆弱性の詳細

  • 脆弱性の種類: 格納型クロスサイトスクリプティング (XSS) (CWE-79)
  • 影響を受けるコンポーネント: TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php および TypiCMS\Modules\Core\Services\FileUploader.php
  • 影響を受けるバージョン: <= 16.0.5

この脆弱性は、主に 2 つの点に起因します。

  1. 寛容なファイル検証: FileFormRequest は、アップロードで許可される MIME タイプとして svg を明示的にホワイトリストに登録しています。
  2. コンテンツのサニタイズ欠如: FileUploader サービスは、<script> タグや on* イベントハンドラなどの悪意のある要素を削除するためにコンテンツを解析およびサニタイズすることなく、SVG ファイルをサーバーに保存します。

デフォルトのファイルシステムディスクが public に設定されている場合、アップロードされた SVG ファイルは公開アクセス可能なディレクトリに保存されるため、直接 URL でファイルにアクセスして XSS ペイロードをトリガーすることが簡単になります。

III. 概念実証 (PoC)

  1. 悪意のある SVG ファイルを作成する: malicious.svg という名前のファイルを以下の内容で作成します。viewBox 属性は、アプリケーションの解析バグを回避するために含まれています。

    root@kitploit:~
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
        <script>
            // A simple PoC to demonstrate the vulnerability
            alert('XSS in TypiCMS! Your session cookie is: ' + document.cookie);
        </script>
        <text x="10" y="50">If you see this, the script has run.</text>
    </svg>
    
  2. 悪意のあるファイルをアップロードする:

    • ファイルのアップロード権限を持つユーザーとして TypiCMS 管理パネルにログインします。
    • 「ファイル」モジュール (例: /admin/files) に移動します。
    • malicious.svg ファイルをアップロードします。アプリケーションはファイルを受け入れ、保存します。
画像
画像
  1. XSS をトリガーする:
    • アプリケーションは、アップロードされたファイルの公開 URL を提供します。通常は http://<your-site>/storage/files/malicious.svg という形式です。
    • この URL にアクセスした人は誰でも、埋め込まれた JavaScript がブラウザで実行されます。
    • 攻撃者はこのリンクを特権ユーザー (例: 管理者) に送信できます。管理者がリンクをクリックすると、セッション Cookie が盗まれたり、攻撃者が管理者に代わって操作を実行したりする可能性があります。
画像
画像

IV. 影響

この脆弱性が悪用されると、攻撃者は被害者のブラウザのコンテキストで任意の JavaScript を実行できます。セッション Cookie での HttpOnly フラグの使用により document.cookie を介したセッション ID の直接的な窃取は防がれますが、攻撃者は被害者に代わって操作を実行することで、被害者のアカウントを完全に侵害できます。

影響には以下が含まれます:

  • 操作偽造によるアカウント乗っ取り: 攻撃者のスクリプトは、被害者のブラウザからアプリケーションの API に対して認証済みリクエストを送信できます。これにより、攻撃者は被害者が許可されている任意の操作を実行できます。例:

    • 攻撃者用の新しい管理者アカウントを作成する。
    • 被害者のメールアドレスとパスワードを変更する。
    • すべてのコンテンツ、ユーザー、設定を削除または変更する。
  • 機密情報の開示: スクリプトは、被害者が管理パネル内で表示する任意のページのコンテンツを読み取ることができます。これには、ユーザー一覧 (名前とメールアドレスを含む)、プライベートなアプリケーション設定、その他の機密データが含まれ、攻撃者が管理するサーバーに外部送信される可能性があります。

  • フィッシングとソーシャルエンジニアリング: スクリプトは管理パネルの UI を操作して偽のログインフォームを表示し、ユーザーに資格情報の再入力を促したり、悪意のある Web サイトにリダイレクトしたりすることができます。

  • キーストロークロギング: スクリプトは、侵害されたページのフォームに被害者が入力した情報をキャプチャできます。

認証された管理者として攻撃者が任意の操作を実行できるため、この脆弱性はセッション Cookie への直接アクセスがなくても、実質的にアプリケーション全体の侵害につながります。リスクは高です。

V. 推奨されるパッチと緩和策

この脆弱性を緩和するには、多層防御 (defense-in-depth) アプローチを適用することをお勧めします。

  1. 主な修正: SVG コンテンツのサニタイズ: 最も堅牢な解決策は、アップロード時に SVG ファイルをサニタイズすることです。ファイルを保存する前に、<script>、<style>、<foreignObject> タグや、すべての on* イベント属性など、潜在的に危険な要素をすべて削除するために解析する必要があります。これは、専用の SVG サニタイズライブラリを使用して実現できます。

  2. 副次的な修正: SVG アップロードの無効化: SVG アップロードがアプリケーションの重要な機能でない場合、最も簡単で安全な解決策は、それらを完全に無効にすることです。これは、TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php の許可された MIME タイプのリストから 'svg' を削除することで実行できます。

    root@kitploit:~
    // In FileFormRequest.php
    // BEFORE:
    $fileRule = 'mimes:jpeg,gif,png,...,svg,...|max:...';
    
    // AFTER:
    $fileRule = 'mimes:jpeg,gif,png,...,pdf,...|max:...'; // Removed 'svg'
    
  3. 堅牢化 - Content-Security-Policy (CSP): アプリケーションに厳格な Content-Security-Policy (CSP) ヘッダーを実装します。適切に構成された CSP はインラインスクリプトの実行を防ぐことができ、この XSS 脆弱性の影響を緩和します。

  4. 堅牢化 - ユーザーコンテンツを別ドメインから配信する: すべてのユーザーアップロードファイルを、Cookie を使用しない別のドメインから配信します。これは、ユーザー生成コンテンツをメインアプリケーションから分離し、スクリプトがセッション Cookie にアクセスしたり、アプリケーションの DOM とやり取りしたりするのを防ぐ、非常に効果的なセキュリティ対策です。

参考情報

  • https://github.com/TypiCMS/Core/security/advisories/GHSA-xfvg-8v67-j7wp
  • https://nvd.nist.gov/vuln/detail/CVE-2026-27621
  • https://github.com/TypiCMS/Core/commit/d480a0be1e8e7c0600bb9a325bb11920ee66497d
  • https://github.com/advisories/GHSA-xfvg-8v67-j7wp

免責事項

この CVE は、協調的脆弱性情報開示 (Coordinated Vulnerability Disclosure) の慣行に従って責任を持って開示されました。ここで提供される情報は、教育および防御目的のみを目的としています。

ツールをダウンロード