GitHub Advisoryadvisory · Packagist

GHSA-2xhg-w2g5-w95x CSV Injection in symfony/serializer

MEDIUM Published 2021-11-24 Modified 2024-02-05 Official page ↗
Aliases
CVE-2021-41270
Ecosystem
Packagist
Packages
symfony/serializer, symfony/symfony
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-1236
Reviewed
2021-11-24

Affected packages

• Packagist symfony/serializer: >= 5.0.0, < 5.3.12 → fixed in 5.3.12 • Packagist symfony/serializer: >= 4.1.0, < 4.4.35 → fixed in 4.4.35 • Packagist symfony/symfony: >= 4.1.0, < 4.4.35 → fixed in 4.4.35 • Packagist symfony/symfony: >= 5.0.0, < 5.3.12 → fixed in 5.3.12

Description

Description ----------- CSV Injection, also known as Formula Injection, occurs when websites embed untrusted input inside CSV files. When a spreadsheet program opens a CSV, any cell starting with `=` is interpreted by the software as a formula and could be abused by an attacker. In Symfony 4.1, we've added the opt-in `csv_escape_formulas` option in `CsvEncoder`, to prefix all cells starting by `=`, `+`, `-` or `@` by a tab `\t`. Since then, OWASP added 2 chars in that list: • Tab (0x09) • Carriage return (0x0D) This makes our previous prefix char (Tab `\t`) part of the vulnerable characters, and OWASP suggests using the single quote `'` for prefixing the value. Resolution ---------- Symfony now follows the OWASP recommendations and use the single quote `'` to prefix formulas and adds the prefix to cells starting by `\t`, `\r` as well as `=`, `+`, `-` and `@`. The patch for this issue is available here for branch 4.4. Credits ------- We would like to thank Jake Barwell for reporting the issue and Jérémy Derussé for fixing the issue.

Related

Alias · CVE (1)

  • CVE-2021-41270 Symfony/Serializer handles serializing and deserializing data structures for Symfony, a PHP framework for web and console applications and… vulnerability

Weakness · CWE (1)

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

References