FixVibe

// プローブ / スポットライト

XML外部エンティティ (XXE)

XMLパーサーが外部エンティティを解決するなら、サーバーは攻撃者のためにファイルを読みます。

概要

XXE is the bug that won't die. XML standards predate the modern internet's threat model, and that lineage shows in the defaults: most XML parsers across most languages happily resolve external entities unless you explicitly tell them not to. Modern app developers don't write XML, but their dependencies do — SAML SSO flows, SOAP integrations, SVG image processing, OOXML and ODF document parsers, RSS importers, and a long tail of legacy enterprise integrations. The bug returns each time someone wires a parser into a new code path without remembering to disable DOCTYPE processing. The fix is one config line. The exploitation is one curl command.

仕組み

XXE issues appear when XML parsers accept untrusted external entity behavior. Depending on parser configuration, this can expose internal files, metadata services, or internal network endpoints.

被害範囲

Local file read at the privilege of the web server process — application config, secrets files, source code, /etc/passwd, environment variables. SSRF into the cloud metadata service hands over IAM credentials. DoS via billion-laughs trivially knocks the parser process over. On parsers that support PHP filter wrappers or expect://, the bug grades up to remote code execution. SAML and SOAP integrations are particularly painful because the XXE vector lives in the trusted authentication path.

// what fixvibe checks

What FixVibe checks

FixVibe checks this class with verified-domain active testing that is bounded, non-destructive, and evidence-driven. Public reports describe the affected surface and remediation. For check-specific questions about exact detection heuristics, active payload details, or source-code rule patterns, contact support@fixvibe.app.

鉄壁の防御

Disable external entity resolution at the parser level. Every major XML parser has the flag: in Java, `factory.setFeature('http://apache.org/xml/features/disallow-doctype-decl', true)`; in libxml-based parsers, `XML_PARSE_NOENT` set to false plus `XML_PARSE_NONET`; in Python's lxml, use `defusedxml` instead of the stdlib parser; in .NET, `XmlReaderSettings { DtdProcessing = DtdProcessing.Prohibit }`. Better still, use JSON wherever you have the choice — most modern apps don't actually need XML, they inherited it from a legacy integration. For SAML and SOAP, use a battle-tested library that already has XXE defenses baked in (don't roll your own XML parsing for these). As a defense-in-depth layer, restrict the parser process's network egress and filesystem access — XXE that can only reach the public internet is significantly less useful to an attacker than XXE with metadata-service access.

// あなたのアプリで実行してみてください

FixVibe が見守る間も、安心して出荷を続けられます。

FixVibe は攻撃者と同じ視点で、あなたのアプリの公開面を徹底的にテストします —— エージェント不要、インストール不要、クレジットカード不要。新しい脆弱性パターンを継続的に研究し、実用的なチェックと Cursor、Claude、Copilot 向けの貼り付け可能な修正に変換します。

アクティブプローブ
103
このカテゴリで実行されるテスト
モジュール
27
専用の アクティブプローブ チェック
1スキャンごと
384+
全カテゴリ合計のテスト
  • 無料 —— カード不要、インストール不要、Slack 通知不要
  • URL を貼り付けるだけ —— クロール、検査、レポートはお任せ
  • 重大度別に分類、シグナルだけに重複排除
  • 最新の AI 修正プロンプトを Cursor、Claude、Copilot にそのまま貼り付け
無料スキャンを実行

// 最新チェック · 実用的な修正 · 安心してリリース

XML外部エンティティ (XXE) — 脆弱性スポットライト | FixVibe · FixVibe