Nota anterioară a susținut cazul general. Aceasta este concretă: iată platforme construite așa, ce li s-a întâmplat și ce aveau în comun eșecurile.
Am lăsat deoparte incidentul pe care îl citează toată lumea. Breșa aplicației Tea din iulie 2025 a expus aproximativ 72.000 de imagini, dintre care circa 13.000 de documente de identitate și selfie-uri, dintr-un bucket Firebase nesecurizat. Este folosită constant drept dezastrul emblematic al vibe codingului. Declarația oficială a Tea spune că acel cod este anterior lui februarie 2024, înainte ca acest mod de lucru să fie viabil pentru un astfel de sistem. A fost o eroare de configurare, una gravă, dar nu este o dovadă pentru argumentul de față și nu voi pretinde altceva.
Cele patru de mai jos sunt.
EnrichLead: mort la o săptămână după tura de onoare
În martie 2025, fondatorul EnrichLead a anunțat public că produsul său SaaS fusese construit cu „zero cod scris de mână”, integral printr-un editor AI. Postarea a devenit virală.
În două zile aplicația era sub atac. Cheile de API stăteau în frontend. Nu exista autorizare pe endpointuri, nici limitare de rată, nici validare de input, iar baza de date era accesibilă. Atacatorii au ocolit abonamentul, au manipulat date și au epuizat cotele plătite de API. Produsul a fost închis definitiv într-o săptămână.
Observă ce nu s-a întâmplat: nimeni nu a avut nevoie de un exploit ingenios. Fiecare dintre acelea este un control pe care un inginer care revizuiește codul îl adaugă fără să fie rugat, pentru că știe că endpointul este accesibil din internetul deschis. Nu a întrebat nimeni, deci nu le-a adăugat nimeni.
Lovable: CVE-2025-48757 și 170 de aplicații live
Lovable este un constructor de aplicații AI cu adopție largă. În 2025 i-a fost atribuit CVE-2025-48757 pentru că genera aplicații cu Row Level Security lipsă sau insuficientă pe bazele lor de date Supabase.
Consecința: cheia publică de client livrată în browser putea fi folosită pentru a interoga tabelele direct. Liste complete de utilizatori, înregistrări de plată și credențiale stocate puteau fi citite fără nicio autentificare. O scanare a 1.645 de aplicații Lovable a găsit 170 cu baze de date expuse — peste zece la sută — pe 303 endpointuri vulnerabile.
Aceasta este cea importantă, pentru că niciunul dintre cei 170 de constructori nu a făcut o greșeală individuală. Au primit setarea implicită a platformei. Codul generat părea terminat și se comporta corect la orice test pe care autorul lui s-ar fi gândit să îl ruleze. Piesa lipsă era o politică de bază de date la care nimeni nu a fost îndemnat să se gândească, într-un strat pe care autorul nu l-a văzut niciodată.
Base44: autentificare care putea fi pur și simplu sărită
Base44 este o platformă AI de construit aplicații, achiziționată de Wix în 2025. În iulie 2025, Wiz Research a dezvăluit o vulnerabilitate: două endpointuri de API — înregistrarea și verificarea codului unic — nu cereau nicio autentificare, iar identificatorul de aplicație necesar pentru a ajunge la ele era publicat chiar în URL-ul și manifestul aplicației.
Atât era suficient pentru a-ți crea un cont verificat în aplicația privată a altcuiva. Wiz a confirmat că ocolirea funcționa împotriva unor aplicații de companie care găzduiau chatboți interni, baze de cunoștințe, operațiuni de resurse umane și date personale — aplicații despre care proprietarii credeau că sunt restricționate la SSO-ul companiei.
Wix a corectat problema în 24 de ore și nu a găsit dovezi de exploatare, ceea ce este un răspuns cu adevărat bun. Lecția este în altă parte: clienții nu aveau cum să știe. Configuraseră SSO. Platforma le spunea că aplicația este privată. Nu era, și nimic din codul lor nu era greșit.
SaaStr și Replit: baza de date care nu trebuia atinsă
În iulie 2025, Jason Lemkin de la SaaStr a petrecut nouă zile construind public pe agentul AI al Replit. În timpul unui code freeze explicit, cu instrucțiuni repetate în limbaj natural să nu modifice producția, agentul a șters baza de date de producție — înregistrări pentru peste 2.400 de executivi și companii.
Apoi a generat date fabricate în locul celor distruse și a raportat că revenirea este imposibilă. Era neadevărat; datele erau recuperabile. Replit a livrat în câteva zile separarea dev/producție, un mod exclusiv de planificare și restaurare cu un clic.
Ștergerea este jumătatea mai mică a poveștii. Jumătatea mai mare este că agentul a afirmat cu încredere ceva fals despre starea sistemului și nu exista nicio cale independentă de verificare. Dacă singurul tău model al propriei platforme este cel pe care ți-l povestește agentul, nu poți audita afirmația aceea.
Tiparul
Trei din cele patru sunt eșecuri de autorizare, iar al patrulea este o operațiune distructivă fără nicio balustradă. Nu bug-uri exotice. Cea mai elementară categorie care există.
Au aceeași formă. Aplicația funcționa. Trecea orice test pe care îl rula autorul, pentru că autorul testa traseul pe care îl descrisese. Lipsea stratul de sub descriere — cine are voie să citească acest rând, ce este accesibil fără sesiune, ce nu trebuie să ruleze niciodată pe producție — iar stratul acela este invizibil exact pentru că nu l-a specificat nimeni.
Un model nu știe că endpointul tău este expus la internet, că lista ta de clienți este cel mai valoros activ al tău sau că acest tabel intră sub GDPR. Nu i s-a spus. Nu va întreba.
Unde este linia
Nimic din toate acestea nu este un argument împotriva AI-ului în dezvoltare. Folosesc aceste unelte zilnic și m-au făcut considerabil mai rapid.
Linia este proprietatea. Undeva trebuie să existe o persoană care poate răspunde, din memorie, cine poate citi fiecare tabel, ce se întâmplă când fiecare integrare eșuează și ce rulează când sosesc două cereri simultan. Persoana aceea poate foarte bine să fi generat cea mai mare parte a codului. Ce nu poate face este să nu știe răspunsurile.
Dacă platforma ta ține date de clienți, încasează plăți sau te-ar face de râs în ziua în care ar scăpa, persoana aceea trebuie să existe și trebuie numită. Întreabă orice furnizor cine este. Dacă răspunsul este unealta, ai exact configurația pe care o avea EnrichLead în ziua postării triumfale.