Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
POC_CVE-2026-46716 — Ambiente di laboratorio riproducibile per CVE-2026-46716, una RCE critica cross-tenant in Nezha Monitoring tramite bypass dell'autorizzazione API cron. Include modello di rilevamento Nuclei e cluster vulnerabili/patchati basati su Docker. | Kitploit
Strumenti/GitHubGitHub/haerin-l/poc_cve-2026-46716
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubhaerin-l/poc_cve-2026-46716

POC_CVE-2026-46716

Ambiente di laboratorio riproducibile per CVE-2026-46716, una RCE critica cross-tenant in Nezha Monitoring tramite bypass dell'autorizzazione API cron. Include modello di rilevamento Nuclei e cluster vulnerabili/patchati basati su Docker.

Vedi Repository
144 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-46716 — RCE cross-tenant in Nezha Monitoring tramite bypass dell'autorizzazione dell'API Cron

Un ambiente di laboratorio per riprodurre e rilevare CVE-2026-46716, una vulnerabilità critica in Nezha Monitoring in cui l'endpoint POST /api/v1/cron non esegue controlli sui privilegi di amministratore, consentendo agli utenti RoleMember di ottenere l'esecuzione remota di codice cross-tenant.


Panoramica della vulnerabilità

CampoDettagli
CVE IDCVE-2026-46716
GHSAGHSA-99gv-2m7h-3hh9
CVSS9.9 (Critica) — AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Versioni interessatenezhahq/nezha >= 1.4.0, < 1.14.15-0.20260517022419-d7526351cf97
Versione correttav1.14.15-0.20260517022419-d7526351cf97 (commit d7526351cf97, 2026-05-17)
CWECWE-862 (Autorizzazione mancante), CWE-269 (Gestione impropria dei privilegi), CWE-78 (Iniezione di comandi del sistema operativo)

Causa principale

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

Prerequisiti dell'attacco

#CondizioneDettagli
1Versione Nezha vulnerabile< 1.14.15-0.20260517022419
2Account autenticatoRoleMember (livello di privilegio più basso)
3Lista server vuota"servers":[], "cover":1 aggira CheckPermission

Architettura del laboratorio

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

Prerequisiti

StrumentoInstallazione
Docker Desktopdocker.com
nucleibrew install nuclei
curl, python3preinstallati su macOS

Come eseguire

Passo 1 — Configurare l'ambiente di laboratorio

bash scripts/01-setup.sh

Al termine:

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

Nota: Se l'API di creazione dell'account membro differisce da quanto previsto, crealo manualmente tramite l'interfaccia Nezha all'indirizzo http://localhost:8008 (Impostazioni → Utenti).

Passo 2 — Attivare la CVE

bash scripts/03-trigger-cve.sh

Output previsto — vulnerabile (v1.14.14):

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

Output previsto — corretto:

HTTP 403 — Access denied
✓  RESULT: Admin check enforced — PATCHED

Passo 3 — Rilevamento con Nuclei

# 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

Passo 4 — Pulizia dell'ambiente

bash scripts/99-teardown.sh

Struttura delle directory

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

Logica di rilevamento del template Nuclei

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

Sia le versioni vulnerabili che quelle corrette restituiscono HTTP 200 per POST /api/v1/cron con servers:[], cover:1 — il rilevamento comportamentale non è possibile. La patch aggiunge solo la validazione della proprietà all'interno di CronTrigger in fase di esecuzione, non a livello API. Le credenziali di amministratore sono necessarie perché GET /api/v1/setting restituisce il campo version solo per gli utenti RoleAdmin.


Riferimenti

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

Avvertenza: Tutte le credenziali in questo laboratorio sono dati di test fittizi utilizzati esclusivamente per scopi di ricerca sulla sicurezza. Non utilizzarle mai in produzione.

Scarica lo strumento