CVE-2021-41270
CSV Injection in Symfony
Em resumo
O encoder de CSV do Symfony podia ser explorado para criar arquivos de planilha maliciosos que executam fórmulas ao abrir no Excel ou aplicativos similares. Caracteres especiais não eram escapados corretamente, permitindo que atacantes injetassem código executado automaticamente.
Detalhe técnico
Vulnerabilidade de injeção de CSV no CsvEncoder do Symfony afeta versões 4.1.0-4.4.34 e 5.0.0-5.3.11. A opção `csv_escape_formulas` não escapava adequadamente células iniciando com tab (0x09), carriage return (0x0D), =, +, -, ou @ conforme recomendações OWASP, possibilitando injeção de fórmulas quando dados CSV desserializados são exportados e abertos em aplicações de planilha. Corrigido nas versões 4.4.35 e 5.3.12 adotando prefixo de aspas simples para todos os caracteres perigosos.
Resumo gerado e traduzido por IA a partir da descrição oficial.
Symfony/Serializer handles serializing and deserializing data structures for Symfony, a PHP framework for web and console applications and a set of reusable PHP components. Symfony versions 4.1.0 before 4.4.35 and versions 5.0.0 before 5.3.12 are vulnerable to CSV injection, also known as formula injection. In Symfony 4.1, maintainers added the opt-in `csv_escape_formulas` option in the `CsvEncoder`, to prefix all cells starting with `=`, `+`, `-` or `@` with a tab `\t`. Since then, OWASP added 2 chars in that list: Tab (0x09) and Carriage return (0x0D). This makes the previous prefix char (Tab `\t`) part of the vulnerable characters, and OWASP suggests using the single quote `'` for prefixing the value. Starting with versions 4.4.34 and 5.3.12, Symfony now follows the OWASP recommendations and uses the single quote `'` to prefix formulas and add the prefix to cells starting by `\t`, `\r` as well as `=`, `+`, `-` and `@`.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N