CVE-2026-8328
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.
How to fix
- Python Software Foundation CPython3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6, 3.15.0b2 or later
- github.com/python/cpython/pull/149648
- github.com/python/cpython/commit/5dadc64673ce875ebfb24163907777dae0f6ca06
- github.com/python/cpython/commit/7d95a1dc7382b55cba7fdd6a110336077584a4f0
- github.com/python/cpython/commit/bb3446dda6c49b32e67c11dbbbf221b40be00763
- github.com/python/cpython/commit/c88704431ea3248ca769384c13856330976fac1d
- github.com/python/cpython/commit/eac4fe3b2c77693790a5ef7dfab127c1fee81bf9
- github.com/python/cpython/commit/2bbcf3fb7a420a05605576c0f9468d4675381b5f
- github.com/python/cpython/commit/ef12d0dc824baccf737bba1458e5eed3d1e0fceb
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Python Software Foundation CPython | v < 3.10.21, 3.11.0 ≤ v < 3.11.16, 3.12.0 ≤ v < 3.12.14, 3.13.0 ≤ v < 3.13.14, 3.14.0 ≤ v < 3.14.6, 3.15.0a1 ≤ v < 3.15.0b2 | 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6, 3.15.0b2 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.