Last Modified: Nov 22, 2021
Affected Product(s):
BIG-IP APM
Known Affected Versions:
11.3.0, 11.4.0, 11.4.1, 11.5.0
Fixed In:
11.6.0, 11.5.1, 11.5.0 HF1, 11.4.1 HF4, 11.4.0 HF8, 11.3.0 HF9
Opened: Jan 24, 2014 Severity: 3-Major Related Article:
K15661
Client-side rewriting may give incorrect results for JavaScript assignment operators if left-hand operand is index expression or dot expression: a[i]-=b; a.value*=c;
Any JavaScript code with arithmetic assignment operators may work incorrectly.
Assignment operators -=, *=, /=, %= are handled incorrectly if the result is assigned to index expression (like a[i]) or dot expression (like a.value). The effect occurs only if JavaScript code is inside 'eval' statement or is generated by write/writeln functions. Rewritten code does not include arithmetic operation which leads to incorrect values.
Replace arithmetic assignment operators by pairs of simple assignment and arithmetic operation, for example: a[i] -= b --> a[i] = a[i] - b
Now JavaScript arithmetic assignment operators are handled correctly on the server and on the client.