Автоматизиран инструмент за обновяване наблюдава регистъра с пакети, улавя нова версия в момента на нейното публикуване и отваря заявка за сливане (pull request) за вашия екип. Това е задачата, за която е създаден. През септември 2025 г. тази скорост изигра лоша шега. Атакуващ фишира идентификационните данни на един от поддържащите пакети в npm и пусна компрометирани версии на „chalk“, „debug“ и около дузина други пакети. Заедно тези пакети се изтеглят повече от 2 милиарда пъти седмично, а инжектираният код пренаписваше адресите на криптовалутни портфейли във всяко браузърно приложение, което го зареждаше.

Компрометираните версии бяха активни около два часа, преди общността да ги засече и npm да ги свали. Два часа е бързо време за реакция. Но това е и напълно достатъчно време за един инструмент за автоматично обновяване да забележи новата версия, да изпрати заявка за сливане и да постави зловредния код пред очите на вашите проверяващи кода.

Сега Dependabot на GitHub изчаква. За версии, които не са свързани със сигурността, той изчаква поне три дни след публикуването на дадена версия, преди да отвори заявка за сливане. Опцията за период на охлаждане (cooldown) в dependabot.yml контролира този времеви прозорец, така че даден проект може да го увеличи или намали.

Два вида обновявания, едно забавяне

Dependabot върши две отделни задачи. Обновяванията за сигурност реагират на вече известна уязвимост: появява се бюлетин за сигурност за пакет, който използвате, и Dependabot отваря заявка за сливане, за да преминете към коригираната версия. Обновяванията на версиите поддържат вашите зависимости актуални при излизането на нови версии.

Тридневното забавяне засяга единствено обновяванията на версиите. Обновяванията за сигурност все още се отварят в момента на появата на бюлетина за сигурност, тъй като задържането им би означавало да се отложи отстраняването на уязвимост, за която обществеността вече знае.

Компрометираната компилация на популярен пакет обикновено има кратък живот. Тя се публикува, разпространява се навсякъде, където се инсталира, и бива засичана – обикновено в рамките на няколко часа. Компрометираните версии на Solana web3.js, Axios и ua-parser-js следваха точно тази траектория.

Базата данни с бюлетини за сигурност на GitHub е регистрирала повече от 6500 бюлетина за зловреден код в npm за годината, приключваща през май 2026 г. Това прави около 18 новорегистрирани зловредни пакета в npm на ден. Периодът на изчакване ви предпазва от този начален прозорец на експозиция и дава време версията да бъде подложена на проверка, преди да стигне до вас.

Анализът на 21 широко отразени инцидента по веригата за доставки през последните няколко години показва един и същ ритъм всеки път. Зловредната версия се публикува и в рамките на няколко часа някой я засича и тя бива свалена. Кратък период на изчакване би филтрирал повечето от тези публикации, преди някой да ги е инсталирал.

Три дни ви изтласкват извън прозореца, в който се развиват повечето от тези атаки. Това също така избягва задържането на вашите зависимости по-дълго от необходимото. Други инструменти в общността се спряха на същата цифра, което поддържа поведението последователно за разработчиците, работещи с различни инструменти.

Периодът на изчакване предполага, че зловредният код действа бързо. Карлин Чери, продуктов мениджър в GitHub, който работи по Dependabot, посочва какво пропуска този подход: „Той помага малко срещу атаки, които играят дългосрочна игра, включително задни вратички (backdoors), оставени неактивни в версиите, саботаж от страна на поддържащите кода или компрометирана система за компилация.“

Така че периодът на изчакване заема своето място като един от няколкото защитни слоя. Фиксирайте зависимостите си с lock-файлове. Изключвайте инсталационните скриптове в средите за непрекъсната интеграция (CI), където е възможно. Ограничавайте обхвата на токените във вашите тръбопроводи за изграждане (pipelines) и преглеждайте обновяванията, преди да ги слеете.

Забавянето е включено по подразбиране, а даден проект може да настрои прозореца или да зададе различни закъснения за доверени вътрешни пакети и публични регистри. Това премахва един бърз и често срещан път на заразяване на вашите машини. Останалата част от веригата за доставки все още изисква наблюдение.