170 Lovable-apps lieten hun database open
Lovable bouwt een app voor je in een paar prompts. In 2025 bleek dat 170 van die apps hun database openzetten voor iedereen.
Wat er gebeurde
Op 20 maart 2025 ontdekte Matt Palmer, die bij Replit werkt, dat Linkable de e-mailadressen van ongeveer 500 gebruikers liet zien. Linkable is een site die met Lovable is gebouwd.
De dag erna scande hij 1.645 projecten uit de etalage "Launched" van Lovable. Bij 170 daarvan (ongeveer 10%), met samen 303 endpoints, kon een bezoeker zonder in te loggen data lezen. Het ging om namen, e-mailadressen, telefoonnummers, betaal- en abonnementsgegevens en API-sleutels van de bouwers, bijvoorbeeld voor Gemini en Google Maps.
Op 14 april 2025 meldde een andere engineer dat hij in 47 minuten meerdere sites uit die etalage had "gehackt". Bij een nieuwe test op 24 mei kon Palmer ook data schrijven: hij zette een betaling op "betaald", zonder Stripe.
Eind mei 2025 verscheen het lek als CVE-2025-48757. Lovable betwist die CVE en zegt dat elke klant zelf verantwoordelijk is voor de data in zijn app.
De oorzaak
Een Lovable-app praat vanuit de browser rechtstreeks met een Supabase-database. Dat gaat met een sleutel die bewust openbaar is. Dat is alleen veilig als elke tabel goede Row Level Security-regels (RLS) heeft.
In deze apps ontbraken die regels, of ze klopten niet. Dan opent de openbare sleutel de hele tabel. De beveiligingsscanner van Lovable uit april 2025 keek alleen of RLS aan stond, niet of de regels klopten.
De schade
170 van de 1.645 apps lieten gebruikersdata zien, via 303 endpoints. De CVE kreeg een CVSS-score van 9,3 (kritiek). Bij Linkable ging het om ongeveer 500 e-mailadressen.
Er is geen bron met cijfers over echt misbruik.
Wat beheer anders had gedaan
Controleer voor de livegang de toegangsregel van elke tabel. Test die van buitenaf met de openbare sleutel, en kijk niet alleen of RLS "aan" staat.
Houd geheime API-sleutels uit tabellen die de browser kan bereiken. Test opnieuw na elke wijziging, want een nieuwe tabel begint zonder regels.
Dit maakt de standaard van een platform niet veilig. Het voegt een menselijke controle toe die de bouwer oversloeg.
Beheer haalt niet elk risico weg. Het zorgt wel dat iemand kijkt voordat het misgaat, en dat er een back-up ligt als het toch gebeurt.