@@ -1393,7 +1393,7 @@ SecRule ARGS|ARGS_NAMES|REQUEST_BODY "@validateByteRange 38,44-46,48-58,61,65-90
13931393#
13941394# This is a stricter sibling of 920270.
13951395#
1396- SecRule REQUEST_HEADERS|!REQUEST_HEADERS:User-Agent|!REQUEST_HEADERS:Referer|!REQUEST_HEADERS:Cookie "@validateByteRange 32,34,38,42-59,61,65-90,95,97-122" \
1396+ SecRule REQUEST_HEADERS|!REQUEST_HEADERS:User-Agent|!REQUEST_HEADERS:Referer|!REQUEST_HEADERS:Cookie|!REQUEST_HEADERS:Sec-Fetch-User "@validateByteRange 32,34,38,42-59,61,65-90,95,97-122" \
13971397 "id:920274,\
13981398 phase:2,\
13991399 block,\
@@ -1411,6 +1411,28 @@ SecRule REQUEST_HEADERS|!REQUEST_HEADERS:User-Agent|!REQUEST_HEADERS:Referer|!RE
14111411 severity:'CRITICAL',\
14121412 setvar:'tx.anomaly_score_pl4=+%{tx.critical_anomaly_score}'"
14131413
1414+ #
1415+ # This is a stricter sibling of 920270.
1416+ # The 'Sec-Fetch-User' header may contain the '?' (63) character.
1417+ # Therefore we exclude this header from rule 920274 which forbids '?'.
1418+ # https://www.w3.org/TR/fetch-metadata/#http-headerdef-sec-fetch-user
1419+ #
1420+ SecRule REQUEST_HEADERS:Sec-Fetch-User "@validateByteRange 32,34,38,42-59,61,63,65-90,95,97-122" \
1421+ "id:920275,\
1422+ phase:2,\
1423+ block,\
1424+ t:none,t:urlDecodeUni,\
1425+ msg:'Invalid character in request headers (outside of very strict set)',\
1426+ logdata:'%{MATCHED_VAR_NAME}=%{MATCHED_VAR}',\
1427+ tag:'application-multi',\
1428+ tag:'language-multi',\
1429+ tag:'platform-multi',\
1430+ tag:'attack-protocol',\
1431+ tag:'OWASP_CRS/PROTOCOL_VIOLATION/EVASION',\
1432+ tag:'paranoia-level/4',\
1433+ ver:'OWASP_CRS/3.1.0',\
1434+ severity:'CRITICAL',\
1435+ setvar:'tx.anomaly_score_pl4=+%{tx.critical_anomaly_score}'"
14141436
14151437# -=[ Abnormal Character Escapes ]=-
14161438#
0 commit comments