Bug ID 517347: DNS::return iRule can lead to infinite packet processing loop

Last Modified: Apr 28, 2025

Affected Product(s):
BIG-IP DNS, LTM(all modules)

Known Affected Versions:
11.1.0, 11.2.1, 11.4.0, 11.4.1, 11.5.0, 11.5.1, 11.5.1 HF1, 11.5.1 HF2, 11.5.1 HF3, 11.5.1 HF4, 11.5.1 HF5, 11.5.1 HF6, 11.5.1 HF7, 11.5.1 HF8, 11.5.1 HF9, 11.5.1 HF10, 11.5.1 HF11, 11.5.2, 11.5.2 HF1, 11.5.3, 11.5.3 HF1, 11.5.3 HF2, 11.5.4, 11.5.4 HF1, 11.5.4 HF2, 11.5.4 HF3, 11.5.4 HF4, 11.5.5, 11.5.6, 11.5.7, 11.5.8, 11.5.9, 11.5.10, 11.6.0, 11.6.0 HF1, 11.6.0 HF2, 11.6.0 HF3, 11.6.0 HF4, 11.6.0 HF5, 11.6.0 HF6, 11.6.0 HF7, 11.6.0 HF8, 11.6.1, 11.6.1 HF1, 11.6.1 HF2, 11.6.2, 11.6.2 HF1, 11.6.3, 11.6.3.1, 11.6.3.2, 11.6.3.3, 11.6.3.4, 11.6.4, 11.6.5, 11.6.5.1, 11.6.5.2, 11.6.5.3, 12.0.0, 12.0.0 HF1, 12.0.0 HF2, 12.0.0 HF3, 12.0.0 HF4, 12.1.0, 12.1.0 HF1, 12.1.0 HF2, 12.1.1, 12.1.1 HF1, 12.1.1 HF2, 12.1.2, 12.1.2 HF1, 12.1.2 HF2, 12.1.3, 12.1.3.1, 12.1.3.2, 12.1.3.3, 12.1.3.4, 12.1.3.5, 12.1.3.6, 12.1.3.7, 12.1.4, 12.1.4.1, 12.1.5, 12.1.5.1, 12.1.5.2, 12.1.5.3, 12.1.6, 13.0.0, 13.0.0 HF1, 13.0.0 HF2, 13.0.0 HF3, 13.0.1

Fixed In:
13.1.0

Opened: Apr 09, 2015

Severity: 4-Minor

Symptoms

An improperly coded iRule can lead to an infinite loop. This generally occurs when the DNS::return command is used in the DNS_RESPONSE event. The simplest example is: when DNS_RESPONSE { DNS::return } Every time a request is finished, this event will push the request back into the DNS filter to be processed again, endlessly.

Impact

If enough requests trigger this path, system resources will eventually be fully consumed processing

Conditions

DNS::return command in a DNS_RESPONSE event with no path to skip the DNS::return command.

Workaround

If DNS::request is being used in a DNS_RESPONSE event, be very certain that it is being properly used.

Fix Information

A TCL error is now thrown if a loop is detected, if this re-process path is triggered 10 times. The error takes the form: 01220001:3: TCL error: /Common/irule_infinite_loop <DNS_RESPONSE> - DNS::return loop detected. invoked from within "DNS::return"

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips