Ccodemod

codemod/express-sql-parameterized-queries

Transform SQL queries using string concatenation with user input to parameterized queries using placeholders to prevent SQL injection attacks

securitysql-injectioncwe-89transformationexpressdatabaseparameterized-queries
Public
0 executions

Run locally

npx codemod @codemod/express-sql-parameterized-queries

Express SQL Injection to Parameterized Queries

Security Codemod for CWE-89: SQL Injection Prevention

Transform SQL queries using string concatenation or template literals with user input to secure parameterized queries with placeholders. This codemod helps prevent SQL injection vulnerabilities by converting vulnerable query patterns into safe parameterized queries.

Security Impact

  • Prevents: SQL Injection attacks (CWE-89)
  • Scope: Express.js applications with direct SQL query construction
  • Risk Level: High - SQL injection can lead to data theft, unauthorized access, and data corruption

Installation

bash

What it transforms

String Concatenation with User Input

Before:

javascript

After:

javascript

Template Literals with User Input

Before:

javascript

After:

javascript

Multiple Parameters

Before:

javascript

After:

javascript

Detection Scope

This codemod identifies and transforms:

  • String concatenation using + operator with Express request objects (req.params, req.query, req.body)
  • Template literals using ${} substitution with user input
  • Database method calls including query(), execute(), run(), prepare(), all(), get()
  • Multiple parameter patterns in a single query

What it doesn't transform

  • Already parameterized queries using ? or $1, $2 placeholders
  • Static SQL queries without user input concatenation
  • Non-SQL string concatenation
  • Configuration files with connection strings
  • Test files and mock queries

Supported Database Libraries

Works with popular Node.js database libraries:

  • mysql / mysql2
  • pg (PostgreSQL)
  • sqlite3
  • mariadb
  • Any library using standard query(), execute(), run() methods

Security References

Development

bash

License

MIT

Contributing

This codemod is part of the Arc Security Codemods collection. Issues and contributions are welcome at the main repository.

Ready to contribute?

Build your own codemod and share it with the community.