FTP PASV SSRF, ftpcp() does not use actual peer address, trusts server-supplied PASV host address
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and Red Hat.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Python Software Foundation | CPython | before 3.10.21; 3.11.0 to before 3.11.16; 3.12.0 to before 3.12.14; 3.13.0 to before 3.13.14; 3.14.0 to before 3.14.6; 3.15.0a1 to before 3.15.0b2 | 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6, 3.15.0b2 | Patch available | CNA |
- CPython VendorPython Software Foundation Affected before 3.10.21; 3.11.0 to before 3.11.16; 3.12.0 to before 3.12.14; 3.13.0 to before 3.13.14; 3.14.0 to before 3.14.6; 3.15.0a1 to before 3.15.0b2 Fixed in 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6, 3.15.0b2 Patch available CNA
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:python:python:*:*:*:*:*:*:*:* | — | — | python-pillow |
- cpe:2.3:a:python:python:*:*:*:*:*:*:*:* Versions — — ·python-pillow
Remediation
- Fix · CNA CPython (Python Software Foundation) Fixed in 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6, 3.15.0b2
Red Hat 5 advisories
- RHSA-2026:68309 Released 2026-09-16 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images python3.13-3.13.15-1.3.hum1@aarch64, python3.13-3.13.15-1.3.hum1@src, python3.13-3.13.15-1.3.hum1@x86_64 +16
- RHSA-2026:68154 Released 2026-09-16 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images python3.12-3.12.14-1.3.hum1@aarch64, python3.12-3.12.14-1.3.hum1@src, python3.12-3.12.14-1.3.hum1@x86_64 +12
- RHSA-2026:68135 Released 2026-09-16 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images python3.11-3.11.16-1.4.hum1@aarch64, python3.11-3.11.16-1.4.hum1@src, python3.11-3.11.16-1.4.hum1@x86_64 +12
Show 2 more Red Hat advisories
- RHSA-2026:68132 Released 2026-09-16 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images python3.10-3.10.21-1.3.hum1@aarch64, python3.10-3.10.21-1.3.hum1@src, python3.10-3.10.21-1.3.hum1@x86_64 +12
- RHSA-2026:67572 Released 2026-09-15 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images python-unversioned-command-3.14.7-1.2.hum1@noarch@public-hummingbird-aarch64-rpms, python-unversioned-command-3.14.7-1.2.hum1@noarch@public-hummingbird-x86_64-rpms, python3-3.14.7-1.2.hum1@aarch64 +28
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Hardened Images | Fixed | RHSA-2026:67572, RHSA-2026:68132, RHSA-2026:68135, RHSA-2026:68154, RHSA-2026:68309 |
Not affected: 1 product
- Red Hat Hardened Images
Timeline
- 2026-10-02 Threatist record created from CVE-2026-8328
- 2026-10-03 Alias added: GHSA-j989-fggp-qgp5
- 2026-10-09 EPSS moved to the below the 50th percentile
References
Patch 8
- https://github.com/python/cpython/pull/149648
- https://github.com/python/cpython/commit/5dadc64673ce875ebfb24163907777dae0f6ca06
- https://github.com/python/cpython/commit/7d95a1dc7382b55cba7fdd6a110336077584a4f0
- https://github.com/python/cpython/commit/bb3446dda6c49b32e67c11dbbbf221b40be00763
- https://github.com/python/cpython/commit/c88704431ea3248ca769384c13856330976fac1d
- https://github.com/python/cpython/commit/eac4fe3b2c77693790a5ef7dfab127c1fee81bf9
- https://github.com/python/cpython/commit/2bbcf3fb7a420a05605576c0f9468d4675381b5f
- https://github.com/python/cpython/commit/ef12d0dc824baccf737bba1458e5eed3d1e0fceb
Advisory 1
More Python Software Foundation vulnerabilities
- TI-2024-07037 Quadratic complexity parsing cookies with backslashes CVSS 3.1HIGH 7.5
- TI-2024-11791 Bypass extraction filter to modify file metadata outside extraction directory CVSS 3.1MEDIUM 5.3
- TI-2024-00411 Quoted zip-bomb protection for zipfile CVSS 3.1MEDIUM 6.2
- TI-2026-13296 `HTTPPasswordMgr` can send saved HTTPS credentials via HTTP because of incorrect scheme matching CVSS 4.0MEDIUM 6.0
- TI-2024-06422 Email header injection due to unquoted newlines CVSS 3.1MEDIUM 5.5
- TI-2026-04606 Possible to hijack modules in current working directory CVSS 4.0MEDIUM 5.6
Sources
- CVE-2026-8328 · CVE Program
- CVE-2026-8328 · NVD
- FIRST EPSS
- GHSA-j989-fggp-qgp5 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-8328 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences