Ansible fetch module before versions 2.5.15, 2.6.14, 2.7.8 has a path traversal vulnerability which allows copying and overwriting files out
Ansible fetch module before versions 2.5.15, 2.6.14, 2.7.8 has a path traversal vulnerability which allows copying and overwriting files outside of the specified destination in the local ansible controller host, by not restricting an absolute path.
- Опубликовано
- 27 мар. 2019 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 0,5 % · 42-й процентиль
- CWE
- CWE-22
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
16
Наблюдать
Пока низкий приоритет.
- CVSS
- 16 / 40 · 4.2 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,5 %
Оценка CNA и NVD
- NVD
- 4,2
- CNA · redhat
- 4,2
- совпадают
CVSS:3.0/AV:L/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| redhat | ansible | cpe:2.3:a:redhat:ansible |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- redhat ansible2.5.0 и новее · до 2.5.15
- redhat ansible2.6.0 и новее · до 2.6.14
- redhat ansible2.7.0 и новее · до 2.7.8
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (redhat). Не зависят от анализа CPE в NVD и обычно опережают его.
Red Hat Ansible
- 2.5.15, 2.6.14, 2.7.8затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Alpine:v3.10 | ansible | с 2.5.0 · до 2.8.11-r0 | 2.8.11-r0 |
| Alpine:v3.11 | ansible | с 2.5.0 · до 2.9.7-r0 | 2.9.7-r0 |
| Alpine:v3.13 | ansible-base | до 2.9.7-r0 | 2.9.7-r0 |
| Alpine:v3.8 | ansible | с 2.5.0 · до 2.5.15-r0 | 2.5.15-r0 |
| Alpine:v3.9 | ansible | с 2.5.0 · до 2.7.17-r0 | 2.7.17-r0 |
| Debian:12 | ansible | до 2.7.7+dfsg-1 | 2.7.7+dfsg-1 |
| Debian:9 | ansible | до 2.2.1.0-2+deb9u1 | 2.2.1.0-2+deb9u1 |
| PyPI | ansible | с 2.5.0 · до 2.5.15 | 2.5.15 |
| PyPI | ansible | с 2.6.0 · до 2.6.14 | 2.6.14 |
| PyPI | ansible | с 2.6.0a1 · до 2.6.14 | 2.6.14 |
| PyPI | ansible | с 2.7.0 · до 2.7.8 | 2.7.8 |
| PyPI | ansible | с 2.7.0a1 · до 2.7.8 | 2.7.8 |
| PyPI | ansible | до 2.5.15 | 2.5.15 |
| Red Hat:ansible_engine:2::el7 | ansible | до 0:2.7.8-1.el7ae | 0:2.7.8-1.el7ae |
| Red Hat:ansible_engine:2.5::el7 | ansible | до 0:2.5.15-1.el7ae | 0:2.5.15-1.el7ae |
| Red Hat:ansible_engine:2.5::el7 | ansible-doc | до 0:2.5.15-1.el7ae | 0:2.5.15-1.el7ae |
| Red Hat:ansible_engine:2.6::el7 | ansible | до 0:2.6.14-1.el7ae | 0:2.6.14-1.el7ae |
| Red Hat:openstack:14::el7 | ansible | до 0:2.6.19-1.el7ae | 0:2.6.19-1.el7ae |
| SUSE:HPE Helion OpenStack 8 | ansible | до 2.4.6.0-3.9.1 | 2.4.6.0-3.9.1 |
| SUSE:HPE Helion OpenStack 8 | ansible1 | до 1.9.6-7.3.1 | 1.9.6-7.3.1 |
| SUSE:HPE Helion OpenStack 8 | ardana-ansible | до 8.0+git.1589740980.6c3bcdc-3.73.1 | 8.0+git.1589740980.6c3bcdc-3.73.1 |
| SUSE:HPE Helion OpenStack 8 | ardana-cluster | до 8.0+git.1585685203.3e71e49-3.36.1 | 8.0+git.1585685203.3e71e49-3.36.1 |
| SUSE:HPE Helion OpenStack 8 | ardana-freezer | до 8.0+git.1586539529.b7d295f-3.21.1 | 8.0+git.1586539529.b7d295f-3.21.1 |
| SUSE:HPE Helion OpenStack 8 | ardana-input-model | до 8.0+git.1589740934.0e0ad61-3.39.1 | 8.0+git.1589740934.0e0ad61-3.39.1 |
+96
Тот же продукт
redhat: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2014-4678The safe_eval function in Ansible before 1.6.4 does not properly restrict the code subset, which allows remote attackers to execute arbitrar41В плане
- CVE-2014-4657The safe_eval function in Ansible before 1.5.4 does not properly restrict the code subset, which allows remote attackers to execute arbitrar40В плане
- CVE-2014-4967Multiple argument injection vulnerabilities in Ansible before 1.6.7 allow remote attackers to execute arbitrary code by leveraging access to40В плане
- CVE-2014-4966Ansible before 1.6.7 does not prevent inventory data with "{{" and "lookup" substrings, and does not prevent remote data with "{{" substring40В плане
- CVE-2017-7550A flaw was found in the way Ansible (2.3.x before 2.3.3, and 2.4.x before 2.4.1) passed certain parameters to the jenkins_plugin module.40В плане
- CVE-2016-8628Ansible before version 2.2.0 fails to properly sanitize fact variables sent from the Ansible controller.37Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| alpine:ansible | 2.8.11-r0 · Alpine:v3.10 | Реестр пакетов (OSV) |
| alpine:ansible-base | 2.9.7-r0 · Alpine:v3.13 | Реестр пакетов (OSV) |
| debian:ansible | 2.7.7+dfsg-1 · Debian:12 | Реестр пакетов (OSV) |
| opensuse:ansible | 2.7.8-bp150.3.6.1 · openSUSE:Leap 15.0 | Реестр пакетов (OSV) |
| PyPI:ansible | 2.5.15 | Реестр пакетов (OSV) |
| PyPI:ansible | 2.6.14 | Реестр пакетов (OSV) |
| PyPI:ansible | 2.7.8 | Реестр пакетов (OSV) |
| red hat:ansible | 0:2.7.8-1.el7ae · Red Hat:ansible_engine:2::el7 | Реестр пакетов (OSV) |
| red hat:ansible-doc | 0:2.5.15-1.el7ae · Red Hat:ansible_engine:2.5::el7 | Реестр пакетов (OSV) |
| suse:ansible | 2.2.3.0-12.2 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:ansible | 2.7.8-bp150.3.6.1 · SUSE:Package Hub 12 | Реестр пакетов (OSV) |
| suse:crowbar-core | 4.0+git.1580209654.1d112d31f-9.66.5 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:crowbar-ha | 4.0+git.1585316203.d6ad2c8-4.52.4 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:crowbar-openstack | 4.0+git.1589804581.9972163f0-9.71.4 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:grafana | 4.6.5-1.14.1 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:keepalived | 2.0.19-1.8.1 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:kibana | 4.6.3-5.1 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:memcached | 1.5.17-3.6.1 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:monasca-installer | 20180608_12.47-12.1 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:openstack-dashboard-theme-SUSE | 2016.2-5.12.4 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:openstack-manila | 3.0.1~dev30-4.12.2 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:openstack-manila-doc | 3.0.1~dev30-4.12.3 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват 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:L/AC:L/PR:H/UI:R/S:C/C:L/I:L/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/msg00021.html
- lists.opensuse.org/opensuse-security-announce/2019-06/msg00077.html
- lists.opensuse.org/opensuse-security-announce/2019-08/msg00020.html
- packetstormsecurity.com/files/172837/Ansible-Fetch-Path-Traversal.html
- access.redhat.com/errata/RHSA-2019:3744
- access.redhat.com/errata/RHSA-2019:3789
- bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-3828
- github.com/ansible/ansible/pull/52133
- usn.ubuntu.com/4072-1/
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.