CVE-2026-27886 in Strapi
Riassunto
di VulDB • 15/06/2026
Strapi è un sistema di gestione dei contenuti (CMS) headless open source. Le versioni di Strapi a partire dalla 4.0.0 e precedenti alla 5.37.0 non sanitizzavano sufficientemente i parametri delle query durante il filtraggio dei contenuti tramite campi relazionali. Un attaccante non autenticato avrebbe potuto utilizzare il parametro della query `where` su qualsiasi content-type pubblicamente accessibile dotato di un campo `updatedBy` (o altro campo di relazione amministrativa) per eseguire un attacco boolean-oracle contro i campi privati nella tabella unita (`joined`) `admin_users`, incluso il campo `resetPasswordToken`. L'estrazione di un token di reset dell'amministratore tramite questo oracle rendeva possibile la completa assunzione del controllo degli account amministrativi senza autenticazione. Quando veniva applicato un filtro come `where[updatedBy][resetPasswordToken][$startsWith]=a` a un endpoint pubblico della Content API, la generazione sottostante delle query eseguiva un `LEFT JOIN` contro la tabella `admin_users` ed emetteva una clausola `WHERE` che faceva riferimento alla colonna unita. Il livello di sanitizzazione dei parametri della query non bloccava le catene di operatori che attraversavano gli schemi target relazionali per i quali il chiamante non aveva autorizzazioni di lettura, consentendo l'utilizzo del conteggio delle risposte come oracle a un bit su qualsiasi campo della tabella admin. La patch nella versione 5.37.0 introduce una sanitizzazione esplicita dei parametri della query al confine tra controller e servizio tramite tre nuove primitive: `strictParam`, `addQueryParams` e `addBodyParams`. Le catene di operatori che attraversano target relazionali ristretti vengono ora rifiutate prima di raggiungere il database.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.