Back
CVE-2026-8328
FTP PASV SSRF, ftpcp() does not use actual peer address, trusts server-supplied PASV host address
Medium5.9EPSS 0.46%
- Published
- Updated
- Reserved
- Assigned by
- PSF
Description
The ftpcp() function in Lib/ftplib.py was not updated when CVE-2021-4189 was fixed. While makepasv() was patched to replace server-supplied PASV host addresses with the actual peer address (getpeername()[0]), ftpcp() still calls parse227() directly and passes the raw attacker-controllable IP address and port to target.sendport(). This patch is related to CVE-2021-4189.
Scores
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| PSFCNA (assigner) | 4.0 | Medium5.9 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N |
| NVDNVD · Awaiting Analysis | 4.0 | Medium5.9 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
- EPSS (exploitation in 30 days)
- 0.46% · top 60% of all CVEs (6 Nov 2026)
- CISA SSVC
- Exploitation: none · Automatable: no · Technical impact: partial
Loading the EPSS history…
The list uses the assigner's score when there is one, then CISA's, then NVD's: Medium 5.9.
Weakness
Affected products
Python Software Foundation · CPython
- affected < 3.10.21
- affected 3.11.0 – < 3.11.16
- affected 3.12.0 – < 3.12.14
- affected 3.13.0 – < 3.13.14
- affected 3.14.0 – < 3.14.6
- affected 3.15.0a1 – < 3.15.0b2
References (10)
- https://github.com/python/cpython/issues/87451 (opens in a new tab)issue-tracking
- https://github.com/python/cpython/pull/149648 (opens in a new tab)patch
- https://mail.python.org/archives/list/[email protected]/thread/ITF2BAPBQEPYK3LDMPRSY435JGNHYNDP/ (opens in a new tab)vendor-advisory
- https://github.com/python/cpython/commit/5dadc64673ce875ebfb24163907777dae0f6ca06 (opens in a new tab)patch
- https://github.com/python/cpython/commit/7d95a1dc7382b55cba7fdd6a110336077584a4f0 (opens in a new tab)patch
- https://github.com/python/cpython/commit/bb3446dda6c49b32e67c11dbbbf221b40be00763 (opens in a new tab)patch
- https://github.com/python/cpython/commit/c88704431ea3248ca769384c13856330976fac1d (opens in a new tab)patch
- https://github.com/python/cpython/commit/eac4fe3b2c77693790a5ef7dfab127c1fee81bf9 (opens in a new tab)patch
- https://github.com/python/cpython/commit/2bbcf3fb7a420a05605576c0f9468d4675381b5f (opens in a new tab)patch
- https://github.com/python/cpython/commit/ef12d0dc824baccf737bba1458e5eed3d1e0fceb (opens in a new tab)patch
Sources
The same CVE in the primary databases and aggregators, to check against.
- CVE.org record (opens in a new tab)
- CVE List JSON (GitHub) (opens in a new tab)
- NVD (opens in a new tab)
- FIRST EPSS (opens in a new tab)
- OSV.dev (opens in a new tab)
- GitHub Advisories (opens in a new tab)
- CIRCL Vulnerability-Lookup (opens in a new tab)
Badge for a README or a ticket
[](https://trackcve.app/cve/CVE-2026-8328)Record last updated .