VYPR
Moderate severityNVD Advisory· Published Sep 4, 2024· Updated Sep 4, 2024

Indico has a Cross-Site-Scripting during account creation

CVE-2024-45399

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.

PackageAffected versionsPatched versions
indicoPyPI
< 3.3.43.3.4

Affected products

1

Patches

2
7dcb573837b9

Update flask-multipass to latest version

https://github.com/indico/indicoAdrian MoennichAug 23, 2024via ghsa
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
    
0bdcf656d469

Validate 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

News mentions

0

No linked articles in our index yet.