Bug ID 682271: Portal Access may handle JavaScript getter/setter definitions incorrectly

Last Modified: Sep 13, 2023

Affected Product(s):
BIG-IP APM(all modules)

Known Affected Versions:
12.1.1, 12.1.2, 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.1.0, 13.1.0.1, 13.1.0.2, 13.1.0.3, 13.1.0.4, 13.1.0.5, 13.1.0.6, 13.1.0.7, 13.1.0.8, 13.1.1, 13.1.1.2, 13.1.1.3, 13.1.1.4, 13.1.1.5, 13.1.3, 13.1.3.1, 13.1.3.2, 13.1.3.3, 13.1.3.4, 13.1.3.5, 13.1.3.6, 13.1.4, 13.1.4.1, 13.1.5, 13.1.5.1

Fixed In:
14.0.0, 13.0.1

Opened: Sep 07, 2017

Severity: 3-Major

Symptoms

In JavaScript, literal object definition may contain getter/setter definitions for some property, for example: var c = { get a() { return a; }, set a(v) { if (v) a = v; } }; The object 'c' has the property 'a' with explicit getter/setter functions. If name of such property is equal to any name to be rewritten, then Portal Access may generate incorrect JavaScript code.

Impact

JavaScript code cannot be executed due to incorrect syntax after rewriting.

Conditions

- JavaScript code with literal object definition; - Property with getter/setter definition in this object; - Property name is one of rewritten names, like 'location' or 'onerror'.

Workaround

Use iRule to replace rewritten property names by original ones.

Fix Information

Now Portal Access does not rewrite property names in getter/setter definitions for JavaScript objects.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips