urllib in Python 2.x through 2.7.16 supports the local_file: scheme, which makes it easier for remote attackers to bypass protection mechani
urllib in Python 2.x through 2.7.16 supports the local_file: scheme, which makes it easier for remote attackers to bypass protection mechanisms that blacklist file: URIs, as demonstrated by triggering a urllib.urlopen('local_file:///etc/passwd') call.
- Опубликовано
- 23 мар. 2019 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 11,8 % · 96-й процентиль
- CWE
- CWE-22
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
40
В плане
Включите в обычный цикл установки исправлений.
- CVSS
- 36 / 40 · 9.1 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 4 / 30 · 11,8 %
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| python | python | cpe:2.3:a:python:python |
| opensuse | leap | cpe:2.3:o:opensuse:leap |
| debian | debian linux | cpe:2.3:o:debian:debian_linux |
| fedoraproject | fedora | cpe:2.3:o:fedoraproject:fedora |
| canonical | ubuntu linux | cpe:2.3:o:canonical:ubuntu_linux |
| redhat | enterprise linux desktop | cpe:2.3:o:redhat:enterprise_linux_desktop |
| redhat | enterprise linux eus | cpe:2.3:o:redhat:enterprise_linux_eus |
| redhat | enterprise linux server | cpe:2.3:o:redhat:enterprise_linux_server |
| redhat | enterprise linux server eus | cpe:2.3:o:redhat:enterprise_linux_server_eus |
| redhat | enterprise linux tus | cpe:2.3:o:redhat:enterprise_linux_tus |
| redhat | enterprise linux workstation | cpe:2.3:o:redhat:enterprise_linux_workstation |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- canonical ubuntu linux12.04
- canonical ubuntu linux14.04
- canonical ubuntu linux16.04
- canonical ubuntu linux18.04
- canonical ubuntu linux19.04
- debian debian linux8.0
- debian debian linux9.0
- fedoraproject fedora29
- fedoraproject fedora30
- opensuse leap15.0
- opensuse leap42.3
- python python2.0 и новее · до 2.7.17
- python python3.5.0 и новее · до 3.5.8
- python python3.6.0 и новее · до 3.6.9
- python python3.7.0 и новее · до 3.7.4
- redhat enterprise linux desktop7.0
- redhat enterprise linux desktop8.0
- redhat enterprise linux eus8.1
- redhat enterprise linux eus8.2
- redhat enterprise linux eus8.4
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| AlmaLinux:8 | python-psycopg2-doc | до 2.7.5-7.module_el8.6.0+2781+fed64c13 | 2.7.5-7.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-attrs | до 17.4.0-10.module_el8.6.0+2781+fed64c13 | 17.4.0-10.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-chardet | до 3.0.4-10.module_el8.6.0+2781+fed64c13 | 3.0.4-10.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-coverage | до 4.5.1-4.module_el8.6.0+2781+fed64c13 | 4.5.1-4.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-Cython | до 0.28.1-7.module_el8.6.0+2781+fed64c13 | 0.28.1-7.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-dns | до 1.15.0-10.module_el8.6.0+2781+fed64c13 | 1.15.0-10.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-docs | до 2.7.16-2.module_el8.6.0+2781+fed64c13 | 2.7.16-2.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-docs-info | до 2.7.16-2.module_el8.6.0+2781+fed64c13 | 2.7.16-2.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-docutils | до 0.14-12.module_el8.6.0+2781+fed64c13 | 0.14-12.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-funcsigs | до 1.0.2-13.module_el8.6.0+2781+fed64c13 | 1.0.2-13.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-idna | до 2.5-7.module_el8.6.0+2781+fed64c13 | 2.5-7.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-ipaddress | до 1.0.18-6.module_el8.6.0+2781+fed64c13 | 1.0.18-6.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-markupsafe | до 0.23-19.module_el8.6.0+2781+fed64c13 | 0.23-19.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-mock | до 2.0.0-13.module_el8.6.0+2781+fed64c13 | 2.0.0-13.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-pluggy | до 0.6.0-8.module_el8.6.0+2781+fed64c13 | 0.6.0-8.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-psycopg2 | до 2.7.5-7.module_el8.6.0+2781+fed64c13 | 2.7.5-7.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-psycopg2-debug | до 2.7.5-7.module_el8.6.0+2781+fed64c13 | 2.7.5-7.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-psycopg2-tests | до 2.7.5-7.module_el8.6.0+2781+fed64c13 | 2.7.5-7.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-py | до 1.5.3-6.module_el8.6.0+2781+fed64c13 | 1.5.3-6.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-PyMySQL | до 0.8.0-10.module_el8.6.0+2781+fed64c13 | 0.8.0-10.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-pysocks | до 1.6.8-6.module_el8.6.0+2781+fed64c13 | 1.6.8-6.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-pytest | до 3.4.2-13.module_el8.6.0+2781+fed64c13 | 3.4.2-13.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-pytest-mock | до 1.9.0-4.module_el8.6.0+2781+fed64c13 | 1.9.0-4.module_el8.6.0+2781+fed64c13 |
| AlmaLinux:8 | python2-pytz | до 2017.2-12.module_el8.6.0+2781+fed64c13 | 2017.2-12.module_el8.6.0+2781+fed64c13 |
+96
Тот же продукт
python: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2016-5636Integer overflow in the get_data function in zipimport.c in CPython (aka Python) before 2.7.12, 3.x before 3.4.5, and 3.5.x before 3.5.2 all47В плане
- CVE-2007-4559Directory traversal vulnerability in the (1) extract and (2) extractall functions in the tarfile module in Python allows user-assisted remot47В плане
- CVE-2021-3177Python 3.x through 3.9.1 has a buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution in certain Pyth46В плане
- CVE-2014-4650The CGIHTTPServer module in Python 2.7.5 and 3.3.4 does not properly handle URLs in which URL encoding is used for path separators, which al46В плане
- CVE-2018-1000802Python Software Foundation Python (CPython) version 2.7 contains a CWE-77: Improper Neutralization of Special Elements used in a Command ('C45В плане
- CVE-2020-27619In Python 3 through 3.9.0, the Lib/test/multibytecodec_support.py CJK codec tests call eval() on content retrieved via HTTP.42В плане
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| almalinux:python-psycopg2-doc | 2.7.5-7.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-attrs | 17.4.0-10.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-chardet | 3.0.4-10.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-coverage | 4.5.1-4.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-Cython | 0.28.1-7.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-dns | 1.15.0-10.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-docs | 2.7.16-2.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-docs-info | 2.7.16-2.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-docutils | 0.14-12.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-funcsigs | 1.0.2-13.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-idna | 2.5-7.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:python2-PyMySQL | 0.8.0-10.module_el8.6.0+2781+fed64c13 · AlmaLinux:8 | Реестр пакетов (OSV) |
| alpine:python2 | 2.7.16-r1 · Alpine:v3.10 | Реестр пакетов (OSV) |
| debian:python2.7 | 2.7.16-2 · Debian:11 | Реестр пакетов (OSV) |
| debian:python3.4 | 3.4.2-1+deb8u5 · Debian:8 | Реестр пакетов (OSV) |
| debian:python3.5 | 3.5.3-1+deb9u2 · Debian:9 | Реестр пакетов (OSV) |
| opensuse:python | 2.7.14-lp150.6.10.1 · openSUSE:Leap 15.0 | Реестр пакетов (OSV) |
| red hat:python | 0:2.7.5-86.el7 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:python-debug | 0:2.7.5-86.el7 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:python-debuginfo | 0:2.7.5-86.el7 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:python-libs | 0:2.7.5-86.el7 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:python27-python | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| red hat:python27-python-debug | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| red hat:python27-python-debuginfo | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| red hat:python27-python-devel | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| red hat:python27-python-libs | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| red hat:python27-python-test | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| red hat:python27-python-tools | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| red hat:python27-tkinter | 0:2.7.16-6.el6 · Red Hat:rhel_software_collections:3::el6 | Реестр пакетов (OSV) |
| rocky linux:babel | 0:2.5.1-9.module+el8.4.0+403+9ae17a31 · Rocky Linux:8 | Реестр пакетов (OSV) |
+14
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- нет
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-22 · Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')Вектор CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
nvd-primary
Первопричина
Имя файла, переданное пользователем, объединяется с разрешённым каталогом, но не проверяется, остаётся ли результат внутри этого каталога.
Ошибка в коде
Весь класс CWE-22Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
const file = path.join(ROOT, req.query.name);res.sendFile(file);Исправленный код
const file = path.resolve(ROOT, req.query.name);if (!file.startsWith(ROOT + path.sep)) { return res.sendStatus(400);}res.sendFile(file);Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
- Path TraversalCAPEC-126вероятность: High · Very High
- Using Slashes and URL Encoding Combined to Bypass Validation LogicCAPEC-64вероятность: High · High
- Manipulating Web Input to File System CallsCAPEC-76вероятность: High · Very High
- Using Escaped Slashes in Alternate EncodingCAPEC-78вероятность: High · High
- Using Slashes in Alternate EncodingCAPEC-79вероятность: High · High
Техники ATT&CK
—
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- lists.opensuse.org/opensuse-security-announce/2019-04/msg00092.html
- lists.opensuse.org/opensuse-security-announce/2019-06/msg00050.html
- packetstormsecurity.com/files/154927/Slackware-Security-Advisory-python-Updates.html
- www.securityfocus.com/bid/107549
- access.redhat.com/errata/RHSA-2019:1700
- access.redhat.com/errata/RHSA-2019:2030
- access.redhat.com/errata/RHSA-2019:3335
- access.redhat.com/errata/RHSA-2019:3520
- github.com/python/cpython/pull/11842
- lists.apache.org/thread.html/r1b103833cb5bc8466e24ff0ecc5e75b45a705334ab6a444e64e840a0%40%3Cissues.bookkeeper.apache.org%3E
- lists.debian.org/debian-lts-announce/2019/06/msg00022.html
- lists.debian.org/debian-lts-announce/2019/07/msg00011.html
- lists.debian.org/debian-lts-announce/2020/07/msg00011.html
- lists.debian.org/debian-lts-announce/2020/08/msg00034.html
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/HQEQLXLOCR3SNM3AA5RRYJFQ5AZBYJ4L/
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/KRYFIMISZ47NTAU3XWZUOFB7CYL62KES/
- seclists.org/bugtraq/2019/Oct/29
- security.gentoo.org/glsa/202003-26
- security.netapp.com/advisory/ntap-20190404-0004/
- usn.ubuntu.com/4127-1/
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.