Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

CSV Injection (Formula Injection)

Description

CSV Injection (also known as Formula Injection) is a vulnerability that occurs when websites embed untrusted input inside CSV files. When a spreadsheet application (like Microsoft Excel, LibreOffice Calc, or Google Sheets) opens a CSV file containing malicious formulas, it may execute the formulas, leading to arbitrary command execution, information disclosure, or other attacks.

Common Attack Vectors

  • Export functionality (user data, reports, analytics)
  • Contact forms that export to CSV
  • User profile data exports
  • Order history exports
  • Any feature that generates downloadable CSV files
  • Import/Export features in CRM systems
  • Billing and invoice downloads
  • Survey results exports

Testing Approach

Submit formula characters (=, +, -, @, \t, \r) followed by commands or formulas in:

  • Name fields
  • Address fields
  • Comment/description fields
  • Any user-controllable data that might be exported to CSV

Risk Impact

  • Remote code execution via DDE (Dynamic Data Exchange)
  • Information disclosure (reading local files)
  • SSRF (Server-Side Request Forgery)
  • Credential theft
  • Malware distribution

Common Vulnerable Patterns

  • Direct export of user input to CSV without sanitization
  • Missing CSV encoding/escaping
  • Lack of formula character stripping
  • Client-side only validation

Payloads

See csv-injection-payloads.txt for a comprehensive list of CSV injection payloads covering:

  • Formula injection techniques
  • DDE (Dynamic Data Exchange) attacks
  • Command execution payloads
  • Data exfiltration methods
  • Multi-application compatibility