Every CVE Search/ Get API key

CVE-2026-24486

Python-Multipart has Arbitrary File Write via Non-Default Configuration

8.6 HighPublic exploitFix available

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
High
Availability
Low

Exploit likelihood

2.21%Up 2.2 points since Jan 27, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.6

Python-Multipart has Arbitrary File Write via Non-Default Configuration

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
CVE-2026-24486
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Weakness
CWE-22, CWE-22
Updated
2026-11-02
EUVDEUVD-2026-4754 8.6

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
EUVD-2026-4754
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Updated
2026-11-02
GitHub AdvisoriesGHSA-wp53-j4wj-2cfg 8.6

Python-Multipart has Arbitrary File Write via Non-Default Configuration

Summary

A Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename.

Details

When UPLOAD_DIR is set and UPLOAD_KEEP_FILENAME is True, the library constructs the file path using os.path.join(file_dir, fname). Due to the behavior of os.path.join(), if the filename begins with a /, all preceding path components are discarded:

os.path.join("/upload/dir", "/etc/malicious") == "/etc/malicious"

This allows an attacker to bypass the intended upload directory and write files to arbitrary paths.

Affected Configuration

Projects are only affected if all of the following are true:

  • UPLOAD_DIR is set
  • UPLOAD_KEEP_FILENAME is set to True
  • The uploaded file exceeds MAX_MEMORY_FILE_SIZE (triggering a flush to disk)

The default configuration is not vulnerable.

Impact

Arbitrary file write to attacker-controlled paths on the filesystem.

Mitigation

Upgrade to version 0.0.22, or avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
GHSA-wp53-j4wj-2cfg
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Weakness
CWE-22
Updated
2026-11-02
NVD 8.6

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
CVE-2026-24486
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-22
Updated
2026-11-02
OSV 8.6

Python-Multipart has Arbitrary File Write via Non-Default Configuration

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
CVE-2026-24486
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Weakness
CWE-22
Updated
2026-11-02
OSVDEBIAN-CVE-2026-24486 7.5

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
DEBIAN-CVE-2026-24486
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
Show 10 moreShow less
OSVGHSA-wp53-j4wj-2cfg 8.6

Python-Multipart has Arbitrary File Write via Non-Default Configuration

Summary

A Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename.

Details

When UPLOAD_DIR is set and UPLOAD_KEEP_FILENAME is True, the library constructs the file path using os.path.join(file_dir, fname). Due to the behavior of os.path.join(), if the filename begins with a /, all preceding path components are discarded:

os.path.join("/upload/dir", "/etc/malicious") == "/etc/malicious"

This allows an attacker to bypass the intended upload directory and write files to arbitrary paths.

Affected Configuration

Projects are only affected if all of the following are true:

  • UPLOAD_DIR is set
  • UPLOAD_KEEP_FILENAME is set to True
  • The uploaded file exceeds MAX_MEMORY_FILE_SIZE (triggering a flush to disk)

The default configuration is not vulnerable.

Impact

Arbitrary file write to attacker-controlled paths on the filesystem.

Mitigation

Upgrade to version 0.0.22, or avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
GHSA-wp53-j4wj-2cfg
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Weakness
CWE-22
Updated
2026-11-02
OSVOESA-2026-2276 7.5

python-python-multipart security update

A streaming multipart parser for Python

Security Fix(es):

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.(CVE-2026-24486)

Record
OESA-2026-2276
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVPYSEC-2026-1852 8.6

Python-Multipart has Arbitrary File Write via Non-Default Configuration

Summary

A Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename.

Details

When UPLOAD_DIR is set and UPLOAD_KEEP_FILENAME is True, the library constructs the file path using os.path.join(file_dir, fname). Due to the behavior of os.path.join(), if the filename begins with a /, all preceding path components are discarded:

os.path.join("/upload/dir", "/etc/malicious") == "/etc/malicious"

This allows an attacker to bypass the intended upload directory and write files to arbitrary paths.

Affected Configuration

Projects are only affected if all of the following are true:

  • UPLOAD_DIR is set
  • UPLOAD_KEEP_FILENAME is set to True
  • The uploaded file exceeds MAX_MEMORY_FILE_SIZE (triggering a flush to disk)

The default configuration is not vulnerable.

Impact

Arbitrary file write to attacker-controlled paths on the filesystem.

Mitigation

Upgrade to version 0.0.22, or avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
PYSEC-2026-1852
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Updated
2026-11-02
OSVROOT-APP-PYPI-CVE-2026-24486 8.6

CVE-2026-24486 in python-multipart - Patched by Root

Root has patched CVE-2026-24486 in the python-multipart package for Root:PyPI. Multiple fixed versions available.

Record
ROOT-APP-PYPI-CVE-2026-24486
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Updated
2026-11-02
OSVUBUNTU-CVE-2026-24486 8.6

Python-Multipart is a streaming multipart parser for Python. Prior to version 0.0.22, a Path Traversal vulnerability exists when using non-default configuration options UPLOAD_DIR and UPLOAD_KEEP_FILENAME=True. An attacker can write uploaded files to arbitrary locations on the filesystem by crafting a malicious filename. Users should upgrade to version 0.0.22 to receive a patch or, as a workaround, avoid using UPLOAD_KEEP_FILENAME=True in project configurations.

Record
UBUNTU-CVE-2026-24486
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVCLSA-2026-1786503821 No score

TuxCare security update for python-multipart (1 CVE)

TuxCare rebuilt python-multipart to address 1 CVE. Fixed in 0.0.6.post7+tuxcare.

Record
CLSA-2026-1786503821
Updated
2026-11-02
OSVopenSUSE-SU-2026:20125-1 No score

Security update for python-python-multipart

This update for python-python-multipart fixes the following issues:

  • CVE-2026-24486: Fixed non-default configuration options can lead to path traversal (bsc#1257301).
Record
openSUSE-SU-2026:20125-1
Updated
2026-11-02
OSVSUSE-SU-2026:0307-1 No score

Security update for python-python-multipart

This update for python-python-multipart fixes the following issues:

  • CVE-2026-24486: Fixed non-default configuration options can lead to path traversal (bsc#1257301).
Record
SUSE-SU-2026:0307-1
Updated
2026-11-02
OSVSUSE-SU-2026:20188-1 No score

Security update for python-python-multipart

This update for python-python-multipart fixes the following issues:

  • CVE-2026-24486: Fixed non-default configuration options can lead to path traversal (bsc#1257301).
Record
SUSE-SU-2026:20188-1
Updated
2026-11-02
OSVUSN-8027-1 No score

python-multipart vulnerabilities

It was discovered that Python-Multipart incorrectly handled certain regular expressions. An attacker could possibly use this issue to cause Python-Multipart to consume excessive resources, leading to a regular expression denial of service. This issue only affected Ubuntu 22.04 LTS. (CVE-2024-24762)

It was discovered that Python-Multipart did not properly sanitize line breaks during user input. An attacker could use this issue to send arbitrary input, thus preventing other requests from being processed, resulting in a denial of service. This issue was only fixed in Ubuntu 24.04 LTS. (CVE-2024-53981)

It was discovered that Python-Multipart was vulnerable to path traversal attacks. An attacker could possibly craft and upload files outside the target directory, resulting in remote code execution. (CVE-2026-24486)

Record
USN-8027-1
Updated
2026-11-02

Affected products

Show 3 moreShow less

Affected packages

Affected packages
PackageAffectedFixed
python-multipart
PyPI
before 0.0.22
0.0.22
python-multipart
TuxCare:PyPI
0.0.6 up to 0.0.6.post7+tuxcare, plus listed versions
0.0.6.post1+tuxcare0.0.6.post2+tuxcare0.0.6.post3+tuxcare0.0.6.post4+tuxcare0.0.6.post5+tuxcare0.0.6.post6+tuxcare
0.0.6.post7+tuxcare
python-multipart
Debian:12
All versions, plus listed versions
0.0.17-10.0.17-20.0.17-30.0.17-40.0.17-5
Show 9 moreShow less
0.0.20-10.0.20-1.10.0.20-1.1~deb13u10.0.22-10.0.26-10.0.32-10.0.5-30.0.6-10.0.9-1
None known
python-multipart
Debian:13
before 0.0.20-1.1~deb13u1, plus listed versions
0.0.20-1
0.0.20-1.1~deb13u1
python-multipart
Debian:14
before 0.0.20-1.1, plus listed versions
0.0.20-10.0.20-1.1~deb13u1
0.0.20-1.1
python-multipart
PyPI
before 0.0.22, plus listed versions
0.0.10.0.100.0.110.0.120.0.13
Show 16 moreShow less
0.0.140.0.150.0.160.0.170.0.180.0.190.0.20.0.200.0.210.0.30.0.40.0.50.0.60.0.70.0.80.0.9
0.0.22
python-python-multipart
openEuler:24.03-LTS-SP3
before 0.0.22-1.oe2403sp3
0.0.22-1.oe2403sp3
python-multipart
Root:PyPI
before 0.0.5+aikido.1
0.0.5+aikido.1
python-python-multipart
openSUSE:Leap 15.6
before 0.0.9-150600.3.6.1
0.0.9-150600.3.6.1
python-python-multipart
SUSE:Linux Enterprise Server 16.0
before 0.0.20-160000.3.1
0.0.20-160000.3.1
Show 9 moreShow less
Affected packages
PackageAffectedFixed
python-python-multipart
SUSE:Linux Enterprise Server for SAP applications 16.0
before 0.0.20-160000.3.1
0.0.20-160000.3.1
python-multipart
Ubuntu:Pro:22.04:LTS
before 0.0.5-2ubuntu0.1~esm1, plus listed versions
0.0.5-2
0.0.5-2ubuntu0.1~esm1
python-multipart
Ubuntu:Pro:24.04:LTS
before 0.0.9-1ubuntu0.1~esm1, plus listed versions
0.0.5-30.0.6-10.0.9-1
0.0.9-1ubuntu0.1~esm1
python-multipart
Ubuntu:25.10
All versions, plus listed versions
0.0.20-1
None known
python-multipart
Ubuntu:26.10
All versions, plus listed versions
0.0.20-1.10.0.26-10.0.32-1
None known
python-multipart
Ubuntu:26.04:LTS
All versions, plus listed versions
0.0.20-10.0.20-1.1
None known
python-multipart
Ubuntu:Pro:22.04:LTS
From an advisory covering 3 CVEs
before 0.0.5-2ubuntu0.1~esm1, plus listed versions
0.0.5-2
0.0.5-2ubuntu0.1~esm1
python-multipart
Ubuntu:Pro:24.04:LTS
From an advisory covering 3 CVEs
before 0.0.9-1ubuntu0.1~esm1, plus listed versions
0.0.5-30.0.6-10.0.9-1
0.0.9-1ubuntu0.1~esm1
python-python-multipart
openSUSE:Leap 16.0
before 0.0.20-160000.3.1
0.0.20-160000.3.1

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
Exploit-DBPython-Multipart 0.0.22 - Path Traversal2026-04-30

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, Exploit-DB, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-24486 is a high vulnerability (CVSS 8.6) in Fastapiexpert Python-multipart, published January 26, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 2.21%, the 82nd percentile. Fixed in python-multipart 0.0.22.

References

Show 27 moreShow less
MoveEnter Open