Informazioni sul CVE-2025-27089
Overlapping policies allow update to non-allowed fields in directus
CWE ID: CWE-863
Base Score (CVSS): N/A
CVE: CVE-2025-27089
Descrizione: Directus è un’API in tempo reale e dashboard per la gestione del contenuto del database SQL. In versioni danneggiate, se due politiche sovrapposte per l’azione `update` consentono l’accesso a diversi campi, invece di verificare correttamente le autorizzazioni rispetto all’elemento per l’utente, è possibile permettere all’utente di aggiornare il supersettio di campi consentiti da qualsiasi politica. Ad esempio, una politica consente l’aggiornamento di `field_a` se `id == 1` e una politica consente l’aggiornamento di `field_b` se `id == 2`. L’utente con entrambe queste politiche può aggiornare sia `field_a` che `field_b` per gli elementi con `id` 1 e 2. Prima di v11, se un utente era autorizzato a aggiornare un elemento, era autorizzato a aggiornare i campi che applicavano alla sola persona dell’elemento. Con le politiche sovrapposte, non è più così chiaro e la unione dei campi potrebbe non essere i campi che l’utente è autorizzato a aggiornare per quel particolare elemento. La soluzione introdotta in questo PR è valutare le autorizzazioni per ogni campo che l’utente tenta di aggiornare nel query `validateItemAccess`, invece di verificare solo l’accesso all’elemento nel suo complesso. Questo si fa restituendo un flag che indica se l’utente ha accesso a quel campo. Questo utilizza lo stesso meccanismo di caso/quando utilizzato per rimuovere i campi non autorizzati, che è il cuore del motore di autorizzazione. Come risultato, per ogni elemento che viene verificato per l’accesso, si ottiene un elemento che ha uno o zero per tutti i campi richiesti. Questi risultati non sono utili per altro che verificare le autorizzazioni dei livelli di accesso ai campi. La verifica finale in `validateItemAccess` può fallire se il numero di elementi non corrisponde al numero di elementi verificati (cioè, l’utente non ha accesso all’elemento in ogni caso). Questo è un’insecureità che permette l’accesso non autorizzato a campi indesiderati, potenzialmente compromettendo il campo password per gli account utente. Questo è stato corretto in versione 11.1.2 e gli utenti sono invitati ad aggiornare. Non esistono workaround per questa vulnerabilità.
Vettore di attacco CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Punteggio CVSS
Il CVSS è un sistema di valutazione che misura la gravità di una vulnerabilità informatica considerando fattori come l’impatto potenziale, la probabilità di attacco e la facilità di esecuzione.
Riassunto: Accesso: Network, Privilegi: Low, Interazione utente: None, Confidenzialità: Low, Integrità: Low, Disponibilità: None.
Dettaglio del Vettore
Metrica | Valore | Significato | Descrizione |
---|---|---|---|
Attack Vector (AV) | N | Network | L’attacco può essere eseguito da remoto attraverso la rete. |
Attack Complexity (AC) | L | Low | L’attacco non richiede condizioni particolari. |
Privileges Required (PR) | L | Low | Richiede pochi privilegi. |
User Interaction (UI) | N | None | Non è richiesta interazione dell’utente. |
Scope (S) | U | Unchanged | Il raggio d’azione non cambia. |
Confidentiality Impact (C) | L | Low | Impatto limitato. |
Integrity Impact (I) | L | Low | Impatto limitato. |
Availability Impact (A) | N | None | Nessun impatto sulla disponibilità. |
Riferimenti esterni
- https://github.com/directus/directus/security/advisories/GHSA-99vm-5v2h-h6r6
- https://github.com/directus/directus/releases/tag/v11.1.2
Prodotti interessati
- directus – directus
Relazioni con altri prodotti
Produttore:directus
Prodotto: directus
Anno: 2025
CWE: CWE-863
CVSS: 0.0