Evil RegEx from user input vulnerability is not reported by codeQL
- Langage dominant
- CodeQL
- Étoiles
- 10.1k
- Forks
- 2.1k
- Merge moyen
- 2 j 15 h
- PR mergées (30 j)
- 141
Description
I created a simple C# console application based on this article:
**_[Attacking Evil Regex: Understanding Regular Expression Denial of Service Attacks (ReDoS)](https://sec.okta.com/articles/2020/04/attacking-evil-regex-understanding-regular-expression-denial-service)_**
Running the CodeQL CLI didn't write any issues in the created .csv file (0 rows).
Here is the complete code:
```c#
using System.Text.RegularExpressions;
namespace ReDoS
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("UserName: ");
var userName = Console.ReadLine();
Console.WriteLine("Password: ");
var password = Console.ReadLine();
Console.WriteLine(Authenticate(userName, password));
}
public static string Authenticate(string userName, string password)
{
var pattern = userName;
var numMatches = Regex.Matches(password, pattern ).Count;
return numMatches == 0
? "OK"
: "Password must not contain userName!";
}
}
}
```
Needless to say, entering input as the below one results in indefinitely long execution, so this is a serious attack:

My question is: Is this a known issue, or am I missing something?
Thanks in advance for your time and attention,
Dimitre
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par l'application console C# complète présente dans l'issue et reproduisez le résultat vide de CodeQL CLI. Suivez la requête de sécurité des expressions régulières C# et son traitement des motifs contrôlés par l'utilisateur ; le travail est terminé lorsque l'exemple fourni est signalé comme une vulnérabilité ReDoS.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp
- Domaine
- security
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100