CVE-2026-21868CVE-2026-21868是Flag Forge CTF平台中存在的一个高危安全漏洞。该漏洞为正则表达式拒绝服务(ReDoS)漏洞,存在于平台的用户个人资料API端点(/api/user/[username])中。漏洞根源在于应用程序在动态构造正则表达式时,直接使用用户输入的username参数而未进行适当的转义处理。攻击者可以利用这一漏洞,通过发送包含深层嵌套分组或特殊量词等正则表达式元字符的特制用户名,使MongoDB的正则表达式引擎消耗大量CPU资源,最终导致服务拒绝(DoS)状态,影响其他用户的正常使用。该漏洞CVSS评分为7.5,属于高危级别,无需认证即可远程利用,对系统可用性造成严重影响。
Flag Forge CTF平台在处理用户查询时,通过动态构建正则表达式来匹配用户名。问题出在/api/user/[username]端点,应用程序直接将用户提供的username参数插入到正则表达式中,未进行任何转义或验证处理。MongoDB的$regex操作符在执行这类动态构造的正则表达式时,如果正则模式设计不当,特别是包含以下元字符时会触发灾难性回溯:1) 嵌套分组如((.*)*),导致指数级回溯;2) 贪婪量词配合重叠匹配模式如(.*)*、(a+)+;3) 交替分支如(a|a)+与目标字符串的组合。正则引擎在处理这些模式时,会尝试所有可能的匹配路径,当输入字符串包含大量重复字符时,计算复杂度会呈指数增长。在服务器端,这会导致单次请求占用整个CPU核心数秒甚至更长时间,大量并发请求可完全耗尽服务器资源,使合法用户无法获得服务。