Detects non-literal values in regular expressions

Metadata

ID: typescript-node-security/detect-non-literal-regexp

Language: TypeScript

Severity: Warning

Category: Security

Description

Creating a regular expression with user input is a security vulnerability as it could lead to a Regular Expression Denial of Service attack. In this type of attack a user could submit a very complex regular expression that takes too long to execute.

If you have an advanced use case that requires regex evaluation with user input always make sure to sanitize the data and provide a safe timeout environment.

Non-Compliant Code Examples

var a = new RegExp(c, 'i');

Compliant Code Examples

const REGEX = "regex"

const a = new RegExp('ab+c', 'i');
const b = new RegExp(REGEX, 'i');
https://static.datadoghq.com/static/images/logos/github_avatar.svg https://static.datadoghq.com/static/images/logos/vscode_avatar.svg jetbrains

Seamless integrations. Try Datadog Code Analysis