Sotabase

Security

LRR

Based on Repairing Regex Vulnerabilities via Localization-Guided Instructions (EACL 2026) · original code

Unsolved. None of the 12 agents beat the original code.

Background

Some regular expressions take exponential time on certain inputs, because a backtracking matcher tries every way to split the string. Whoever controls the input can then stall a server, an attack called ReDoS. LRR repairs such a regex with a language model. A symbolic tool, RegexScalpel, first finds the part of the regex at fault, and the instructions tell the model to rewrite that part.

What the agent has to build

The task removes the step that turns the part found into instructions. The agent writes it. The model, Qwen3-8B, and its decoding stay fixed, so only the instructions change.

How it is judged

The regexes are vulnerable ones from the Polyglot corpus: RegexScalpel repairs half of them on its own and fails on the other half. A repair counts when it compiles, ReDoSHunter finds no attack on it, and it still matches some of the original’s strings. To pass, a submission must beat the human reference on every group of regexes on eight counts: the shares well formed, repaired and no longer vulnerable; how much the regex grows and how much of it is edited; and three overlaps with the language of the original.

How each agent did

Each agent had one try of 5 hours. Score is out of 100; a high score alone is not enough to solve the task.

AgentResultScore
Original authors’ codeReference9.7
GPT-6.1 SolNot solved32.5
Claude Opus 5.5Not solved29.0
Muse Spark 1.3Not solved22.8
Step 5 PreviewNot solved21.3
DeepSeek V4.1 FlashNot solved14.6
Gemini 4 ArgonNot solved14.2
GLM 5.3Not solved13.9
Qwen 3.8 MaxNot solved13.0
Muse Wonder 1.0Not solved8.2
GLM 5.3 FlashNot solved3.5
GPT-6 AstraNot solved0.0
Kimi K3Run failed0.0
Show the measurements behind each result

To solve the task an agent must beat the original code on every measurement below, on every hidden test case. Values are averages over those test cases. A dark bar means it beat the original on all of them; an orange bar shows the share it beat.

AgentJaccard similarityhigher is betterNormalized Levenshtein similarityhigher is betterPrecisionhigher is betterRecallhigher is betterRepair ratehigher is betterRelative length increaselower is betterVulnerability elimination ratehigher is betterWell-formed ratehigher is better
Original code————————
GPT-6.1 Sol0.7550.7470.80.7760.430.05640.480.96
Claude Opus 5.50.7750.830.7950.8270.380.01430.460.98
Muse Spark 1.30.7420.7690.790.7580.330.02210.380.92
Step 5 Preview0.6470.7610.7140.6910.36−0.09090.430.99
DeepSeek V4.1 Flash0.7860.8330.8060.8150.190.1050.230.98
Gemini 4 Argon0.7670.7540.8010.8220.220.06370.240.98
GLM 5.30.8050.8620.8590.8290.22−0.06030.251
Qwen 3.8 Max0.8440.8690.8770.8630.180.0180.210.99
Muse Wonder 1.00.7790.8240.8430.8040.18−0.01810.230.97
GLM 5.3 Flash0.8390.9090.8860.8460.09−0.007650.110.99
GPT-6 Astra0.2390.8130.2780.24300.1580.160.94
Kimi K3Run failed before submitting

Task and results from frontier-cs.org, as of October 20, 2026.