La dependency confusion è un attacco alla supply chain in cui un sistema di build o uno strumento di sviluppo risolve la fonte del pacchetto errata e scarica un pacchetto pubblico malevolo invece di quello interno previsto. Ciò accade in genere quando un'organizzazione usa lo stesso nome o un nome simile per un pacchetto in un registro privato e in un registro pubblico, ma il processo di build non dà la priorità in modo rigoroso al feed privato.
È importante perché l'installazione dei pacchetti è spesso considerata affidabile e automatizzata. In linguaggi come Node.js, un pacchetto sostituito può attivare comportamenti al momento dell'installazione, inclusi gli script di lifecycle, prima che qualcuno noti la compromissione. I difensori riducono questo rischio usando pacchetti interni con scope o nomi univoci, imponendo la priorità del registro privato, bloccando le dipendenze su versioni specifiche e verificando la provenienza nelle pipeline CI/CD. Gli aggressori spesso si affidano a nomi di pacchetti interni trapelati da codice pubblico, script o risorse web per rendere il proprio pacchetto malevolo più convincente e più probabile da scaricare.



