Indico has a Cross-Site-Scripting during account creation
Description
Indico is an event management system that uses Flask-Multipass, a multi-backend authentication system for Flask. In Indico prior to version 3.3.4, corresponding to Flask-Multipass prior to version 0.5.5, there is a Cross-Site-Scripting vulnerability during account creation when redirecting to the next URL. Exploitation requires initiating the account creation process with a maliciously crafted link, and then finalizing the signup process. Because of this, it can only target newly created (and thus unprivileged) Indico users. Indico 3.3.4 upgrades the dependency on Flask-Multipass to version 0.5.5, which fixes the issue. Those who build the Indico package themselves and cannot upgrade can update the flask-multipass dependency to >=0.5.5 which fixes the vulnerability. Otherwise one could configure one's web server to disallow requests containing a query string with a next parameter that starts with javascript:.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
indicoPyPI | < 3.3.4 | 3.3.4 |
Affected products
1Patches
27dcb573837b9Update flask-multipass to latest version
1 file changed · +1 −1
requirements.txt+1 −1 modified@@ -123,7 +123,7 @@ flask-marshmallow==1.2.1 # via -r requirements.in flask-migrate==4.0.7 # via -r requirements.in -flask-multipass==0.5.4 +flask-multipass==0.5.5 # via -r requirements.in flask-pluginengine==0.5 # via -r requirements.in
0bdcf656d469Validate scheme of next URL (#85)
4 files changed · +9 −1
CHANGES.rst+5 −0 modified@@ -1,6 +1,11 @@ Changelog ========= +Version 0.5.5 +------------- + +- Ensure only valid schemas (http and https) can be used when validating the ``next`` URL + Version 0.5.4 -------------
flask_multipass/core.py+2 −0 modified@@ -135,6 +135,8 @@ def validate_next_url(self, url): a whitelist of trusted hosts to avoid creating an open redirector. """ url_info = urlsplit(url) + if url_info.scheme and url_info.scheme not in {'http', 'https'}: + return False return not url_info.netloc or url_info.netloc == request.host def process_login(self, provider=None):
flask_multipass/__init__.py+1 −1 modified@@ -13,7 +13,7 @@ from .identity import IdentityProvider -__version__ = '0.5.4' +__version__ = '0.5.5' __all__ = ('Multipass', 'AuthProvider', 'IdentityProvider', 'AuthInfo', 'IdentityInfo', 'Group', 'MultipassException', 'AuthenticationFailed', 'IdentityRetrievalFailed', 'GroupRetrievalFailed', 'NoSuchUser', 'InvalidCredentials')
tests/test_core.py+1 −0 modified@@ -161,6 +161,7 @@ def test_next_url_invalid(): ('//evil.com:80', False), ('http://evil.com', False), ('https://evil.com', False), + ('javascript:alert("eeeeeeeevil")', False), )) def test_validate_next_url(url, valid): app = Flask('test')
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
7- github.com/advisories/GHSA-rrqf-w74j-24ffghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2024-45399ghsaADVISORY
- github.com/indico/flask-multipass/commit/0bdcf656d469e5f675cb56fd644d82fea3a97c2aghsax_refsource_MISCWEB
- github.com/indico/indico/commit/7dcb573837b9fd09d95f74d1baeae225b164cc8fghsax_refsource_MISCWEB
- github.com/indico/indico/releases/tag/v3.3.4ghsax_refsource_MISCWEB
- github.com/indico/indico/security/advisories/GHSA-rrqf-w74j-24ffghsax_refsource_CONFIRMWEB
- github.com/pypa/advisory-database/tree/main/vulns/indico/PYSEC-2024-90.yamlghsaWEB
News mentions
0No linked articles in our index yet.