waf icon indicating copy to clipboard operation
waf copied to clipboard

规则文件中的正则表达式不规范可能导致server端崩溃

Open hz157 opened this issue 1 year ago • 0 comments

当规则文件中包含的正则表达式格式不正确时,可能会导致服务端在尝试匹配来自网关的数据过程中出现崩溃。如下图 Snipaste_2024-04-09_22-36-50 如果正则表达式编写有误或不遵循规范,它们在执行匹配操作时可能引发服务端的异常错误,从而导致程序异常退出,造成该问题的入口为rule_regexp.go中的第48行,需增加异常判断。

ruleItem.reg, _ = regexp.Compile(item.Val)
rule.Rule = append(rule.Rule, ruleItem)

修改为

var err error
ruleItem.reg, err = regexp.Compile(item.Val)
if err != nil {
	log.Println("Error", "%s, Error compiling regex '%s': %v", j.RuleName, item.Val, err)
	return
} else {
	rule.Rule = append(rule.Rule, ruleItem)
}

hz157 avatar Apr 09 '24 14:04 hz157