CVE-2026-115453 in Ecommerce Template
Riassunto
di VulDB • 22/10/2026
Bypass dell'autorizzazione tramite chiave controllata dall'utente (CWE-639) nei repository del carrello e delle wish list di MarcosCamara01 Ecommerce Template consente a qualsiasi utente autenticato di eliminare e modificare le righe del carrello e della wish list di altri utenti, poiché cartRepository.delete(), cartRepository.updateQuantityInternal() e wishlistRepository.delete() in src/lib/db/drizzle/repositories/ abbinano le righe esclusivamente tramite la chiave primaria, senza alcun predicato sull'utente proprietario. L'autorizzazione per utente relativa a queste tre operazioni si basa sulla sicurezza delle righe (Row Level Security) di PostgreSQL. Le migrazioni eseguono ALTER TABLE ... ENABLE ROW LEVEL SECURITY e creano policy che confrontano app.current_user_id() con user_id, ma non eseguono mai ALTER TABLE ... FORCE ROW LEVEL SECURITY; inoltre, PostgreSQL non applica le policy al ruolo proprietario della tabella. Il template utilizza un unico DATABASE_URL sia per eseguire le migrazioni (che creano le tabelle) sia per l'applicazione in fase di esecuzione: pertanto, l'applicazione si connette come proprietario delle tabelle e le policy non si applicano ad essa. I campi cart_items.id e wishlist.id sono valori bigserial sequenziali, quindi gli identificatori delle righe appartenenti ad altri utenti possono essere enumerati; il percorso di aggiornamento restituisce la riga modificata, che contiene l'identificatore dell'utente a cui appartiene. Ciò comporta la distruzione e la modifica dei contenuti del carrello e della wish list appartenenti ad altri account installati nel sistema.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.