La Dependency Confusion sfrutta come i gestori di pacchetti scelgono da dove scaricare una dipendenza. Molte aziende usano pacchetti interni (azienda-utils) ospitati su un registry privato. Se un attaccante pubblica un pacchetto con lo stesso nome e una versione più alta sul registry pubblico (npm, PyPI), il gestore – configurato male – può preferirlo: scarica ed esegue il pacchetto dell'attaccante credendolo l'aggiornamento interno. Alex Birsan lo dimostrò nel 2021 bucando decine di grandi aziende con questa sola idea.
È imparentato con il typosquatting e con lo slopsquatting (i nomi di pacchetti che gli LLM inventano): tutte varianti dell'attacco alla supply chain via nome.
Le difese: scoping/namespace dei pacchetti interni (npm scopes, prefissi riservati), pinning con lockfile e hash verificati, configurare il gestore perché i pacchetti interni vengano solo dal registry privato (mai fallback al pubblico per quei nomi), e proxy/mirror controllati. Sul fronte automatico, uno strumento in pipeline come ai-dependency-guard valida le dipendenze contro i registry ufficiali – la stessa logica applicata a un problema imparentato.