Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
POC_CVE-2026-46716 | Kitploit
Tools/GitHubGitHub/haerin-l/poc_cve-2026-46716
SchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFPenetrationstestsLernen & BildungLabs & Praxis
GitHubhaerin-l/poc_cve-2026-46716

POC_CVE-2026-46716

Repository anzeigen
vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-46716 — Mandantenübergreifende RCE in Nezha Monitoring durch Cron-API-Autorisierungsumgehung

Eine Laborumgebung zum Reproduzieren und Erkennen von CVE-2026-46716, einer kritischen Schwachstelle in Nezha Monitoring, bei der der Endpunkt POST /api/v1/cron keine Admin-Privilegienprüfungen durchführt und es Benutzern mit der Rolle RoleMember ermöglicht, mandantenübergreifende Remote-Codeausführung zu erreichen.


Schwachstellenübersicht

FeldDetails
CVE IDCVE-2026-46716
GHSAGHSA-99gv-2m7h-3hh9
CVSS9.9 (Kritisch) — AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Betroffene Versionennezhahq/nezha >= 1.4.0, < 1.14.15-0.20260517022419-d7526351cf97
Behobenv1.14.15-0.20260517022419-d7526351cf97 (Commit d7526351cf97, 2026-05-17)
CWECWE-862 (Fehlende Autorisierung), CWE-269 (Unsachgemäße Privilegienverwaltung), CWE-78 (OS-Befehlseinschleusung)

Grundursache

root@kitploit:~
Vulnerable path:
POST /api/v1/cron  →  commonHandler (JWT auth only, no role check)
  → CheckPermission(servers=[])
    → iterates empty list → returns true unconditionally
      → CronTrigger dispatches command to ALL servers via ServerShared map
        ❌ No admin check, no ownership validation → cross-tenant RCE

Patched path:
POST /api/v1/cron  →  commonHandler (same — HTTP 200 still returned for members)
  → CheckPermission(servers=[]) → true (unchanged)
    → CronTrigger: cronCanSendToServer(cr, s) checks cr.UserID == s.UserID
      ✅ Commands only dispatched to servers owned by the cron creator

Angriffsvoraussetzungen

#BedingungDetails
1Betroffene Nezha-Version

Laborarchitektur

root@kitploit:~
Host Machine
├── localhost:8008 ──→ Docker: nezha-vuln    (v1.14.14            ⚠ VULNERABLE)
└── localhost:8009 ──→ Docker: nezha-patched (commit d7526351cf97 ✓ PATCHED, built from source)

Voraussetzungen

ToolInstallation
Docker Desktopdocker.com
nucleibrew install nuclei
curl, python3auf macOS vorinstalliert

Ausführung

Schritt 1 — Laborumgebung einrichten

root@kitploit:~
bash scripts/01-setup.sh

Nach Abschluss:

root@kitploit:~
══════════════════════════════════════════════════════
 Lab ready!
══════════════════════════════════════════════════════
 Vulnerable  (v1.14.14) : http://localhost:8008
 Patched     (latest) : http://localhost:8009
 Admin       : admin / admin
 Member      : member / Memberpass123!
══════════════════════════════════════════════════════

Hinweis: Falls die API zur Erstellung des Mitgliedskontos von der erwarteten abweicht, erstellen Sie es manuell über die Nezha-Benutzeroberfläche unter http://localhost:8008 (Einstellungen → Benutzer).

Schritt 2 — CVE auslösen

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

Erwartete Ausgabe — verwundbar (v1.14.14):

root@kitploit:~
HTTP 200 — Cron created (id: 1)
⚠  RESULT: ADMIN CHECK BYPASSED — VULNERABLE

Erwartete Ausgabe — gepatcht:

root@kitploit:~
HTTP 403 — Access denied
✓  RESULT: Admin check enforced — PATCHED

Schritt 3 — Erkennung mit Nuclei

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

# Patched cluster → should produce no findings
nuclei -duc -t nuclei/CVE-2026-46716.yaml \
  -u http://localhost:8009 \
  -var username=admin \
  -var password=admin

Schritt 4 — Aufräumen

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

Verzeichnisstruktur

root@kitploit:~
nezha-cve-2026-46716-lab/
├── README.md
├── LAB_SETUP_GUIDE.md              # Lab setup guide (English)
├── VULNERABILITY_ANALYSIS.md       # Code-level vulnerability analysis (English)
├── NUCLEI_TEMPLATE_GUIDE.md        # Nuclei template design and test results (English)
├── docker-compose.yaml
│
├── REPORT/                         # Korean reports
│   ├── LAB_REPORT_KR.md
│   ├── Nuclei_Template_Report_KR.md
│   └── Vulnerability_Analysis_KR.md
│
├── nuclei/
│   └── CVE-2026-46716.yaml         # Nuclei detection template
│
└── scripts/
    ├── 01-setup.sh                 # Start containers, create member account
    ├── 03-trigger-cve.sh           # PoC: trigger auth bypass, verify result
    └── 99-teardown.sh              # Stop and remove all lab resources

Erkennungslogik des Nuclei-Templates

root@kitploit:~
Step 1  POST /api/v1/login  (admin credentials)
        → authenticate and extract JWT token

Step 2  GET /api/v1/setting
        → version field matched against vulnerable range (1.4.x – 1.14.14)
        → match  →  FINDING: vulnerable version detected
        → no match (>= 1.14.15 or "debug")  →  no finding

Sowohl die verwundbare als auch die gepatchte Version geben für POST /api/v1/cron mit servers:[], cover:1 HTTP 200 zurück — eine verhaltensbasierte Erkennung ist nicht möglich. Der Patch fügt lediglich eine Eigentümerprüfung innerhalb von CronTrigger zur Ausführungszeit hinzu, nicht auf API-Ebene. Admin-Anmeldedaten sind erforderlich, da GET /api/v1/setting das Feld version nur für RoleAdmin-Benutzer zurückgibt.


Referenzen

  • GHSA-99gv-2m7h-3hh9
  • NVD — CVE-2026-46716

Warnung: Alle Anmeldedaten in diesem Labor sind erfundene Testdaten, die ausschließlich für Sicherheitsforschung bestimmt sind. Niemals in der Produktion verwenden.

Tool herunterladen
< 1.14.15-0.20260517022419
2Authentifiziertes KontoRoleMember (niedrigste Berechtigungsstufe)
3Leere Serverliste"servers":[], "cover":1 umgeht CheckPermission