В NPM выявлена недоработка, позволяющая определить существование пакетов в закрытых репозиториях. Проблема вызвана разным временем реакции при запросе существующего и несуществующего пакета сторонним пользователем, не имеющего доступа к репозиторию. При отсутствии доступа для любых пакетов в приватных репозиториях сервер registry.npmjs.org возвращает ошибку с кодом "404", но в случае существования пакета с запрошенным именем ошибка выдаётся с ощутимой задержкой. Атакующий может использовать данную особенность для определения наличия пакета при подборе имён пакетов по словарям. Определение имён пакетов в закрытых репозиториях может потребоваться для совершения атаки через смешивание зависимостей, манипулирующей пересечением имён зависимостей в публичных и внутренних репозиториях. Зная, какие внутренние NPM-пакеты присутствуют в корпоративных репозиториях, атакующий может разместить пакеты с теми же именами и более новыми номерами версий в публичном репозитории NPM. Если при сборке внутр
Атака на NPM, позволяющая определить наличие пакетов в приватных репозиториях
16 октября 202216 окт 2022
4
1 мин