activeadmin vulnerable to stored persistent cross-site scripting (XSS) in dynamic form legends
High severity
GitHub Reviewed
Published
May 31, 2024
in
activeadmin/activeadmin
•
Updated Oct 28, 2024
Package
Affected versions
< 3.2.2
>= 4.0.0.beta1, < 4.0.0.beta7
Patched versions
3.2.2
4.0.0.beta7
Description
Published to the GitHub Advisory Database
Jun 2, 2024
Reviewed
Jun 2, 2024
Published by the National Vulnerability Database
Jun 3, 2024
Last updated
Oct 28, 2024
Impact
Users settings their active admin form legends dynamically may be vulnerable to stored XSS, as long as its value can be injected directly by a malicious user.
For example:
name
value dependent on an attribute of theresource
):Then a malicious user could create an entity with a payload that would get executed in the active admin administrator's browser.
Both
form
blocks with an implicit or explicit name (i.e., bothform resource.name
orform name: resource.name
would suffer from the problem), where the value of the name can be arbitrarily set by non admin users.Patches
The problem has been fixed in ActiveAdmin 3.2.2 and ActiveAdmin 4.0.0.beta7.
Workarounds
Users can workaround this problem without upgrading by explicitly escaping the form name using an HTML escaping utility. For example:
Upgrading is of course recommended though.
References
https://owasp.org/www-community/attacks/xss/#stored-xss-attacks
References