Vulnerability · Published Aug 24, 2022 · Assigned by redhat
CVE-2021-4189
Medium 5.3
In plain English
A medium-severity security flaw in python. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 3.4% (higher than 89% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
A flaw was found in Python, specifically in the FTP (File Transfer Protocol) client library in PASV (passive) mode. The issue is how the FTP client trusts the host from the PASV response by default. This flaw allows an attacker to set up a malicious FTP server that can trick FTP clients into connecting back to a given IP address and port. This vulnerability could lead to FTP client scanning ports, which otherwise would not have been possible.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux:8 | babel | 2.5.1-10.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | platform-python | 3.6.8-45.el8.alma | ALSA-2022:1986 |
| AlmaLinux:8 | platform-python-debug | 3.6.8-45.el8.alma | ALSA-2022:1986 |
| AlmaLinux:8 | platform-python-devel | 3.6.8-45.el8.alma | ALSA-2022:1986 |
| AlmaLinux:8 | python-nose-docs | 1.3.7-31.module_el8.5.0+2569+5c5719bc | ALSA-2022:1821 |
| AlmaLinux:8 | python-nose-docs | 1.3.7-31.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python-psycopg2-doc | 2.7.5-7.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python-sqlalchemy-doc | 1.3.2-2.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python-sqlalchemy-doc | 1.3.2-2.module_el8.5.0+2569+5c5719bc | ALSA-2022:1821 |
| AlmaLinux:8 | python2 | 2.7.18-10.module_el8.6.0+2781+fed64c13.alma | ALSA-2022:1821 |
| AlmaLinux:8 | python2-Cython | 0.28.1-7.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-PyMySQL | 0.8.0-10.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-attrs | 17.4.0-10.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-babel | 2.5.1-10.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-backports | 1.0-16.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-backports-ssl_match_hostname | 3.5.0.1-12.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-bson | 3.7.0-1.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-chardet | 3.0.4-10.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-coverage | 4.5.1-4.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-debug | 2.7.18-10.module_el8.6.0+2781+fed64c13.alma | ALSA-2022:1821 |
| AlmaLinux:8 | python2-devel | 2.7.18-10.module_el8.6.0+2781+fed64c13.alma | ALSA-2022:1821 |
| AlmaLinux:8 | python2-dns | 1.15.0-10.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-docs | 2.7.16-2.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-docs-info | 2.7.16-2.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-docutils | 0.14-12.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-funcsigs | 1.0.2-13.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-idna | 2.5-7.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-ipaddress | 1.0.18-6.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-jinja2 | 2.10-9.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-libs | 2.7.18-10.module_el8.6.0+2781+fed64c13.alma | ALSA-2022:1821 |
| AlmaLinux:8 | python2-lxml | 4.2.3-6.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-markupsafe | 0.23-19.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-mock | 2.0.0-13.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-nose | 1.3.7-31.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-numpy | 1:1.14.2-16.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-numpy-doc | 1:1.14.2-16.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-numpy-f2py | 1:1.14.2-16.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pip | 9.0.3-19.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pip-wheel | 9.0.3-19.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pluggy | 0.6.0-8.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-psycopg2 | 2.7.5-7.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-psycopg2-debug | 2.7.5-7.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-psycopg2-tests | 2.7.5-7.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-py | 1.5.3-6.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pygments | 2.2.0-22.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pymongo | 3.7.0-1.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pymongo-gridfs | 3.7.0-1.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pysocks | 1.6.8-6.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pytest | 3.4.2-13.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pytest-mock | 1.9.0-4.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pytz | 2017.2-12.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-pyyaml | 3.12-16.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-requests | 2.20.0-3.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-rpm-macros | 3-38.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-scipy | 1.0.0-21.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-setuptools | 39.0.1-13.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-setuptools-wheel | 39.0.1-13.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-setuptools_scm | 1.15.7-6.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-six | 1.11.0-6.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-sqlalchemy | 1.3.2-2.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-test | 2.7.18-10.module_el8.6.0+2781+fed64c13.alma | ALSA-2022:1821 |
| AlmaLinux:8 | python2-tkinter | 2.7.18-10.module_el8.6.0+2781+fed64c13.alma | ALSA-2022:1821 |
| AlmaLinux:8 | python2-tools | 2.7.18-10.module_el8.6.0+2781+fed64c13.alma | ALSA-2022:1821 |
| AlmaLinux:8 | python2-urllib3 | 1.24.2-3.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-virtualenv | 15.1.0-21.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-wheel | 1:0.31.1-3.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python2-wheel-wheel | 1:0.31.1-3.module_el8.6.0+2781+fed64c13 | ALSA-2022:1821 |
| AlmaLinux:8 | python3-idle | 3.6.8-45.el8.alma | ALSA-2022:1986 |
| AlmaLinux:8 | python3-libs | 3.6.8-45.el8.alma | ALSA-2022:1986 |
| AlmaLinux:8 | python3-test | 3.6.8-45.el8.alma | ALSA-2022:1986 |
| AlmaLinux:8 | python3-tkinter | 3.6.8-45.el8.alma | ALSA-2022:1986 |
| Debian:12 | pypy3 | 7.3.5+dfsg-2 | DEBIAN-CVE-2021-4189 |
| Debian:13 | pypy3 | 7.3.5+dfsg-2 | DEBIAN-CVE-2021-4189 |
| Debian:14 | pypy3 | 7.3.5+dfsg-2 | DEBIAN-CVE-2021-4189 |
| Rocky Linux:8 | Cython | 0:0.28.1-7.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | Cython | 0:0.28.1-7.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | PyYAML | 0:3.12-16.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | PyYAML | 0:3.12-16.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | babel | 0:2.5.1-10.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | numpy | 1:1.14.2-16.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | numpy | 1:1.14.2-16.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | pytest | 0:3.4.2-13.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | pytest | 0:3.4.2-13.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-PyMySQL | 0:0.8.0-10.module+el8.3.0+120+426d8baf | RLSA-2022:1821 |
| Rocky Linux:8 | python-PyMySQL | 0:0.8.0-10.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-attrs | 0:17.4.0-10.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-attrs | 0:17.4.0-10.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-backports | 0:1.0-16.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-backports-ssl_match_hostname | 0:3.5.0.1-12.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-chardet | 0:3.0.4-10.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-chardet | 0:3.0.4-10.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-coverage | 0:4.5.1-4.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-coverage | 0:4.5.1-4.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-dns | 0:1.15.0-10.module+el8.7.0+1062+663ba31c | RLSA-2022:1821 |
| Rocky Linux:8 | python-dns | 0:1.15.0-10.el8 | RLSA-2022:1821 |
| Rocky Linux:8 | python-dns | 0:1.15.0-10.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-docs | 0:2.7.16-2.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-docutils | 0:0.14-12.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-docutils | 0:0.14-12.module+el8.3.0+120+426d8baf | RLSA-2022:1821 |
| Rocky Linux:8 | python-funcsigs | 0:1.0.2-13.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-idna | 0:2.5-7.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-idna | 0:2.5-7.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-ipaddress | 0:1.0.18-6.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-jinja2 | 0:2.10-9.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-jinja2 | 0:2.10-9.module+el8.7.0+1062+663ba31c | RLSA-2022:1821 |
| Rocky Linux:8 | python-lxml | 0:4.2.3-6.module+el8.6.0+793+57002515 | RLSA-2022:1821 |
| Rocky Linux:8 | python-markupsafe | 0:0.23-19.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-markupsafe | 0:0.23-19.el8 | RLSA-2022:1821 |
| Rocky Linux:8 | python-mock | 0:2.0.0-13.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-nose | 0:1.3.7-31.module+el8.5.0+671+195e4563 | RLSA-2022:1821 |
| Rocky Linux:8 | python-pluggy | 0:0.6.0-8.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-pluggy | 0:0.6.0-8.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-psycopg2 | 0:2.7.5-7.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-psycopg2 | 0:2.7.5-7.el8 | RLSA-2022:1821 |
| Rocky Linux:8 | python-py | 0:1.5.3-6.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-py | 0:1.5.3-6.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-pygments | 0:2.2.0-22.module+el8.5.0+671+195e4563 | RLSA-2022:1821 |
| Rocky Linux:8 | python-pymongo | 0:3.7.0-1.module+el8.5.0+671+195e4563 | RLSA-2022:1821 |
| Rocky Linux:8 | python-pymongo | 0:3.7.0-1.module+el8.4.0+597+ddf0ddea | RLSA-2022:1821 |
| Rocky Linux:8 | python-pysocks | 0:1.6.8-6.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-pysocks | 0:1.6.8-6.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-pytest-mock | 0:1.9.0-4.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-requests | 0:2.20.0-3.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-requests | 0:2.20.0-3.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-setuptools_scm | 0:1.15.7-6.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-sqlalchemy | 0:1.3.2-2.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-sqlalchemy | 0:1.3.2-2.module+el8.3.0+120+426d8baf | RLSA-2022:1821 |
| Rocky Linux:8 | python-urllib3 | 0:1.24.2-3.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | python-urllib3 | 0:1.24.2-3.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python-virtualenv | 0:15.1.0-21.module+el8.5.0+671+195e4563 | RLSA-2022:1821 |
| Rocky Linux:8 | python-wheel | 1:0.31.1-3.module+el8.5.0+671+195e4563 | RLSA-2022:1821 |
| Rocky Linux:8 | python2 | 0:2.7.18-10.module+el8.6.0+793+57002515.rocky.0.2 | RLSA-2022:1821 |
| Rocky Linux:8 | python2-pip | 0:9.0.3-19.module+el8.6.0+793+57002515 | RLSA-2022:1821 |
| Rocky Linux:8 | python2-rpm-macros | 0:3-38.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python2-setuptools | 0:39.0.1-13.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | python2-six | 0:1.11.0-6.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | pytz | 0:2017.2-12.module+el8.4.0+403+9ae17a31 | RLSA-2022:1821 |
| Rocky Linux:8 | pytz | 0:2017.2-12.module+el8.5.0+706+735ec4b3 | RLSA-2022:1821 |
| Rocky Linux:8 | scipy | 0:1.0.0-21.module+el8.5.0+671+195e4563 | RLSA-2022:1821 |
| Ubuntu:22.04:LTS | python3.10 | 3.10.12-1~22.04.16 | USN-8509-1 |
| Ubuntu:22.04:LTS | python3.10 | 3.10.12-1~22.04.4 | USN-6891-1 |
| Ubuntu:24.04:LTS | python3.12 | 3.12.3-1ubuntu0.15 | USN-8509-1 |
| Ubuntu:26.04:LTS | python3.14 | 3.14.4-1ubuntu0.1 | USN-8509-1 |
Affected products (as reported)
Weakness: CWE-252 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
References
- https://bugs.python.org/issue43285
- https://python-security.readthedocs.io/vuln/ftplib-pasv.html
- https://github.com/python/cpython/commit/0ab152c6b5d95caa2dc1a30fa96e10258b5f188e
- https://security-tracker.debian.org/tracker/CVE-2021-4189
- https://bugzilla.redhat.com/show_bug.cgi?id=2036020
- https://access.redhat.com/security/cve/CVE-2021-4189
- https://security.netapp.com/advisory/ntap-20221104-0004/
- [debian-lts-announce] 20230524 [SECURITY] [DLA 3432-1] python2.7 security update mailing-list
- [debian-lts-announce] 20230630 [SECURITY] [DLA 3477-1] python3.7 security update mailing-list
- https://lists.debian.org/debian-lts-announce/2024/12/msg00000.html
- https://cert-portal.siemens.com/productcert/html/ssa-398330.html