For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

devnullNZ's avatar
devnullNZ
Icon for Nimbostratus rankNimbostratus
Jun 25, 2014

Bit shifting in exponential backoff rule - bug?

been looking at using a modified version of this to mitigate brute force login attempts on a site:

 

https://devcentral.f5.com/wiki/iRules.POST-Request-Exponential-Backoff.ashx

 

But looking at the formula, there seems to be an error.

 

if { $prev_attempts eq "" } { set prev_attempts 0 }

 

OK, so this says if the variable is uninitialized, we set it to zero

 

set new_lockout [expr (1 << ($prev_attempts-1))]

 

But this has the potential of putting a -1 on the right hand side, which makes it undefined. Checking it in tclsh seems to confirm that the result of the expression will be invalid:

 

% expr 1 << (0-1) -2147483648 % exit

 

So my question is, shouldn't the $prev_attempts variable be initialized to "1", not "0"?

 

No RepliesBe the first to reply