Last Modified: Jul 12, 2023
Known Affected Versions:
14.0.0, 22.214.171.124, 126.96.36.199, 188.8.131.52, 184.108.40.206, 220.127.116.11, 14.0.1, 18.104.22.168, 14.1.0, 22.214.171.124, 126.96.36.199, 188.8.131.52, 184.108.40.206
Opened: Jan 23, 2019 Severity: 2-Critical
iRules using the command 'class match' with the 'equals' operator on long entries fail to return a positive match, even if they are in the datagroup, for example: my_datagroup: "abcdefghijklmnopqrstuvwxyz0123456" := "value1" class match "abcdefghijklmnopqrstuvwxyz0123456" equals my_datagroup
iRules will act incorrectly
This is encountered when all of the following conditions are met: - Using an external datagroup of type string with keys longer than 32 characters. - Using an iRule with the 'class match' command and the 'equals' operator on the external datagroup. - Trying to match keys that are longer than 32 characters.
If none of the keys in the datagroup are prefixes of each other, the 'equals' operator can be changed to 'starts_with' or 'ends_with' (if none are suffixes of each other).
iRules using the command 'class match' with the 'equals' operator on long entries now correctly matches external datagroup string entries which are longer than 32 characters.