
नमूना प्रोजेक्ट जो CVE-2024-29415 को दबाने के लिए VEX का उपयोग करता है।
यह नमूना प्रोजेक्ट node-ip npm पैकेज पर निर्भर करता है जो CVE-2024-29415 के लिए संवेदनशील है।
हालाँकि, चूंकि हमारा प्रोजेक्ट सीधे संवेदनशील फ़ंक्शन .isPublic() का उपयोग नहीं करता है, यह CVE-2024-29415 के लिए शोषणीय नहीं है।
मैं अपने प्रोजेक्ट को Docker इमेज के रूप में पैकेज कर सकता हूँ:
docker buildx build -t felipecruz1638514/node-ip-vex:v1 .
और यह जाँचने के लिए Docker Scout विश्लेषण चला सकता हूँ कि क्या मेरा प्रोजेक्ट CVE-2024-29415 के लिए संवेदनशील है:
docker scout cves felipecruz1638514/node-ip-vex:v1 --only-cve-id CVE-2024-29415
✓ Image stored for indexing
✓ Indexed 221 packages
✓ Provenance obtained from attestation
✗ Detected 1 vulnerable package with 1 vulnerability
## Overview
│ Analyzed Image
────────────────────┼─────────────────────────────────────
Target │ felipecruz1638514/node-ip-vex:v1
digest │ 972354a74233
platform │ linux/arm64
vulnerabilities │ 0C 1H 0M 0L
size │ 48 MB
packages │ 221
## Packages and Vulnerabilities
0C 1H 0M 0L ip 2.0.1
pkg:npm/[email protected]
✗ HIGH CVE-2024-29415 [Server-Side Request Forgery (SSRF)]
https://scout.docker.com/v/CVE-2024-29415
Affected range : <=2.0.1
Fixed version : not fixed
1 vulnerability found in 1 package
LOW 0
MEDIUM 0
HIGH 1
CRITICAL 0
इस कमांड का आउटपुट दिखाता है कि यह CVE इमेज में npm पैकेज [email protected] को प्रभावित करता है।
अगला कदम एक VEX दस्तावेज़ जनरेट करना है जो इस संदर्भ को जोड़े कि केवल इसलिए कि इसमें एक संवेदनशील पैकेज - [email protected] - है, इसका मतलब यह नहीं है कि कमजोरी CVE-2024-29415 के लिए शोषणीय है।
हम VEX दस्तावेज़ बनाने के लिए vexctl का उपयोग कर सकते हैं:
vexctl create \
--author="[email protected]" \
--product="pkg:docker/felipecruz1638514/node-ip-vex@v2" \
--subcomponents="pkg:npm/[email protected]" \
--vuln="CVE-2024-29415" \
--status="not_affected" \
--justification="vulnerable_code_not_in_execute_path" \
--file="CVE-2024-29415.vex.json"
यह जाँचने के लिए कि क्या CVE को दबा दिया गया है, हम इमेज को एक नए टैग (v2) के तहत फिर से बना सकते हैं और VEX कथन को इमेज फ़ाइलसिस्टम में कॉपी कर सकते हैं। वह कदम मौजूदा Dockerfile में COPY . . का उपयोग करके पहले से ही कवर किया गया है।
docker buildx build -t felipecruz1638514/node-ip-vex:v2 .
इसके बाद, VEX दस्तावेज़ लोड करके Docker Scout विश्लेषण फिर से चलाएं:
docker scout cves felipecruz1638514/node-ip-vex:v2 --only-cve-id CVE-2024-29415 --vex-location .
✓ Image stored for indexing
✓ Indexed 324 packages
✓ Loaded 1 VEX document
✗ Detected 1 vulnerable package with 1 vulnerability
## Overview
│ Analyzed Image
────────────────────┼─────────────────────────────────────
Target │ felipecruz1638514/node-ip-vex:v2
digest │ 646daafacd8e
platform │ linux/arm64
vulnerabilities │ 0C 1H 0M 0L
size │ 76 MB
packages │ 324
## Packages and Vulnerabilities
0C 1H 0M 0L ip 2.0.1
pkg:npm/[email protected]
✗ HIGH CVE-2024-29415 [Server-Side Request Forgery (SSRF)]
https://scout.docker.com/v/CVE-2024-29415
Affected range : <=2.0.1
Fixed version : not fixed
VEX : not affected [vulnerable code not in execute path]
: [email protected]
1 vulnerability found in 1 package
LOW 0
MEDIUM 0
HIGH 1
CRITICAL 0
ध्यान दें कि उपरोक्त आउटपुट में CVE-2024-29415 को दबा दिया गया है:
VEX : not affected [vulnerable code not in execute path]
: [email protected]
इसके अलावा, आप दबाए गए CVE को फ़िल्टर करने के लिए --only-vex-affected फ़्लैग का उपयोग कर सकते हैं:
docker scout cves felipecruz1638514/node-ip-vex:v2 --only-cve-id CVE-2024-29415 --vex-location . --only-vex-affected
✓ SBOM of image already cached, 324 packages indexed
✓ Loaded 1 VEX document
✓ No vulnerable package detected
## Overview
│ Analyzed Image
────────────────────┼─────────────────────────────────────
Target │ felipecruz1638514/node-ip-vex:v2
digest │ 646daafacd8e
platform │ linux/arm64
vulnerabilities │ 0C 0H 0M 0L
size │ 76 MB
packages │ 324
अंत में, आइए इमेज को Docker Scout (scout.docker.com) पर पुश करें और UI में इसका निरीक्षण करें:
docker buildx build --sbom=false --provenance=false -t felipecruz1638514/node-ip-vex:v2 --push .
नोट: इमेज फ़ाइलसिस्टम में एम्बेडेड VEX दस्तावेज़ उन इमेज के लिए नहीं माने जाते जिनमें प्रमाणपत्र (attestations) होते हैं। यदि आपकी इमेज में कोई प्रमाणपत्र है, तो Docker Scout केवल प्रमाणपत्रों में अपवादों की तलाश करेगा, न कि इमेज फ़ाइलसिस्टम में। यही कारण है कि हमने
docker buildx buildकमांड में SBOM और प्रमाणपत्र को अक्षम कर दिया है।
Docker Scout वेबसाइट पर v2 टैग अब उच्च गंभीरता वाली CVE-2024-29415 कमजोरी नहीं दिखाता है क्योंकि Scout इमेज फ़ाइलसिस्टम में एम्बेडेड VEX दस्तावेज़ को ध्यान में रखता है।

इमेज विवरण पृष्ठ पर, हम VEX दस्तावेज़ देख सकते हैं जो इमेज फ़ाइलसिस्टम से लोड किया गया था:
