# Improper Restriction of XML External Entity Reference (CWE-611) The product processes an XML document that can contain XML entities with URIs that resolve to documents outside of the intended sphere of control, causing the product to embed incorrect documents into its output. - Prevalence: 中 3 言語をカバー - Impact: ハイ 3 件の重大度ハイのルール - Prevention: 文書化済み 3 件の修正例 **OWASP:** Security Misconfiguration (A05:2021-Security Misconfiguration) - #5 ## Description XML External Entity (XXE) attacks exploit features of XML parsers to read local files, perform server-side request forgery, or cause denial of service. ## Prevention 3 件の Shoulder 検出ルールに基づく XML External Entity (XXE) の予防策。 ### Key Practices - Use denial of service ### Go Go's encoding/xml is safe by default; reject XML with DOCTYPE declarations as defense in depth ### JavaScript Disable external entity processing in XML parsers or use JSON instead of XML ### Python Use defusedxml instead of standard XML parsers for untrusted input ## Warning Signs - [HIGH] unsafe XML parsing that could allow XML External Entity (XXE) attacks - [HIGH] XML parsing with external entity processing enabled ## Consequences - アプリケーションデータの読み取り - ファイルまたはディレクトリの読み取り - DoS ## Mitigations - XML パーサーで外部実体の処理を無効にする - 可能であれば JSON のようなよりシンプルなデータ形式を使用する - XML 入力を検証してサニタイズする ## Detection - Total rules: 3 - Languages: go, javascript, typescript, python ## Rules by Language ### Go (1 rules) - **XML External Entity (XXE) Injection** [HIGH]: User-controlled XML parsed without disabling external entities. - Remediation: Go's encoding/xml is safe by default. Reject XML with DOCTYPE declarations. ```go if bytes.Contains(body, []byte("