这个漏洞复盘一下还蛮有意思的。
3月26日 引入 _normalize_command_for_detection() 但这时候没有考虑引号的事情。
4月25日 基于归一化文本匹配 HARDLINE_PATTERNS 加入硬底线。
6月6日 加入 \" → " 的转义剥离。
7月17日 加入 _grep_safe_detection_variant() 与畸形引号判定,此刻漏洞成立。
归一化是为了防全角/ANSI/null 绕过,这没错。转义剥离是为了防 r\m / r''m 绕过,也没错。7月17日加的是为了降低误判,比如“grep危险字符串”不应该判成危险命令。但这三个改动加起来就让此漏洞生效并且存活了两个月。
发布于 广东
