# Improper Output Neutralization for Logs (CWE-117) The product does not neutralize or incorrectly neutralizes output that is written to logs. **Stack:** Python - Prevalence: 中 3 言語をカバー - Impact: ミディアム レビュー推奨 - Prevention: 文書化済み 4 件の修正例 **OWASP:** Injection (A03:2021-Injection) - #3 ## Description Log injection attacks occur when user input is written to log files without proper sanitization. This can allow attackers to forge log entries, inject malicious content, or exploit log analysis tools. ## Prevention 1 件の Shoulder 検出ルールに基づく Log Injection の予防策。 ### Python Use structured logging with separate fields for user data instead of string interpolation ## Warning Signs - [MEDIUM] user input flowing directly into log messages without sanitization ## Consequences - アプリケーションデータの変更 - 活動の隠蔽 - 未承認コードの実行 ## Mitigations - ログに書き込む前に、すべての入力を検証してサニタイズする - データとログ構文を分離する構造化ログ形式を使用する - ユーザー制御可能なデータをログに書き込む際は、特殊文字をエンコードする ## Detection - Total rules: 4 - Languages: go, javascript, typescript, python ## Rules by Language ### Python (1 rules) - **Log Injection / Log Forging** [MEDIUM]: Detects user input flowing directly into log messages without sanitization. - Remediation: Use structured logging with separate fields for user data. ```python logging.info("Login attempt", extra={'username': username}) ``` Learn more: https://shoulder.dev/learn/python/cwe-117/log-injection