Skip to main content

Improper Neutralization of Formula Elements in a CSV File


Severity Medium
Score 6.5/10


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-BETA1 before 4.4.35, versions 5.0.0-BETA1 before 5.3.12, versions 5.4.0-BETA1 before 5.4.0-RC1 and 6.0.0-BETA1 before 6.0.0-RC1 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.35, 5.3.12, 5.4.0-RC1 and 6.0.0-RC1, 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 `@`.

  • LOW
  • NONE
  • NONE
  • LOW
  • HIGH
  • NONE

CWE-1236 - Improper Neutralization of Formula Elements in a CSV File

The software saves user-provided information into a Comma-Separated Value (CSV) file, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as a command when the file is opened by spreadsheet software.

Advisory Timeline

  • Published