Lekt je vibe-coded app bedrijfsdata? Waarom AI-gebouwde dashboards een pentest nodig hebben
Iedereen bouwt een werkende app vanuit een tekstprompt met tools zoals Lovable of Bolt, en die apps belanden in productie met gebroken autorisatie en blootgestelde data. Scanners missen het. Dit is wat een pentest op een vibe-coded app vindt.
TL;DR
- Tools zoals Lovable en Bolt laten iedereen een werkende webapp bouwen vanuit een tekstprompt, en die apps belanden vaak in productie met een rechtstreekse verbinding naar je bedrijfssystemen en data.
- Onderzoek naar duizenden publiek uitgerolde vibe-coded apps vond blootgestelde databasegegevens, API-sleutels en persoonsgegevens, vaak binnen enkele uren vindbaar.
- De meest voorkomende fouten: geen autorisatie tussen gebruikers, secrets die in de frontend staan, en een database waarbij row-level security uitgeschakeld is.
- Geautomatiseerde scanners missen deze categorie fouten stelselmatig. In één gecontroleerde test vonden twee veelgebruikte commerciële scanners geen enkele van de high- of critical-bevindingen die een menselijke tester wél bevestigde.
- Een web- en AI-systemen pentest met menselijke validatie vindt wat de eigen controle van het platform en je scanner laten liggen.
Wanneer wie de app bouwde nooit een regel code schreef
Iemand op marketing had een intern dashboard nodig. Iemand op HR wilde snel een tool om sollicitaties te verzamelen. Ze dienden geen ticket in bij IT en wachtten niet op een development-sprint. Ze beschreven wat ze wilden aan een AI-tool zoals Lovable of Bolt, en binnen een uur hadden ze een werkende app. Ze zag er af uit. Ze deelden de link. Ze ging live.
Dit is vibe coding, en het is intussen een normale manier waarop software binnen organisaties opduikt. Het probleem is niet dat de app er onaf uitziet. Het probleem is dat ze er perfect af uitziet terwijl de beveiligingslaag eronder nooit gebouwd, nagekeken of getest werd. Wanneer we een web application pentest op zo'n app uitvoeren, is het patroon telkens hetzelfde: de interface werkt, en de autorisatielaag erachter staat wagenwijd open.
Wat er echt misgaat
Vibe-coding platformen genereren een volledige applicatie, inclusief backend en database, vanuit natuurlijke taal. Wie de prompt schrijft, kijkt de gegenereerde code zelden na en kan dat vaak ook niet. Dat laat drie fouten over die keer op keer terugkomen.
Secrets die in de frontend staan
AI-gegenereerde apps stoppen databasegegevens, service-keys of API-tokens regelmatig rechtstreeks in code die naar de browser wordt gestuurd. Wie de developer tools opent, kan ze gewoon lezen. Beveiligingsbedrijf Escape.tech scande begin 2026 5.600 publiek uitgerolde vibe-coded apps en vond meer dan 400 blootgestelde secrets, waaronder API-sleutels en access tokens, naast meer dan 2.000 kritieke kwetsbaarheden. Elk daarvan zat in een live productiesysteem.
Geen autorisatie tussen gebruikers
De meest voorkomende ernstige fout is broken object level authorisation: de app controleert nooit of de ingelogde gebruiker het opgevraagde record eigenlijk wel mag zien. Verander een ID in het verzoek en je krijgt de data van iemand anders te zien. Precies deze fout trof Lovable in april 2026 op platformniveau: wekenlang waren broncode, databasegegevens en chatgeschiedenissen van projecten leesbaar voor elk gratis account, ongeacht hoe zorgvuldig de individuele bouwer zijn app had ingesteld.
De database die standaard openstaat
Veel vibe-coded apps draaien op een backend waar row-level security, de controle die verhindert dat één gebruiker de hele tabel uitleest, gewoon uitgeschakeld staat. In een demo werkt de app prima, want er is maar één gebruiker. In productie, met echte records van echte mensen, betekent het dat de volledige dataset één verzoek verwijderd is.
"Is dat niet de verantwoordelijkheid van het platform?"
Dat is de eerste vraag die de meeste IT-managers stellen, en het eerlijke antwoord is nee. Platformaanbieders leggen de beveiliging van de gegenereerde app bij de gebruiker. Lovable stelt zelf publiek dat de scan voor publicatie aanbevelingen geeft en dat het aan de gebruiker is om die op te volgen. Wanneer een niet-technische persoon de app bouwt, wordt die keuze nooit gemaakt, want die weet niet dat de aanbevelingen bestaan of wat ze betekenen.
Er is een tweede reden waarom het bij jou terechtkomt. Onderzoek van RedAccess vond ongeveer 380.000 publiek toegankelijke assets gebouwd met AI-coding tools, waaronder zo'n 5.000 met gevoelige bedrijfsdata. Veel daarvan doken op tijdens onderzoek naar shadow AI, oftewel ongeautoriseerd gebruik van deze tools door medewerkers zonder enige controle van het bedrijf. Als een dashboard dat je team bouwde je klantdata lekt, is dat jouw incident om af te handelen, niet dat van het platform.
Waarom je scanner het niet vindt
De geruststellende aanname is dat een geautomatiseerde scan deze problemen wel oppikt. Het bewijs zegt iets anders. In een gecontroleerde test in 2026 werden drie AI-gebouwde applicaties met bevestigde exploiteerbare kwetsbaarheden door twee van de meest gebruikte commerciële scanners gehaald. Samen vonden die scanners geen enkele van de high- of critical-bevindingen. Niet één.
De reden is structureel. Gebroken autorisatie is geen patroon in de code, het is een ontbrekende controle in de logica. Een scanner die zoekt naar bekende foute code-signaturen ziet een afwezigheid niet. Een menselijke tester werkt zoals een echte aanvaller: verandert een ID, wisselt een token, en kijkt wat de applicatie teruggeeft. Daar komen deze fouten boven. Het is ook waarom onze AI systems pentesting rond manuele validatie is opgebouwd en niet rond scanner-output alleen. Datzelfde principe geldt zodra een app op eigen houtje echte systemen mag bereiken, iets wat we behandelen in testen wat een AI-agent in productie kan bereiken.
Hoe een pentest op een vibe-coded app eruitziet
We behandelen een vibe-coded app zoals een aanvaller dat doet: als een live productiesysteem met echte data erachter, niet als een prototype. Onze ethical hackers controleren of de ene gebruiker bij de records van een andere kan, of gegevens of sleutels blootliggen in de frontend of in de configuratie, of de database toegangscontrole afdwingt, en of AI-functies die de app aanroept gemanipuleerd kunnen worden om data prijs te geven die ze niet mogen tonen. Elke bevinding wordt manueel bevestigd op reële exploiteerbaarheid, zodat je een rapport krijgt van wat een aanvaller echt kan doen, niet een lijst met theoretische waarschuwingen.
Je hoeft de teams die deze tools bouwen niet af te remmen. Je moet weten, vóór de app echte data bevat, of dat veilig is.
Veelgestelde vragen
Wat is een vibe-coded app?
Een vibe-coded app is een applicatie die je bouwt door ze in gewone taal te beschrijven aan een AI-tool zoals Lovable of Bolt, die vervolgens automatisch de code, backend en database genereert. Wie de app bouwt, heeft vaak geen ontwikkelachtergrond en kijkt de gegenereerde code niet na, waardoor beveiligingsgaten onopgemerkt blijven.
Zijn apps gebouwd met Lovable of Bolt veilig om in productie te gebruiken?
Dat kan, maar niet standaard. Onderzoek naar duizenden live vibe-coded apps vond blootgestelde gegevens, ontbrekende autorisatie tussen gebruikers en databases met uitgeschakelde toegangscontrole. Dat de app correct werkt in een demo zegt niets over of ze veilig is met echte data. Een web application pentest is de manier om dat te weten te komen voor ze gevoelige informatie bevat.
Regelt het platform de beveiliging niet voor mij?
Nee. Vibe-coding platformen leggen de verantwoordelijkheid voor de beveiliging van de gegenereerde app doorgaans bij de gebruiker. Hun controles voor publicatie geven aanbevelingen, maar het opvolgen ervan wordt overgelaten aan wie de app bouwt, en die is vaak niet-technisch en niet op de hoogte dat de aanbevelingen bestaan.
Kan een geautomatiseerde scanner mijn app niet gewoon controleren?
Geautomatiseerde scanners missen de schadelijkste fouten in deze apps. In een gecontroleerde test in 2026 vonden twee veelgebruikte commerciële scanners geen enkele van de high- of critical-bevindingen die een menselijke tester bevestigde. Gebroken autorisatie is een ontbrekende controle in de logica, geen code-patroon dat een scanner herkent, en daarom is manuele validatie noodzakelijk.
Wat is de meest voorkomende kwetsbaarheid in een vibe-coded app?
Broken object level authorisation, waarbij de app niet controleert of een ingelogde gebruiker het specifieke record dat hij opvraagt wel mag zien. Een aanvaller verandert een identifier in een verzoek en krijgt de data van een andere gebruiker. Ontbrekende toegangscontrole op databaseniveau en secrets die blootliggen in de frontend volgen op de voet.
Gerelateerde diensten en bronnen
Draait je organisatie apps die gebouwd zijn met tools zoals Lovable of Bolt, dan controleert een web application pentest de autorisatie, het beheer van gegevens en de datablootstelling waar deze apps het vaakst de mist ingaan. Waar de app op AI-functies leunt, breidt onze AI systems pentesting dat uit naar prompt injection, data-extractie en de beveiliging van tools die het model kan bereiken. Wil je dieper begrijpen hoe AI-specifieke aanvalsoppervlakken verschillen van standaardtesten, lees dan onze gids over AI-systemen penetratietesten, en laat je app een agent handelen op productiesystemen, dan behandelt testen wat een AI-agent kan bereiken precies dat geval. Niet zeker welke test bij jouw situatie past? Vertel ons wat je team gebouwd heeft en we bepalen samen de juiste beoordeling.