Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
dasel-melange-apko — dasel v3.3.1 को Melange के साथ पैकेज किया गया और न्यूनतम apko छवि के रूप में भेजा गया, CVE-2026-33320 के लिए पैच किया गया। | Kitploit
उपकरण/GitHubGitHub/rotavori/dasel-melange-apko
सामान्य उपयोगिताएँकंटेनर सुरक्षाभेद्यता विश्लेषणस्क्रिप्टिंग और स्वचालनDevSecOpsआपूर्ति श्रृंखला सुरक्षा
GitHubrotavori/dasel-melange-apko

dasel-melange-apko

dasel v3.3.1 को Melange के साथ पैकेज किया गया और न्यूनतम apko छवि के रूप में भेजा गया, CVE-2026-33320 के लिए पैच किया गया।

रिपॉजिटरी देखें
43 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

dasel v3.3.1 — Melange + apko बिल्ड, CVE-2026-33320 के लिए पैच किया गया

यह रिपॉज़िटरी dasel CLI (v3.3.1) को Melange के साथ एक APK के रूप में पैकेज करती है, apko के साथ एक न्यूनतम कंटेनर इमेज बनाती है, और v3.3.1 कोडबेस पर बने रहते हुए CVE-2026-33320 के लिए एक फिक्स लागू करती है (वर्जन बढ़ाना नहीं, बल्कि एक पैच)।

परिणाम ~4 MB की एक इमेज है जिसमें केवल स्टैटिक dasel बाइनरी है — कोई शेल नहीं, कोई पैकेज मैनेजर नहीं, कोई libc नहीं — जो एक गैर-रूट उपयोगकर्ता के रूप में चलती है।

रिपॉज़िटरी संरचना

root@kitploit:~
melange/
  dasel.yaml              # melange recipe: fetch v3.3.1, apply the patch, build the .apk
apko/
  dasel.yaml              # apko recipe: assemble a minimal image from the local .apk
patches/
  cve-2026-33320.patch    # the CVE fix (minimal backport of upstream 282943b onto v3.3.1)
  NOTES.md                # what the CVE is, severity, and how the fix works
tests/
  test.sh                 # runs the built IMAGE and asserts real behavior + the CVE fix
README.md

पूर्वापेक्षाएँ

  • Linux या WSL2 Ubuntu (Windows 10 पर WSL2 पर विकसित किया गया)।
  • Docker — Melange के बिल्ड-सैंडबॉक्स रनर के रूप में और अंतिम इमेज को लोड/चलाने के लिए उपयोग किया जाता है।
  • melange और apko PATH पर।

विकास के दौरान उपयोग किए गए संस्करण:

उपकरणसंस्करण
melange0.50.8
apko1.2.14
Docker29.5.2

नीचे दिए गए सभी कमांड रिपॉज़िटरी के रूट से चलाए जाते हैं।

बिल्ड और परीक्षण — सटीक कमांड

1. साइनिंग कुंजी बनाएं (एक बार)

root@kitploit:~
melange keygen

melange.rsa (निजी) और melange.rsa.pub (सार्वजनिक) बनाता है। दोनों gitignored हैं — कुंजियाँ उस व्यक्ति द्वारा पुनः उत्पन्न की जाती हैं जो बिल्ड को दोहराता है, कभी कमिट नहीं की जातीं।

2. पैकेज बनाएं

root@kitploit:~
melange build melange/dasel.yaml \
  --source-dir patches \
  --signing-key melange.rsa \
  --arch x86_64 \
  --runner docker

--source-dir patches बिल्ड सैंडबॉक्स के अंदर patches/cve-2026-33320.patch उपलब्ध कराता है, जहाँ रेसिपी का patch चरण इसे लागू करता है। आउटपुट: packages/x86_64/dasel-3.3.1-r0.apk (हस्ताक्षरित) और packages/x86_64/APKINDEX.tar.gz।

3. पैकेज का परीक्षण करें

melange test नए बने .apk को एक स्वच्छ वातावरण में स्थापित करता है और रेसिपी के test: ब्लॉक को चलाता है। इसे Wolfi रिपॉज़िटरी (busybox के लिए) और हमारी स्थानीय packages/ रिपॉज़िटरी (dasel के लिए) की आवश्यकता होती है, प्रत्येक अपनी साइनिंग कुंजी के साथ:

root@kitploit:~
melange test melange/dasel.yaml dasel \
  --arch x86_64 --runner docker \
  --repository-append https://packages.wolfi.dev/os \
  --keyring-append https://packages.wolfi.dev/os/wolfi-signing.rsa.pub \
  --repository-append "$(pwd)/packages" \
  --keyring-append melange.rsa.pub

जाँच करता है: dasel version 3.3.1 बताता है; एक वास्तविक JSON क्वेरी; एक JSON→YAML रूपांतरण; और यह कि एक billion-laughs YAML बम अस्वीकार कर दिया जाता है विस्तार गार्ड द्वारा (CVE-2026-33320 ठीक हो गया)।

4. इमेज बनाएं

root@kitploit:~
apko build apko/dasel.yaml dasel:test dasel.tar --arch x86_64
docker load < dasel.tar

आउटपुट: dasel.tar (एक लोड करने योग्य OCI इमेज) और एक SBOM (SPDX JSON)। apko टैग में आर्किटेक्चर जोड़ता है, इसलिए लोड की गई इमेज dasel:test-amd64 है।

इमेज स्थानीय रूप से बने पैकेज का उपभोग कैसे करती है (मुख्य बाधा)। apko/dasel.yaml ./packages को एक रिपॉज़िटरी के रूप में और ./melange.rsa.pub को एक कीरिंग के रूप में सूचीबद्ध करता है। इसलिए apko उसी सटीक dasel APK को स्थापित करता है जिसे melange build ने packages/x86_64/ में लिखा था — हमारी अपनी साइनिंग कुंजी के विरुद्ध सत्यापित — और नहीं कोई प्रीबिल्ट अपस्ट्रीम पैकेज। (रिपॉज़िटरी के रूट से apko build चलाएँ ताकि वे सापेक्ष पथ हल हो सकें।) यही पैकेज बिल्ड को इमेज बिल्ड से जोड़ता है।

5. इमेज परीक्षण चलाएँ

root@kitploit:~
./tests/test.sh

docker run के माध्यम से इमेज चलाता है और जाँच करता है (5 जाँचें): dasel मौजूद है और v3.3.1 बताता है, एक नेस्टेड JSON क्वेरी, एक JSON→YAML रूपांतरण, एक ऐरे-इंडेक्स क्वेरी, और YAML बम अस्वीकृत। कोई भी जाँच विफल होने पर स्क्रिप्ट गैर-शून्य (non-zero) स्थिति के साथ बाहर निकलती है (ताकि यह CI को गेट कर सके)। टैग को IMAGE=<tag> ./tests/test.sh के साथ ओवरराइड करें।

CVE-2026-33320 फिक्स

CVE-2026-33320 dasel के YAML रीडर में एक denial-of-service (CWE-674, अनियंत्रित recursion) है: असीमित YAML alias विस्तार के माध्यम से "billion laughs" हमला। dasel ने अपना स्वयं का UnmarshalYAML लागू किया और alias नोड्स को बिना किसी सीमा के पुनरावर्ती रूप से हल किया, जिससे अंतर्निहित लाइब्रेरी की अंतर्निहित सुरक्षा को दरकिनार कर दिया गया।

हम v3.3.1 स्रोत पर patches/cve-2026-33320.patch के रूप में केवल अपस्ट्रीम फिक्स (कमिट 282943b, v3.3.2 में जारी) को बैकपोर्ट करते हैं। यह विस्तार को गहराई सीमा (32) और एक साझा बजट (1000) से बांधता है, बिना सीमा के विस्तार करने के बजाय एक त्रुटि लौटाता है। हम जानबूझकर उन असंबंधित बग फिक्सों को बाहर रखते हैं जो v3.3.2 में भी जारी हुए थे, जिससे परिवर्तन न्यूनतम और ऑडिट योग्य बना रहे। पूर्ण विवरण के लिए patches/NOTES.md देखें।

डिज़ाइन निर्णय

  • पिन किया गया स्रोत। git-checkout expected-commit को v3.3.1 कमिट SHA पर पिन करता है, इसलिए यदि टैग को कभी भिन्न कोड पर पुनः इंगित किया जाता है तो बिल्ड विफल हो जाता है (सप्लाई-चेन सुरक्षा)।
  • न्यूनतम पैच। ऑडिट क्षमता के लिए केवल CVE फिक्स लागू किया जाता है — और कुछ नहीं।
  • स्टैटिक बाइनरी। CGO_ENABLED=0 के साथ बनाया गया (रेसिपी के बिल्ड वातावरण में सेट), इसलिए बाइनरी में कोई cgo और कोई साझा-लाइब्रेरी निर्भरता नहीं है — यही कारण है कि इमेज बिना libc/शेल/पैकेज-मैनेजर के जारी की जा सकती है।
  • न्यूनतम इमेज। apko की packages: सूची केवल dasel है; इमेज केवल हमारा स्थानीय रूप से बना पैकेज स्थापित करती है (हमारे melange.rsa.pub से सत्यापित)।
  • गैर-रूट। defense-in-depth के लिए इमेज uid 65532 (nonroot) के रूप में चलती है।
  • हस्ताक्षरित। पैकेज और पैकेज इंडेक्स दोनों हस्ताक्षरित हैं; apko हस्ताक्षर सत्यापित करता है।

मान्यताएँ

  • केवल x86_64 के लिए बिल्ड (विकास मशीन का आर्किटेक्चर)।
  • Melange के रनर के रूप में docker का उपयोग (bubblewrap मूल Linux पर भी काम करेगा)।
  • इमेज में कोई base-layout पैकेज नहीं है (इसलिए कोई /etc/os-release नहीं); इमेज में किसी चीज़ को इसकी आवश्यकता नहीं है। यह एक जानबूझकर न्यूनतमता का विकल्प है, जिसे wolfi-baselayout जोड़कर आसानी से उलटा जा सकता है।
  • बिल्ड पिन किए गए स्नैपशॉट के बजाय Wolfi के रोलिंग go और busybox को खींचता है, इसलिए यह मानता है कि Wolfi Go ≥ 1.25 (dasel की go.mod आवश्यकता) परोसता रहता है। dasel स्रोत कमिट द्वारा पिन किया गया है; बिल्ड टूलचेन को भी पिन करने से बिल्ड पूरी तरह से हर्मेटिक हो जाएगा (नीचे देखें)।

अधिक समय मिलने पर मैं क्या सुधार करता

  • अपस्ट्रीम के सटीक सीमा यूनिट टेस्ट पोर्ट करना (गहराई 32 बनाम 33, बजट 1000 बनाम 1001, मल्टी-डॉक्यूमेंट बजट रीसेट) ताकि हमारे ब्लैक-बॉक्स बजट/गहराई बम परीक्षणों की तुलना में बेहतर कवरेज मिल सके।
  • बिल्ड टूलचेन (विशिष्ट Wolfi go/busybox स्नैपशॉट) और एक निश्चित बिल्ड तिथि को पिन करना, ताकि पूरी तरह से हर्मेटिक, बिट-दर-बिट प्रतिलिपि योग्य बिल्ड प्राप्त हो (स्रोत पहले से ही कमिट-पिन है)।
  • ARM मशीनों के लिए मल्टी-आर्क बिल्ड (aarch64)।
  • cosign के साथ इमेज साइनिंग, और melange/apko रिलीज़ बाइनरी के हस्ताक्षर सत्यापित करना।
  • एक CI वर्कफ़्लो (GitHub Actions) ताकि हर पुश पर दोनों परीक्षण सूट पुनः बनाए और चलाए जा सकें।

सबमिशन नोट

  • उपरोक्त सभी कमांड WSL2 Ubuntu पर Docker Desktop के साथ चलाए गए और पास हुए।
  • melange build + melange test: पैकेज बिल्ड होता है, पैच सफाई से लागू होता है (सभी 7 हंक — 1 in parsing/yaml/yaml.go, 6 in parsing/yaml/yaml_reader.go), CVE बम परीक्षण सहित सभी पैकेज परीक्षण सफल हैं।
  • apko build + tests/test.sh: इमेज बिल्ड होती है (~4 MB सामग्री), सभी 5 इमेज परीक्षण सफल हैं।
  • ऊपर दिया गया "अधिक समय मिलने पर मैं क्या सुधार करता" अनुभाग उन अगले चरणों को सूचीबद्ध करता है जो मैं अधिक समय मिलने पर उठाऊँगा।
टूल डाउनलोड करें