Arbitrary File Overwrite in npm CLI
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 27/100)
- В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
- Вероятность эксплуатации в ближайшие 30 дней: 2,1% (FIRST EPSS); выше, чем у 81,7% записей.
- Может быть вызвана любым, у кого есть доступ через интернет. Достаточно учётной записи с низкими привилегиями. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
- Исправленная версия: nodejs-nodemon (AlmaLinux:8) 1.18.3-1.module_el8.3.0+2047+b07ac28e, 1.18.3-1.module_el8.3.0+2023+d2377ea3; nodejs-packaging (AlmaLinux:8) 17-3.module_el8.3.0+2023+d2377ea3, 17-3.module_el8.4.0+2521+c668cc9f, 17-3.module_el8.4.0+2224+b07ac28e; npm (Debian:12) 6.13.4+ds-2.
- Упоминается в национальных бюллетенях кибербезопасности Турции (siberguvenlik.gov.tr): 1.
Пока низкий приоритет. Обновитесь до nodejs-nodemon (AlmaLinux:8) 1.18.3-1.module_el8.3.0+2047+b07ac28e, 1.18.3-1.module_el8.3.0+2023+d2377ea3; nodejs-packaging (AlmaLinux:8) 17-3.module_el8.3.0+2023+d2377ea3, 17-3.module_el8.4.0+2521+c668cc9f, 17-3.module_el8.4.0+2224+b07ac28e; npm (Debian:12) 6.13.4+ds-2 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
Versions of the npm CLI prior to 6.13.4 are vulnerable to an Arbitrary File Overwrite. It fails to prevent existing globally-installed binaries to be overwritten by other package installations. For example, if a package was installed globally and created a serve binary, any subsequent installs of packages that also create a serve binary would overwrite the previous serve binary. This behavior is still allowed in local installations and also through install scripts. This vulnerability bypasses a user using the --ignore-scripts install option.
- Опубликовано
- 12 дек. 2019 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 2,1 % · 81-й процентиль
- CWE
- CWE-22
Инструменты для отчёта
Оценка срочности
27
Наблюдать
Пока низкий приоритет.
- CVSS
- 26 / 40 · 6.5 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 1 / 30 · 2,1 %
Оценка CNA и NVD
- NVD
- 6,5
- CNA · GitHub_M
- 7,7
- разница 1,2 балла
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Публичного эксплойта нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
У вас WordPress? Проверьте сайт бесплатно в WP Lens
Анализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
| Вендор | Продукт | CPE |
|---|---|---|
| npmjs | npm | cpe:2.3:a:npmjs:npm |
| opensuse | leap | cpe:2.3:o:opensuse:leap |
| oracle | graalvm | cpe:2.3:a:oracle:graalvm |
| fedoraproject | fedora | cpe:2.3:o:fedoraproject:fedora |
| redhat | enterprise linux | cpe:2.3:o:redhat:enterprise_linux |
| redhat | enterprise linux eus | cpe:2.3:o:redhat:enterprise_linux_eus |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- fedoraproject fedora31
- npmjs npmдо 6.13.4
- opensuse leap15.1
- oracle graalvm19.3.0.2
- redhat enterprise linux8.0
- redhat enterprise linux eus8.1
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
npm cli
- < 6.13.4 и новее · до 6.13.4затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| AlmaLinux:8 | nodejs-nodemon | до 1.18.3-1.module_el8.3.0+2047+b07ac28e | 1.18.3-1.module_el8.3.0+2047+b07ac28e |
| AlmaLinux:8 | nodejs-nodemon | до 1.18.3-1.module_el8.3.0+2023+d2377ea3 | 1.18.3-1.module_el8.3.0+2023+d2377ea3 |
| AlmaLinux:8 | nodejs-packaging | до 17-3.module_el8.3.0+2023+d2377ea3 | 17-3.module_el8.3.0+2023+d2377ea3 |
| AlmaLinux:8 | nodejs-packaging | до 17-3.module_el8.4.0+2521+c668cc9f | 17-3.module_el8.4.0+2521+c668cc9f |
| AlmaLinux:8 | nodejs-packaging | до 17-3.module_el8.4.0+2224+b07ac28e | 17-3.module_el8.4.0+2224+b07ac28e |
| Debian:12 | npm | до 6.13.4+ds-2 | 6.13.4+ds-2 |
| npm | npm | до 6.13.4 | 6.13.4 |
| openSUSE:Leap 15.1 | nodejs8 | до 8.17.0-lp151.2.9.1 | 8.17.0-lp151.2.9.1 |
| Red Hat:enterprise_linux:8::appstream | nodejs | до 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c | 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c |
| Red Hat:enterprise_linux:8::appstream | nodejs | до 1:12.14.1-1.module+el8.1.0+5466+30f75629 | 1:12.14.1-1.module+el8.1.0+5466+30f75629 |
| Red Hat:enterprise_linux:8::appstream | nodejs-debuginfo | до 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c | 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c |
| Red Hat:enterprise_linux:8::appstream | nodejs-debuginfo | до 1:12.14.1-1.module+el8.1.0+5466+30f75629 | 1:12.14.1-1.module+el8.1.0+5466+30f75629 |
| Red Hat:enterprise_linux:8::appstream | nodejs-debugsource | до 1:12.14.1-1.module+el8.1.0+5466+30f75629 | 1:12.14.1-1.module+el8.1.0+5466+30f75629 |
| Red Hat:enterprise_linux:8::appstream | nodejs-debugsource | до 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c | 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c |
| Red Hat:enterprise_linux:8::appstream | nodejs-devel | до 1:12.14.1-1.module+el8.1.0+5466+30f75629 | 1:12.14.1-1.module+el8.1.0+5466+30f75629 |
| Red Hat:enterprise_linux:8::appstream | nodejs-devel | до 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c | 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c |
| Red Hat:enterprise_linux:8::appstream | nodejs-devel-debuginfo | до 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c | 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c |
| Red Hat:enterprise_linux:8::appstream | nodejs-docs | до 1:12.14.1-1.module+el8.1.0+5466+30f75629 | 1:12.14.1-1.module+el8.1.0+5466+30f75629 |
| Red Hat:enterprise_linux:8::appstream | nodejs-docs | до 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c | 1:10.19.0-1.module+el8.1.0+5726+6ed65f8c |
| Red Hat:enterprise_linux:8::appstream | nodejs-nodemon | до 0:1.18.3-1.module+el8.1.0+3369+37ae6a45 | 0:1.18.3-1.module+el8.1.0+3369+37ae6a45 |
| Red Hat:enterprise_linux:8::appstream | nodejs-packaging | до 0:17-3.module+el8.1.0+3369+37ae6a45 | 0:17-3.module+el8.1.0+3369+37ae6a45 |
| Red Hat:enterprise_linux:8::appstream | npm | до 1:6.13.4-1.12.14.1.1.module+el8.1.0+5466+30f75629 | 1:6.13.4-1.12.14.1.1.module+el8.1.0+5466+30f75629 |
| Red Hat:enterprise_linux:8::appstream | npm | до 1:6.13.4-1.10.19.0.1.module+el8.1.0+5726+6ed65f8c | 1:6.13.4-1.10.19.0.1.module+el8.1.0+5726+6ed65f8c |
| Red Hat:rhel_e4s:8.0::appstream | nodejs | до 1:10.19.0-1.module+el8.0.0+5738+1362a79c | 1:10.19.0-1.module+el8.0.0+5738+1362a79c |
+29
Тот же продукт
npmjs: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2021-43616The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differ40В плане
- CVE-2019-16776Unauthorized File Access in npm CLI before before version 6.13.333Наблюдать
- CVE-2022-29244npm packing does not respect root-level ignore files in workspaces31Наблюдать
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2018-740822 февр. 2018 г. · An issue was discovered in an npm 5.7.0 2018-02-21 pre-release (marked as "next: 5.7.0" and therefore automatically installed by an "npm upg31Наблюдать
- Позже →CVE-2020-150957 июл. 2020 г. · Sensitive information exposure through logs in npm cli17Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| almalinux:nodejs-nodemon | 1.18.3-1.module_el8.3.0+2023+d2377ea3 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:nodejs-packaging | 17-3.module_el8.4.0+2224+b07ac28e · AlmaLinux:8 | Реестр пакетов (OSV) |
| debian:npm | 6.13.4+ds-2 · Debian:12 | Реестр пакетов (OSV) |
| npm:npm | 6.13.4 | Реестр пакетов (OSV) |
| opensuse:nodejs8 | 8.17.0-lp151.2.9.1 · openSUSE:Leap 15.1 | Реестр пакетов (OSV) |
| red hat:nodejs | 1:12.14.1-1.module+el8.1.0+5466+30f75629 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-debuginfo | 1:12.14.1-1.module+el8.1.0+5466+30f75629 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-debugsource | 1:12.14.1-1.module+el8.1.0+5466+30f75629 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-devel | 1:12.14.1-1.module+el8.1.0+5466+30f75629 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-devel-debuginfo | 1:10.19.0-1.module+el8.0.0+5738+1362a79c · Red Hat:rhel_e4s:8.0::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-docs | 1:12.14.1-1.module+el8.1.0+5466+30f75629 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-nodemon | 0:1.18.3-1.module+el8.1.0+3369+37ae6a45 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-packaging | 0:17-3.module+el8.1.0+3369+37ae6a45 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:npm | 1:6.13.4-1.12.14.1.1.module+el8.1.0+5466+30f75629 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:rh-nodejs10-nodejs | 0:10.19.0-1.el7 · Red Hat:rhel_software_collections:3::el7 | Реестр пакетов (OSV) |
| red hat:rh-nodejs10-nodejs-debuginfo | 0:10.19.0-1.el7 · Red Hat:rhel_software_collections:3::el7 | Реестр пакетов (OSV) |
| red hat:rh-nodejs10-nodejs-devel | 0:10.19.0-1.el7 · Red Hat:rhel_software_collections:3::el7 | Реестр пакетов (OSV) |
| rocky linux:nodejs-nodemon | 0:1.18.3-1.module+el8.3.0+101+f84c7154 · Rocky Linux:8 | Реестр пакетов (OSV) |
| rocky linux:nodejs-packaging | 0:17-3.module+el8.3.0+101+f84c7154 · Rocky Linux:8 | Реестр пакетов (OSV) |
| suse:nodejs10 | 10.18.0-1.15.1 · SUSE:Linux Enterprise Module for Web and Scripting 12 | Реестр пакетов (OSV) |
| suse:nodejs12 | 12.15.0-1.6.1 · SUSE:Linux Enterprise Module for Web and Scripting 12 | Реестр пакетов (OSV) |
| suse:nodejs6 | 6.17.1-11.30.1 · SUSE:OpenStack Cloud 7 | Реестр пакетов (OSV) |
| suse:nodejs8 | 8.17.0-3.25.1 · SUSE:Linux Enterprise Module for Web and Scripting 15 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Национальное уведомление (Управление кибербезопасности Турции / USOM)
Официальные уведомления, ссылающиеся на эту запись; рекомендации — на странице ведомства.
- TR-20-034 · 14 янв. 2020 г.(Node JS Güvenlik Güncellemesi)
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Достаточно учётной записи с низкими привилегиями.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- нет
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- нет
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Нет
- Влияние на целостность
- Высокое
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-22 · Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')Вектор CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/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
—
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 10)Свернуть
- access.redhat.com/errata/RHEA-2020:0330
- access.redhat.com/errata/RHSA-2020:0573
- access.redhat.com/errata/RHSA-2020:0579
- access.redhat.com/errata/RHSA-2020:0597
- access.redhat.com/errata/RHSA-2020:0602
- blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli
- github.com/npm/cli/security/advisories/GHSA-4328-8hgf-7wjr
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/Z36UKPO5F3PQ3Q2POMF5LEKXWAH5RUFP/
- security.gentoo.org/glsa/202003-48
- www.oracle.com/security-alerts/cpujan2020.html
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.