{"id":"CVE-2026-8328","summary":"FTP PASV SSRF, ftpcp() does not use actual peer address, trusts server-supplied PASV host address","details":"The ftpcp() function in Lib/ftplib.py was not updated when \nCVE-2021-4189 was fixed. While makepasv() was patched to replace \nserver-supplied PASV host addresses with the actual peer address \n(getpeername()[0]), ftpcp() still calls parse227() directly and passes \nthe raw attacker-controllable IP address and port to target.sendport(). This patch is related to CVE-2021-4189.","aliases":["BIT-libpython-2026-8328","BIT-python-2026-8328","BIT-python-min-2026-8328","PSF-0000-CVE-2026-8328","PSF-2026-24"],"modified":"2026-06-24T18:29:28.937234095Z","published":"2026-05-13T20:14:33.751Z","related":["CGA-g5qm-4qwx-5v9f","openSUSE-SU-2026:11101-1"],"database_specific":{"cna_assigner":"PSF","cwe_ids":["CWE-918"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/8xxx/CVE-2026-8328.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/8xxx/CVE-2026-8328.json"},{"type":"ADVISORY","url":"https://mail.python.org/archives/list/security-announce@python.org/thread/ITF2BAPBQEPYK3LDMPRSY435JGNHYNDP/"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-8328"},{"type":"REPORT","url":"https://github.com/python/cpython/issues/87451"},{"type":"FIX","url":"https://github.com/python/cpython/commit/5dadc64673ce875ebfb24163907777dae0f6ca06"},{"type":"FIX","url":"https://github.com/python/cpython/commit/7d95a1dc7382b55cba7fdd6a110336077584a4f0"},{"type":"FIX","url":"https://github.com/python/cpython/commit/bb3446dda6c49b32e67c11dbbbf221b40be00763"},{"type":"FIX","url":"https://github.com/python/cpython/commit/c88704431ea3248ca769384c13856330976fac1d"},{"type":"FIX","url":"https://github.com/python/cpython/commit/eac4fe3b2c77693790a5ef7dfab127c1fee81bf9"},{"type":"FIX","url":"https://github.com/python/cpython/pull/149648"},{"type":"PACKAGE","url":"https://github.com/python/cpython"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/python/cpython","events":[{"introduced":"0"},{"introduced":"ebf955df7a89ed0c7968f79faec1de49f61ed7cb"},{"introduced":"f31a89bb901067dd105b00cfa90523cf7ffdbbdd"},{"fixed":"fd17997c3866d61e0e7bd8201b1d8f35b40a40bd"},{"fixed":"c63aec69bd59c55314c06c23f4c22c03de76fe45"},{"fixed":"94a64bbc6ce89644cf02b82c723d9cc37f6a1870"},{"fixed":"5dadc64673ce875ebfb24163907777dae0f6ca06"},{"fixed":"7d95a1dc7382b55cba7fdd6a110336077584a4f0"},{"fixed":"bb3446dda6c49b32e67c11dbbbf221b40be00763"},{"fixed":"c88704431ea3248ca769384c13856330976fac1d"},{"fixed":"eac4fe3b2c77693790a5ef7dfab127c1fee81bf9"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"3.13.14"},{"introduced":"3.14.0"},{"fixed":"3.14.6"},{"introduced":"3.15.0a1"},{"fixed":"3.15.0b2"}]}}],"versions":["v3.14.5","v3.15.0b1","v3.14.5rc1","v3.13.13","v3.14.4","v3.12.13","v3.13.12","v3.14.3","v3.14.2","v3.13.11","v3.13.10","v3.14.1","v3.13.8","v3.12.12","v3.14.0","v3.13.7","v3.13.6","v3.13.5","v3.13.4","v3.12.11","v3.13.3","v3.12.10","v3.13.2","v3.12.9","v3.13.1","v3.12.8","v3.13.0","v3.13.0rc3","v3.12.7","v3.13.0rc2","v3.12.6","v3.12.5","v3.13.0rc1","v3.13.0b4","v3.13.0b3","v3.12.4","v3.13.0b2","v3.13.0b1","v3.13.0a6","v3.12.3","v3.13.0a5","v3.13.0a4","v3.12.2","v3.13.0a3","v3.12.1","v3.13.0a2","v3.13.0a1","v3.12.0","v3.12.0rc3","v3.12.0rc2","v3.12.0rc1","v3.12.0b4","v3.12.0b3","v3.12.0b2","v3.12.0b1","v3.12.0a7","v3.12.0a6","v3.12.0a5","v3.12.0a4","v3.12.0a3","v3.12.0a2","v3.12.0a1","v3.11.0b1","v3.11.0a7","v3.11.0a6","v3.11.0a5","v3.11.0a4","v3.11.0a3","v3.10.0a7","v3.10.0a1","v3.9.0a2","v3.7.0a2","v3.6.0b1","v3.6.0a3","v3.5.0b1","v3.5.0a4","v3.5.0a3","v3.5.0a2","v3.5.0a1","v3.4.0b3","v3.4.0b2","v3.4.0b1","v3.4.0a4","v3.4.0a3","v3.4.0a2","v3.4.0a1","v3.3.0rc3","v3.3.0rc2","v3.3.0rc1","v3.3.0b2","v3.3.0b1","v3.3.0a4","v3.3.0a3","v3.3.0a2","v3.2rc3","v3.2rc2","v3.2rc1","v3.2b2","v3.2b1","v3.2a4","v3.2a3","v3.2a2","v3.2a1","v3.1","v3.1rc2","v3.1rc1","v3.1b1","v3.1a2","v3.1a1","v3.0rc3","v3.0rc2","v3.0rc1","v3.0b3","v3.0b2","v3.0b1","v3.0a5","v3.0a4","v3.0a3","v3.0a2","v3.0a1","v2.4","v2.4c1","v2.4b2","v2.4b1","v2.4a3","v2.4a2","v2.4a1","v2.3c2","v2.3c1","v2.2a3","v2.1","v2.1c2","v2.1c1","v2.1b2","v2.1b1","v2.1a2","v2.1a1","v2.0","v2.0c1","v2.0b2","v2.0b1","v1.6a2","v1.6a1","v1.5.2","v1.5.2c1","v1.5.2b2","v1.5.2b1","v1.5.2a2","v1.5.2a1","v1.5.1","v1.5","v1.5b2","v1.5b1","v1.5a4","v1.5a3","v1.5a2","v1.5a1","v1.4","v1.4b3","v1.4b2","v1.4b1","v1.3","v1.3b1","v1.2","v1.2b4","v1.2b3","v1.2b2","v1.2b1","v1.1.1","v1.1","v1.0.2","v1.0.1","v0.9.9","v0.9.8"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-8328.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"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"}]}