getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command i
getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.
- BDU:2019-03251
- DLA-1871-1
- DSA-4467-1
- DSA-4487-1
- openSUSE-SU-2019:1551-1
- openSUSE-SU-2019:1561-1
- openSUSE-SU-2019:1759-1
- openSUSE-SU-2019:1796-1
- openSUSE-SU-2019:1997-1
- openSUSE-SU-2024:11081-1
- openSUSE-SU-2024:11497-1
- RHSA-2019:1619
- RHSA-2019:1774
- RHSA-2019:1793
- RHSA-2019:1947
- SUSE-SU-2019:14078-1
- SUSE-SU-2019:1456-1
- SUSE-SU-2019:1457-1
- Опубликовано
- 5 июн. 2019 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 19,0 % · 97-й процентиль
- CWE
- CWE-78
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
40
В плане
Включите в обычный цикл установки исправлений.
- CVSS
- 34 / 40 · 8.6 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 6 / 30 · 19,0 %
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- neovim neovimдо 0.3.6
- vim vimдо 8.1.1365
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Alpine:v3.10 | vim | до 8.1.1365-r0 | 8.1.1365-r0 |
| Alpine:v3.7 | vim | до 8.0.1359-r2 | 8.0.1359-r2 |
| Alpine:v3.8 | vim | до 8.1.1365 | 8.1.1365 |
| Debian:12 | neovim | до 0.3.4-3 | 0.3.4-3 |
| Debian:12 | vim | до 2:8.1.0875-4 | 2:8.1.0875-4 |
| Debian:8 | vim | до 2:7.4.488-7+deb8u4 | 2:7.4.488-7+deb8u4 |
| Debian:9 | neovim | до 0.1.7-4+deb9u1 | 0.1.7-4+deb9u1 |
| Debian:9 | vim | до 2:8.0.0197-4+deb9u2 | 2:8.0.0197-4+deb9u2 |
| openSUSE:Leap 15.0 | neovim | до 0.3.7-lp151.2.7.1 | 0.3.7-lp151.2.7.1 |
| openSUSE:Leap 15.0 | vim | до 8.0.1568-lp151.5.3.1 | 8.0.1568-lp151.5.3.1 |
| openSUSE:Tumbleweed | neovim | до 0.5.1-1.1 | 0.5.1-1.1 |
| openSUSE:Tumbleweed | vim | до 8.2.3408-1.2 | 8.2.3408-1.2 |
| Red Hat:enterprise_linux:6::client | vim | до 2:7.4.629-5.el6_10.2 | 2:7.4.629-5.el6_10.2 |
| Red Hat:enterprise_linux:6::client | vim-common | до 2:7.4.629-5.el6_10.2 | 2:7.4.629-5.el6_10.2 |
| Red Hat:enterprise_linux:6::client | vim-debuginfo | до 2:7.4.629-5.el6_10.2 | 2:7.4.629-5.el6_10.2 |
| Red Hat:enterprise_linux:6::client | vim-enhanced | до 2:7.4.629-5.el6_10.2 | 2:7.4.629-5.el6_10.2 |
| Red Hat:enterprise_linux:6::client | vim-filesystem | до 2:7.4.629-5.el6_10.2 | 2:7.4.629-5.el6_10.2 |
| Red Hat:enterprise_linux:6::client | vim-minimal | до 2:7.4.629-5.el6_10.2 | 2:7.4.629-5.el6_10.2 |
| Red Hat:enterprise_linux:6::client | vim-X11 | до 2:7.4.629-5.el6_10.2 | 2:7.4.629-5.el6_10.2 |
| Red Hat:enterprise_linux:7::client | vim | до 2:7.4.160-6.el7_6 | 2:7.4.160-6.el7_6 |
| Red Hat:enterprise_linux:7::client | vim-common | до 2:7.4.160-6.el7_6 | 2:7.4.160-6.el7_6 |
| Red Hat:enterprise_linux:7::client | vim-debuginfo | до 2:7.4.160-6.el7_6 | 2:7.4.160-6.el7_6 |
| Red Hat:enterprise_linux:7::client | vim-enhanced | до 2:7.4.160-6.el7_6 | 2:7.4.160-6.el7_6 |
| Red Hat:enterprise_linux:7::client | vim-filesystem | до 2:7.4.160-6.el7_6 | 2:7.4.160-6.el7_6 |
+35
Тот же продукт
vim: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2008-2712Vim 7.1.314, 6.4, and other versions allows user-assisted remote attackers to execute arbitrary commands via Vim scripts that do not properl42В плане
- CVE-2022-0318Heap-based Buffer Overflow in vim/vim40В плане
- CVE-2017-6350An integer overflow at an unserialize_uep memory allocation site would occur for vim before patch 8.0.0378, if it does not properly validate40В плане
- CVE-2017-6349An integer overflow at a u_read_undo memory allocation site would occur for vim before patch 8.0.0377, if it does not properly validate valu40В плане
- CVE-2017-5953vim before patch 8.0.0322 does not properly validate values for tree length when handling a spell file, which may result in an integer overf40В плане
- CVE-2008-3076The Netrw plugin 125 in netrw.vim in Vim 7.2a.10 allows user-assisted attackers to execute arbitrary code via shell metacharacters in filena40В плане
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| alpine:vim | 8.1.1365-r0 · Alpine:v3.10 | Реестр пакетов (OSV) |
| debian:neovim | 0.3.4-3 · Debian:12 | Реестр пакетов (OSV) |
| debian:vim | 2:8.1.0875-4 · Debian:12 | Реестр пакетов (OSV) |
| opensuse:neovim | 0.3.1-bp150.2.6.1 · openSUSE:Leap 15.0 | Реестр пакетов (OSV) |
| opensuse:vim | 8.0.1568-lp151.5.3.1 · openSUSE:Leap 15.0 | Реестр пакетов (OSV) |
| red hat:vim | 2:7.4.160-6.el7_6 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:vim-common | 2:7.4.160-6.el7_6 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:vim-common-debuginfo | 2:8.0.1763-11.el8_0 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:vim-debuginfo | 2:7.4.160-6.el7_6 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:vim-debugsource | 2:8.0.1763-11.el8_0 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:vim-enhanced | 2:7.4.160-6.el7_6 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:vim-enhanced-debuginfo | 2:8.0.1763-11.el8_0 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:vim-filesystem | 2:7.4.160-6.el7_6 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:vim-minimal | 2:7.4.160-6.el7_6 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:vim-minimal-debuginfo | 2:8.0.1763-11.el8_0 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:vim-X11 | 2:7.4.160-6.el7_6 · Red Hat:enterprise_linux:7::client | Реестр пакетов (OSV) |
| red hat:vim-X11-debuginfo | 2:8.0.1763-11.el8_0 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| suse:neovim | 0.3.1-bp150.2.6.1 · SUSE:Package Hub 15 | Реестр пакетов (OSV) |
| suse:vim | 7.2-8.21.3.1 · SUSE:Linux Enterprise Point of Sale 11 SP3 | Реестр пакетов (OSV) |
Статус эксплойта
Есть proof of concept
Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.
Доказательство
- Запись Exploit-DB ×1
- Репозиторий PoC на GitHub ×5
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Запись Exploit-DB | local | 2019-06-04 |
| Репозиторий PoC на GitHub | stars:9 | 2019-06-06 |
| Репозиторий PoC на GitHub | stars:2 | 2019-06-18 |
| Репозиторий PoC на GitHub | stars:0 | 2020-10-26 |
| Репозиторий PoC на GitHub | stars:1 | 2021-05-20 |
| Репозиторий PoC на GitHub | stars:0 | 2022-07-26 |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Первый PoC-1 дн.
- Публикация
- Сегодня10 окт. 2026 г.+2684 дн.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана пользователем с локальным доступом к системе.
- Учётная запись или пароль не требуются.
- Пользователь должен открыть ссылку или посетить страницу.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- высокое · работа сервиса может быть нарушена
Влияние может выйти за пределы уязвимого компонента (область действия меняется).
- Вектор атаки
- Локальный
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Требуется
- Область действия
- Изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-78 · Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')Вектор CVSS
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:C/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
—
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- security.gentoo.org/glsa/202003-04
- support.f5.com/csp/article/K93144355
- lists.opensuse.org/opensuse-security-announce/2019-06/msg00031.html
- lists.opensuse.org/opensuse-security-announce/2019-06/msg00036.html
- lists.opensuse.org/opensuse-security-announce/2019-06/msg00037.html
- lists.opensuse.org/opensuse-security-announce/2019-07/msg00034.html
- lists.opensuse.org/opensuse-security-announce/2019-07/msg00050.html
- lists.opensuse.org/opensuse-security-announce/2019-08/msg00075.html
- www.securityfocus.com/bid/108724
- access.redhat.com/errata/RHSA-2019:1619
- access.redhat.com/errata/RHSA-2019:1774
- access.redhat.com/errata/RHSA-2019:1793
- access.redhat.com/errata/RHSA-2019:1947
- bugs.debian.org/930020
- bugs.debian.org/930024
- github.com/neovim/neovim/pull/10082
- github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040
- lists.debian.org/debian-lts-announce/2019/08/msg00003.html
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/2BMDSHTF754TITC6AQJPCS5IRIDMMIM7/
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TRIRBC2YRGKPAWVRMZS4SZTGGCVRVZPR/
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.