FlawOpen

flawopen.com/संदर्भ/Dependency Confusion

Dependency Confusion: पैकेज स्रोत की गड़बड़ी कैसे होती है

High Severity CWE-829: Inclusion of Functionality from Untrusted Control Sphere सॉफ़्टवेयर सप्लाई चेन
आसान भाषा में — मिलते-जुलते नाम वाला आपूर्तिकर्ता

मान लें आपकी टीम किसी कैटलॉग से component मँगाती है, लेकिन दो suppliers एक ही product name इस्तेमाल करते हैं। यदि नियम भरोसेमंद supplier तय न करें, तो build को अनचाहा component मिल सकता है। Dependency Confusion पैकेज स्रोत चुनने की विफलता है: build ऐसे registry या namespace से dependency लेता है जिस पर संगठन भरोसा नहीं करना चाहता था।

Boundary: पैकेज नाम, namespace, registry configuration और lockfile का स्रोत
Failure: Resolver अनपेक्षित स्रोत से उसी नाम का पैकेज ला सकता है
Impact: बिना समीक्षा का third-party code build में आ सकता है; सक्षम होने पर install scripts चल सकती हैं
Remediation: स्पष्ट namespace-registry नीति, समीक्षा किए lockfiles और न्यूनतम अधिकार वाला build

Dependency Confusion कैसे होती है

व्यवहार package manager और configuration पर निर्भर करता है। pip दस्तावेज़ चेतावनी देते हैं कि निजी --index-url के साथ सार्वजनिक --extra-index-url जोड़ने पर उसी नाम का सार्वजनिक पैकेज चुना जा सकता है। npm package scope या default configuration से registry चुनता है; वह हमेशा versions की तुलना करके बड़ा version नहीं चुनता। मूल समस्या अस्पष्ट source policy है। सक्षम install scripts build job के उपलब्ध अधिकारों से चलती हैं।

pip.conf और requirements.txt (अस्पष्ट स्रोत)जोखिमपूर्ण configuration
[global]
index-url = https://packages.example.internal/simple
extra-index-url = https://pypi.org/simple

corp-auth-utils
.npmrc और package.json (scope की स्पष्ट routing)सुरक्षित उदाहरण
@corp:registry=https://packages.example.internal/repository/npm/

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

Dependency Confusion की विफलता-श्रृंखला

इंजीनियरिंग सुरक्षा नियंत्रण

संबंधित सुरक्षा विषय और घटना विश्लेषण देखें:सुरक्षा निर्देशिका →

संदर्भ

यह भी देखें Docker सॉकेट का खुलासा: जोखिम और बचाव GitHub Actions स्क्रिप्ट इंजेक्शन: सुरक्षित इनपुट Cosign GHSA-fx35-mq7g-6g98: Bundle बाईपास