CVE-2026-55250 in Maravel
Riassunto
di VulDB • 09/09/2026
Maravel, un framework PHP orientato all'iniezione di dipendenze, precedente alla versione 10.74.0 presenta una vulnerabilità ad alta severità di Token Replay (riutilizzo del token) derivante da uno scontro strutturale tra i motori di convalida dei token stateless e gli strati di caching relazionale ad alte prestazioni. Possono essere interessati qualsiasi applicazione con memoria cache ridotta che provoca un'evizione prematura per liberare spazio, nonché le applicazioni in esecuzione su macropay-solutions/maravel-framework che utilizzano tymon/jwt-auth per l'autenticazione dei token API e la gestione delle blacklist o altri pacchetti che svolgono funzioni analoghe. Questo rischio architetturale potrebbe impattare anche le applicazioni native Laravel che sfruttano i tag di cache in ambienti volatili o con limiti all'evizione specifici.
tymon/jwt-auth verifica automaticamente il supporto ai tag della cache. Se rilevato, avvolge forzatamente le voci della blacklist dei token (jti) dalla durata di 14 giorni all'interno di un tag relazionale tymon.jwt. In ambienti in cui è attivo il modello O(1) Atomic Lazy Eviction — sia nativamente dentro Maravel-Framework v20.x, sia manualmente backportato nella versione 10.x tramite i singleton del contenitore DI espliciti forniti nel PR #104 (App\Cache\TaggedCache e App\Cache\TagSet) — viene applicato un limite globale di tracciamento rigoroso (Container::TAGGED_CACHE_TTL_CAP_SECONDS) pari a 7.200 secondi (2 ore), al fine di proteggere il sistema dall'espansione indesiderata dell'indice in memoria. Questo limite tronca forzatamente la durata della blacklist da 14 giorni ad un massimo di 2 ore, dopo le quali le chiavi di tracciamento individuali scadono naturalmente e scompaiono dalla finestra attiva della cache.
Inoltre, poiché il motore ottimizzato implementa una matrice delle versioni generazionali per raggiungere velocità di flush O(1), qualsiasi invocazione programmatica o manuale di un flush o reset del tag (ad esempio Cache::tags([...])->flush()) incrementa istantaneamente l'indicatore master atomico interno. Ciò modifica l'hash composito crittografico calcolato (sha1($this->tags->getNamespace())) per tutti i componenti sovrapposti, rendendo immediatamente inaccessibile l'intero indice esistente. Di conseguenza, sia attraverso la naturale scadenza delle 2 ore che tramite un'esecuzione intermedia di flush del tag (come quando la cache pulisce naturalmente i valori vecchi per liberare memoria), le registrazioni dello stato di invalidazione vengono completamente cancellate. Poiché le firme crittografiche fisiche dei token rimangono strutturalmente valide fino a 14 giorni, i rubati, hijackati o legittimamente disconnessi vengono immediatamente e silenziosamente resuscitati su tutto il gateway API, lasciando l'applicazione criticamente vulnerabile ad attacchi diffusi di Token Replay.
Poiché questo problema è causato da un'assunzione architetturale upstream all'interno del pacchetto tymon/jwt-auth piuttosto che da un difetto core nel framework, non esiste alcun aggiornamento diretto della versione del framework in grado di bypassare safely questa collisione dei cicli di vita senza violare i vincoli di riciclo della cache aziendale. La versione 10.74.0 di Maravel ha introdotto un modo per backportare la nuova cache con tag corretta dalla serie 20.x alla 10.x risolvendo TagSet e TaggedCache tramite DI, ed è così che questa vulnerabilità latente del ciclo di vita architetturale è stata scoperta. Gli utenti devono applicare l'workaround di configurazione disaccoppiato descritto di seguito. Come soluzione temporanea, assicurarsi che la dimensione della memoria cache non generi evizioni naturali premature dalla cache per liberare spazio, eliminando gli ID JWT in blacklist prima della loro scadenza. Le applicazioni devono disaccoppiare i vettori di autenticazione piatti dal sottosistema di tagging relazionale. Questo costringe gli identificatori dei token a scrivere direttamente nello spazi delle chiavi principale come coppie chiave-valore piatte e non taggate, dove mantengono in modo sicuro il loro ciclo di vita completo di 14 giorni senza troncamenti.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.