FlawOpen

flawopen.com/Référence/Dependency Confusion

Dependency Confusion : confusion sur la source des paquets

High Severity CWE-829: Inclusion of Functionality from Untrusted Control Sphere Chaîne logicielle
ELI5 — Le fournisseur au nom ressemblant

Imaginez que votre équipe commande un composant dans un catalogue, mais que deux fournisseurs utilisent le même nom de produit. Si les règles ne désignent pas le fournisseur de confiance, la compilation peut recevoir un composant inattendu. Dependency Confusion est cette erreur de sélection de source : la compilation résout un paquet depuis un registre ou un espace de noms auquel l’organisation ne voulait pas faire confiance.

Boundary: Nom du paquet, espace de noms, configuration du registre et provenance du lockfile
Failure: Le résolveur peut obtenir un paquet du même nom depuis une source non prévue
Impact: Du code tiers non vérifié peut entrer dans la compilation ; les scripts peuvent s’exécuter s’ils sont activés
Remediation: Politique explicite espace de noms-registre, lockfiles vérifiés et compilation à privilèges minimaux

Comment survient Dependency Confusion

Le comportement dépend du gestionnaire et de sa configuration. Cas concret : pip avertit que combiner un --index-url privé avec un --extra-index-url public peut conduire à sélectionner un paquet public de même nom. npm choisit un registre selon le scope du paquet ou sa configuration par défaut ; il ne compare pas systématiquement les versions publiques et privées pour prendre la plus élevée. La cause est une politique de source ambiguë. Si le paquet est installé et ses scripts activés, ceux-ci s’exécutent avec les droits disponibles pour la tâche de compilation.

pip.conf et requirements.txt (sources ambiguës)Configuration risquée
[global]
index-url = https://packages.example.internal/simple
extra-index-url = https://pypi.org/simple

corp-auth-utils
.npmrc et package.json (routage explicite du scope)Exemple renforcé
@corp:registry=https://packages.example.internal/repository/npm/

{
  "dependencies": {
    "@corp/billing-engine": "1.2.0"
  }
}

Un chemin de défaillance Dependency Confusion

Contrôles d’ingénierie défensive

Explorer des sujets de sécurité et des analyses d’incidents connexes :Répertoire sécurité →

Références

À voir aussi Exposition du socket Docker : risques et défenses Injection de scripts GitHub Actions : entrées sûres Cosign GHSA-fx35-mq7g-6g98 : Bundle contourné