logo

Database

Javascript Unsafe Csv Injection Fs

Description

This detector identifies CSV injection vulnerabilities in JavaScript applications that use file system operations. CSV injection occurs when user-controlled data is written to CSV files without proper sanitization, allowing attackers to inject formulas or commands that execute when the CSV is opened in spreadsheet applications like Excel.

Weakness:

090 - CSV injection

Category: Unexpected Injection

Detection Strategy

    Scans JavaScript code for file system write operations that handle CSV data

    Identifies calls to file system methods (like fs.writeFile, fs.writeFileSync, fs.appendFile) that write CSV content

    Detects when user input or external data is directly written to CSV files without sanitization

    Flags code where CSV data could contain formula injection payloads (starting with =, +, -, @) that would execute in spreadsheet applications

    Reports vulnerabilities when potentially dangerous data flows into CSV file operations without proper escaping or validation

Vulnerable code example

const fs = require('fs');
const express = require('express');

const app = express();
app.use(express.json());

app.post('/export/vulnerable', (req, res) => {
  const { name, email } = req.body;...

✅ Secure code example

const fs = require('fs');
const express = require('express');

const app = express();
app.use(express.json());

function sanitizeCSV(value) {
  if (typeof value === 'string' && /^[=+\-@\t\r]/.test(value)) {...