# Improper Handling of Unicode Encoding (CWE-176) The product does not properly handle when an input contains Unicode encoding. **Stack:** Go - Prevalence: Média 3 linguagens cobertas - Impact: Médio Revisão recomendada - Prevention: Documentada 3 exemplos de correção **OWASP:** Injection (A03:2021-Injection) - #3 ## Description Unicode characters can have multiple encodings or representations. If an application does not properly handle Unicode, attackers may be able to bypass security filters or cause unexpected behavior using alternate encodings. ## Prevention Estratégias de prevenção para Improper Handling of Unicode baseadas em 1 regras de detecção do Shoulder. ### Go Normalize strings with NFKC before security-sensitive comparisons ## Consequences - Burlar mecanismo de proteção - Executar código não autorizado ## Mitigations - Normalize entradas Unicode para uma forma canônica antes de processar - Aplique verificações de segurança após a normalização Unicode - Use funções de comparação que entendam Unicode ## Detection - Total rules: 3 - Languages: go, javascript, typescript, python ## Rules by Language ### Go (1 rules) - **Unicode Normalization Security Issues** [MEDIUM]: Security-sensitive string comparison without Unicode normalization. - Remediation: Normalize strings with NFKC before security-sensitive comparisons. ```go import "golang.org/x/text/unicode/norm" func isAdmin(username string) bool { normalized := norm.NFKC.String(strings.ToLower(username)) return normalized == "admin" } ``` Learn more: https://shoulder.dev/learn/go/cwe-176/unicode-normalization