Brevo, een customer engagement platform, kreeg te maken met een supply chain aanval die leidde tot het injecteren van kwaadaardige code in (mogelijk) meer dan 100.000 websites. Niet alleen de eigen omgeving van het bedrijf was geraakt; ook sites van klanten die Brevo-widgets en ingesloten JavaScript gebruiken, konden worden beïnvloed.
In dit artikel zetten we de belangrijkste momenten op een rij, leggen we uit hoe de aanval technisch verliep (op hoofdlijnen) en geven we concrete aandachtspunten voor webbeheerders en securityteams.
Wat er misging bij Brevo
Volgens Brevo begon het incident op 10 september. Een aanvallersgroep maakte toen gebruik van een kwetsbaarheid in de manier waarop Brevo SAML SSO afhandelde. Daardoor konden ze 138 accounts benaderen, waaronder één account van een cryptopartij (Trezor).
Daarna werden vanuit ten minste zes van die accounts phishing e-mails verstuurd en exporteerden de aanvallers contacten van 43 accounts. Brevo wist de ongeautoriseerde toegang te beëindigen, maar daarmee was het niet voorbij.
Terugkeer op 14 september
Op 14 september kwamen de aanvallers terug. Dit keer werd een gecompromitteerde, langlevende Cloudflare API-key gebruikt om een worker in te zetten. Met die worker werd kwaadaardige code verspreid via de scripts die Brevo zelf leverde.
Hoe de malware werd verspreid via ingesloten JavaScript
Het kwaadaardige mechanisme raakte brevo.com en sibforms.com, maar vooral ook drie JavaScript-bestanden die Brevo’s klanten in hun eigen websites opnemen.
Voor bezoekers werd vervolgens een nepcontrole getoond: een pagina met de boodschap “Cloudflare, verify you are human”. De pagina was bedoeld om bezoekers te verleiden tot een handeling op hun eigen computer—een vorm van social engineering die in het artikel als ClickFix wordt omschreven.
ClickFix: gebruikers laten opdrachten uitvoeren
Het wezenlijke risico bij ClickFix is dat slachtoffers niet alleen worden misleid door een scherm, maar ook worden aangezet tot het uitvoeren van een actie die de aanval verder kan helpen. In dit geval werd bezoekers gevraagd om een commando te kopiëren en uit te voeren.
Brevo rapporteerde ook dat op WordPress-websites waar een Brevo-widget was ingebed, de scriptlogica probeerde om (onder specifieke omstandigheden) een plugin te installeren en te laten draaien wanneer de bezoeker was ingelogd als administrator.
Tijdlijn en mogelijke impact
De kwaadaardige worker was volgens Brevo ongeveer 5,5 uur actief voordat het bedrijf het mechanisme verwijderde en de gecompromitteerde API-key en referenties introk. Brevo stelt daarnaast dat de misbruik-indicaties erop wijzen dat de key al eind augustus 2026 voor eerst oneigenlijk is gebruikt.
Brevo geeft aan dat er geen injectie in klantgerichte pagina’s is gevonden vóór 14 september. Dat is relevant, omdat het helpt afbakenen wanneer klanten daadwerkelijk kwaadaardige content konden hebben ontvangen.
Een andere inschatting komt van beveiligingsfirma Sansec: zij melden dat de malware ongeveer vier uur werd aangeboden en dat meer dan 100.000 websites waarschijnlijk werden geraakt. Dat verschil in tijdsduur kan samenhangen met meetsystemen, caching of observatiebronnen, maar de kern blijft: de exposure was groot.
Waarom dit een echte supply chain aanval is
Een supply chain aanval richt zich niet alleen op één organisatie, maar misbruikt het feit dat veel partijen afhankelijk zijn van elkaars componenten: in dit geval de scripts en integraties van Brevo die door klanten worden ingesloten in hun eigen webomgeving.
Door een gecompromitteerde sleutel te gebruiken en een worker in te zetten, kon de aanvaller code laten “meeliften” via de distributieketen van Brevo naar duizenden—mogelijk honderdduizenden—websites.
Welke controles adviseren Brevo en Sansec
Brevo en Sansec geven een duidelijke boodschap: ook al werd de malafide code gestopt, er blijft een risico dat websites al zijn beïnvloed, bijvoorbeeld via achterdeuren of gemanipuleerde WordPress-installaties.
Checklist voor websitebeheerders
- Controleer of er ongeautoriseerde plugins zijn geïnstalleerd in WordPress (zeker rond het moment van het incident).
- Bekijk of scripts of bestanden in de website-afhandeling zijn gewijzigd die niet door jullie zijn aangebracht.
- Verifieer integraties: als je Brevo-widgets of ingebedde scripts gebruikt, beoordeel dan welke assets door Brevo werden geleverd en of je daarin afwijkingen ziet.
- Herstel en hardening: verwijder verdachte extensies en draai—waar nodig—een herinstallatie of sanering van getroffen onderdelen.
Checklist voor bezoekers en gebruikers
Sansec benadrukt ook dat bezoekers die de nepverificatiepagina hebben gezien, hun machines moeten scannen op malware. Dat is vooral belangrijk wanneer zij instructies hebben opgevolgd die het commando-uitvoeren ondersteunen.
Wat je hiervan kunt leren voor supply chain security
Deze zaak onderstreept dat “een vendor is veilig” niet genoeg is wanneer je als klant integraties gebruikt. Je hebt te maken met een keten waarin een gecompromitteerde sleutel of een misbruikte service kan doorwerken naar jouw omgeving.
Daarom helpt het om voor je webstack en integraties bewust te sturen op continu zichtbare beveiligingsmaatregelen, zodat je snel afwijkingen ontdekt (bijvoorbeeld ongebruikelijke plugin-acties of onverwachte scriptwijzigingen).
Meer context: vergelijkbare patronen en risico’s
Supply chain incidenten hangen vaak samen met twee elementen: (1) misbruik van een vertrouwde interface of sleutel en (2) misleiding of uitvoering op de eindomgeving van gebruikers. Zie bijvoorbeeld ook deze bredere onderzoeken naar hoe aanvallen via softwareketens en dependencies doorwerken:
- Ransomware bij fabrikanten: supply chain in gevaar
- Attack Surface Management: continue zichtbaarheid en minder risico
Daarnaast laat het incident zien hoe snel social engineering (zoals ClickFix) kan escaleren: niet alleen de website wordt geraakt, maar bezoekers kunnen ook direct handelen op basis van een nepcontrole.
Conclusie: stopgezet, maar controle blijft nodig
Brevo’s supply chain aanval leidde tot het injecteren van kwaadaardige code in scripts die klanten gebruiken. Dankzij een gecompromitteerde Cloudflare API-key kon een worker worden ingezet, met als gevolg phishing-achtige social engineering en (op sommige WordPress-sites) pogingen om plugins te installeren.
Brevo heeft de malafide code gestopt en de sleutels ingetrokken, maar organisaties die Brevo-integraties draaien doen er verstandig aan om hun WordPress-omgeving en webassets grondig te controleren. Alleen zo kun je uitsluiten dat er een backdoor is achtergebleven of dat bezoekers via de fake verificatiepagina’s al schade hebben opgelopen.
Bron: https://www.securityweek.com/brevo-supply-chain-attack-injects-malware-into-100000-websites/
