Ruby before 2.4.3 allows Net::FTP command injection.
Ruby before 2.4.3 allows Net::FTP command injection. Net::FTP#get, getbinaryfile, gettextfile, put, putbinaryfile, and puttextfile use Kernel#open to open a local file. If the localfile argument starts with the "|" pipe character, the command following the pipe character is executed. The default value of localfile is File.basename(remotefile), so malicious FTP servers could cause arbitrary command execution.
- Опубликовано
- 15 дек. 2017 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 73,8 % · 99-й процентиль
- CWE
- CWE-78
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
57
В плане
Включите в обычный цикл установки исправлений.
- CVSS
- 35 / 40 · 8.8 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 22 / 30 · 73,8 %
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| ruby-lang | ruby | cpe:2.3:a:ruby-lang:ruby |
| debian | debian linux | cpe:2.3:o:debian:debian_linux |
| redhat | enterprise linux desktop | cpe:2.3:o:redhat:enterprise_linux_desktop |
| redhat | enterprise linux server | cpe:2.3:o:redhat:enterprise_linux_server |
| redhat | enterprise linux server aus | cpe:2.3:o:redhat:enterprise_linux_server_aus |
| redhat | enterprise linux server eus | cpe:2.3:o:redhat:enterprise_linux_server_eus |
| redhat | enterprise linux server tus | cpe:2.3:o:redhat:enterprise_linux_server_tus |
| redhat | enterprise linux workstation | cpe:2.3:o:redhat:enterprise_linux_workstation |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- debian debian linux7.0
- debian debian linux8.0
- debian debian linux9.0
- redhat enterprise linux desktop7.0
- redhat enterprise linux server7.0
- redhat enterprise linux server aus7.4
- redhat enterprise linux server aus7.6
- redhat enterprise linux server eus7.4
- redhat enterprise linux server eus7.5
- redhat enterprise linux server eus7.6
- redhat enterprise linux server tus7.4
- redhat enterprise linux server tus7.6
- redhat enterprise linux workstation7.0
- ruby-lang ruby2.4 и новее · до 2.4.2 включительно
- ruby-lang ruby2.3 и новее · до 2.3.5 включительно
- ruby-lang ruby2.2 и новее · до 2.2.8 включительно
- ruby-lang ruby2.5.0
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Alpine:v3.10 | ruby | с 2.2 · до 2.4.3-r0 | 2.4.3-r0 |
| Alpine:v3.3 | ruby | с 2.2 · до 2.2.9-r0 | 2.2.9-r0 |
| Alpine:v3.4 | ruby | с 2.2 · до 2.3.6-r0 | 2.3.6-r0 |
| Debian:7 | ruby1.8 | до 1.8.7.358-7.1+deb7u5 | 1.8.7.358-7.1+deb7u5 |
| Debian:7 | ruby1.9.1 | до 1.9.3.194-8.1+deb7u7 | 1.9.3.194-8.1+deb7u7 |
| Debian:8 | ruby2.1 | до 2.1.5-2+deb8u4 | 2.1.5-2+deb8u4 |
| Debian:9 | ruby2.3 | до 2.3.3-1+deb9u3 | 2.3.3-1+deb9u3 |
| Red Hat:enterprise_linux:7::client | ruby | до 0:2.0.0.648-33.el7_4 | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-debuginfo | до 0:2.0.0.648-33.el7_4 | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-devel | до 0:2.0.0.648-33.el7_4 | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-doc | до 0:2.0.0.648-33.el7_4 | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-irb | до 0:2.0.0.648-33.el7_4 | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-libs | до 0:2.0.0.648-33.el7_4 | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-tcltk | до 0:2.0.0.648-33.el7_4 | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-bigdecimal | до 0:1.2.0-33.el7_4 | 0:1.2.0-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-io-console | до 0:0.4.2-33.el7_4 | 0:0.4.2-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-json | до 0:1.7.7-33.el7_4 | 0:1.7.7-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-minitest | до 0:4.3.2-33.el7_4 | 0:4.3.2-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-psych | до 0:2.0.0-33.el7_4 | 0:2.0.0-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-rake | до 0:0.9.6-33.el7_4 | 0:0.9.6-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-rdoc | до 0:4.0.0-33.el7_4 | 0:4.0.0-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygems | до 0:2.0.14.1-33.el7_4 | 0:2.0.14.1-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygems-devel | до 0:2.0.14.1-33.el7_4 | 0:2.0.14.1-33.el7_4 |
| Red Hat:rhel_aus:7.3::server | ruby | до 0:2.0.0.648-30.el7_3 | 0:2.0.0.648-30.el7_3 |
+96
Тот же продукт
ruby-lang: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2008-3656Algorithmic complexity vulnerability in the WEBrick::HTTPUtils.split_header_value function in WEBrick::HTTP::DefaultFileHandler in WEBrick i52В плане
- CVE-2021-28966In Ruby through 3.0 on Windows, a remote attacker can submit a crafted path when a Web application handles a parameter with TmpDir.47В плане
- CVE-2017-14064Ruby through 2.2.7, 2.3.x through 2.3.4, and 2.4.x through 2.4.1 can expose arbitrary memory during a JSON.generate call.42В плане
- CVE-2017-17790The lazy_initialize function in lib/resolv.rb in Ruby through 2.4.3 uses Kernel#open, which might allow Command Injection attacks, as demons41В плане
- CVE-2016-2339An exploitable heap overflow vulnerability exists in the Fiddle::Function.new "initialize" function functionality of Ruby.41В плане
- CVE-2016-2337Type confusion exists in _cancel_eval Ruby's TclTkIp class method.41В плане
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| alpine:ruby | 2.4.3-r0 · Alpine:v3.10 | Реестр пакетов (OSV) |
| debian:ruby1.8 | 1.8.7.358-7.1+deb7u5 · Debian:7 | Реестр пакетов (OSV) |
| debian:ruby1.9.1 | 1.9.3.194-8.1+deb7u7 · Debian:7 | Реестр пакетов (OSV) |
| debian:ruby2.1 | 2.1.5-2+deb8u4 · Debian:8 | Реестр пакетов (OSV) |
| debian:ruby2.3 | 2.3.3-1+deb9u3 · Debian:9 | Реестр пакетов (OSV) |
| red hat:ruby | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:ruby-debuginfo | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:ruby-devel | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:ruby-doc | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:ruby-irb | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:ruby-libs | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:rubygem-bigdecimal | 0:1.2.0-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:rubygem-io-console | 0:0.4.2-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:rubygem-json | 0:1.7.7-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:rubygem-psych | 0:2.0.0-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:rubygem-rdoc | 0:4.0.0-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:rubygems | 0:2.0.14.1-33.el7_4 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| suse:ruby2.1 | 2.1.9-19.3.2 · SUSE:HPE Helion OpenStack 8 | Реестр пакетов (OSV) |
| suse:yast2-ruby-bindings | 3.1.53-9.8.1 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
Статус эксплойта
Есть proof of concept
Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.
Доказательство
- Запись Exploit-DB ×1
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Запись Exploit-DB | local | 2017-12-02 |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Первый PoC-13 дн.
- Публикация
- Сегодня30 сент. 2026 г.+3211 дн.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Вендор продукта присутствует в публичной программе. Сопоставление по имени; проверьте текст scope в программе.
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Пользователь должен открыть ссылку или посетить страницу.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-78 · Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')Вектор CVSS
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
nvd-primary
Первопричина
Пользовательский ввод вставляется в команду оболочки как текст. Оболочка может интерпретировать специальные символы во вводе как часть команды.
Ошибка в коде
Весь класс CWE-78Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
const host = req.body.host;exec("ping -c 1 " + host, onResult);Исправленный код
const host = req.body.host;if (!/^[a-z0-9.-]{1,253}$/i.test(host)) return res.sendStatus(400);execFile("ping", ["-c", "1", host], onResult);Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
- Command Line Execution through SQL InjectionCAPEC-108вероятность: Low · Very High
- Command DelimitersCAPEC-15вероятность: High · High
- Exploiting Multiple Input Interpretation LayersCAPEC-43вероятность: Medium · High
- Argument InjectionCAPEC-6вероятность: High · High
- OS Command InjectionCAPEC-88вероятность: High · High
Техники ATT&CK
—
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- www.securityfocus.com/bid/102204
- www.securitytracker.com/id/1042004
- access.redhat.com/errata/RHSA-2018:0378
- access.redhat.com/errata/RHSA-2018:0583
- access.redhat.com/errata/RHSA-2018:0584
- access.redhat.com/errata/RHSA-2018:0585
- access.redhat.com/errata/RHSA-2019:2806
- lists.debian.org/debian-lts-announce/2017/12/msg00024.html
- lists.debian.org/debian-lts-announce/2017/12/msg00025.html
- lists.debian.org/debian-lts-announce/2018/07/msg00012.html
- www.debian.org/security/2018/dsa-4259
- www.ruby-lang.org/en/news/2017/12/14/net-ftp-command-injection-cve-2017-17405/
- www.ruby-lang.org/en/news/2017/12/14/ruby-2-4-3-released/
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.