Skip to main content
Blog
Blog Attacks

Polyfill.io supply chain-aanval: volledige tijdlijn, analyse en lessen (2024–2026)

Een volledige, onderbouwde tijdlijn van de Polyfill.io supply chain-aanval, van de domeinverkoop in 2024 tot de Funnull-sancties in 2025, en hoe je het vandaag verwijdert.

Jun 14, 2026 9 min read
Polyfill.io supply chain-aanval: volledige tijdlijn, analyse en lessen (2024–2026)

Kort antwoord: De Polyfill.io supply chain-aanval begon toen het breed ingebedde domein polyfill.io in februari 2024 aan Funnull werd verkocht en tegen juni kwaadaardig JavaScript begon te serveren. cside was de eerste die de werkelijke omvang van de aanval rapporteerde: meer dan 490.000 websites, niet de 100.000 die bijna elk medium herhaalde. Dat lagere getal was simpelweg de plek waar de zoektool stopte met tellen. Een jaar later sanctioneerde het Amerikaanse ministerie van Financiën Funnull voor de operatie. Dit is de volledige tijdlijn, wat de code deed, en hoe je het vindt en verwijdert.

De Polyfill.io-aanval is een van de duidelijkste browser supply chain-incidenten ooit vastgelegd. Een gratis, vertrouwd hulpmiddel stond jarenlang op honderdduizenden sites. Nieuwe eigenaren maakten er van de ene op de andere dag een aanvalsoppervlak van. Geen enkele site-eigenaar wijzigde een regel code, en toch werden hun bezoekers blootgesteld.

Deze pagina brengt het hele verhaal op één plek samen: een gedateerde tijdlijn, de waarheid achter het getal van "100.000 sites", wat de payload eigenlijk deed, de CVE, de Funnull-sancties die volgden, en een praktische opruimchecklist. Voor diepgaandere stukken linkt elke sectie naar onze oorspronkelijke berichtgeving uit 2024 en 2025.

De korte versie

  • Het domein polyfill.io werd in februari 2024 verkocht aan Funnull. Tegen juni serveerde het kwaadaardige omleidingen.
  • Er is geen incident-brede CVE; de identifier die er het dichtst bij komt, CVE-2024-38526, is afgebakend tot de documentatietool pdoc die polyfill.io laadde — niet de aanval zelf.
  • De werkelijke omvang was 490.000+ websites, niet de breed geciteerde 100.000. Dat getal was de standaard resultaatlimiet van PublicWWW. cside rapporteerde het echte getal als eerste.
  • De vastgelegde payload was een omleiding die alleen op mobiel werkte naar scam- en goksites, gebouwd om onderzoekers te ontwijken.
  • Op 2025-05-29 sanctioneerde OFAC Funnull en zijn beheerder Liu Lizhi.
  • Per 2026-05-18 bedden nog steeds meer dan 61.000 pagina's polyfill.io in. Als de jouwe daar een van is, verwijder het.

Volledige tijdlijn (2009–2026)

DatumGebeurtenis
2009–2010Remy Sharp bedenkt de term "polyfill"; het idee verspreidt zich door de webontwikkelaarscommunity
2014Andrew Betts bouwt de polyfill.io-service bij Financial Times Labs; één scripttag past polyfills aan op elke browser
2014-10-28HTML5 wordt een W3C Recommendation; evergreen, automatisch bijwerkende browsers maken polyfill.io al snel grotendeels overbodig
~2023De Financial Times draagt het project over aan zijn langdurige beheerder, Jake Champion
Feb 2024Het domein polyfill.io en de GitHub-repository worden verkocht aan Funnull, een door Chinezen geleid bedrijf
2024-02-25Andrew Betts waarschuwt publiekelijk: "Als je website polyfill.io gebruikt, verwijder het ONMIDDELLIJK"
2024-02-29Cloudflare publiceert een veilige cdnjs-mirror om het supply chain-risico te verkleinen; Fastly zet enkele dagen eerder zijn eigen mirror op
2024-06-24De Japanse onderzoeker "piyokango" signaleert het kwaadaardige gedrag
2024-06-25Sansec publiceert zijn forensische onthulling; cside publiceert dezelfde dag en rapporteert de werkelijke omvang van 490.000+
2024-06-26Cloudflare begint polyfill.io automatisch te herschrijven naar zijn mirror; Google waarschuwt getroffen adverteerders
2024-06-27Namecheap schorst het domein polyfill.io
2024-07-02Censys telt onafhankelijk 384.773 getroffen hosts
2025-05-29OFAC sanctioneert Funnull en beheerder Liu Lizhi; de FBI koppelt 548 Funnull-CNAMEs aan 332.000+ domeinen
2026-05-1861.593 pagina's bedden nog steeds polyfill.io in

Het getal van "100.000 sites" was fout

Bijna elk rapport over deze aanval gebruikte hetzelfde getal: ongeveer 100.000 sites. Dat getal is een artefact van de tool, niet een meting van de aanval.

Onderzoekers, cside inbegrepen, gebruikten PublicWWW om elke pagina te vinden die de polyfill.io-snippet bevatte. PublicWWW beperkt resultaten standaard tot 100.000. Dus elke telling die erop steunde, eindigde op "100.000+." Toen wij de zoekopdracht voorbij die limiet uitvoerden, was het echte getal meer dan 490.000 websites.

Dit doet ertoe omdat de getroffen verzameling niet willekeurig was. Ze leunde sterk naar bestemmingen met veel verkeer en veel vertrouwen: banken, overheidssites, grote uitgevers en bekende merken. "100.000" rapporteren onderschatte een aanval die bijna vijf keer zo groot was. cside die het echte getal van 490.000+ aan het licht bracht, is de correctie die het publieke verslag nodig had, en de onafhankelijke telling van Censys van 384.773 hosts op 2024-07-02 bevestigt dat de omvang ver voorbij de 100.000 lag.

Wat de kwaadaardige code eigenlijk deed

Het gedrag dat werd vastgelegd, gedecodeerd en gepubliceerd, was een omleiding. Sansecs forensische rapport van 2024-06-25 liet zien dat het gemanipuleerde script sommige mobiele bezoekers via een nep Google Analytics-typosquat, googie-anaiytics[.]com (let op de verwisselde letters), naar sportweddenschap- en adultsites stuurde.

De tradecraft maakte het gevaarlijk en moeilijk te betrappen. De omleiding:

  • vuurde alleen op mobiele apparaten, nooit op desktop;
  • varieerde per geografische regio en per tijdstip;
  • raakte elk apparaat of IP slechts één keer, zodat noch een slachtoffer noch een onderzoeker het bij een refresh kon reproduceren;
  • werd stil zodra het een beheerder of de aanwezigheid van webanalytics detecteerde;
  • werd geleverd met anti-reverse-engineering-pantser.

Omdat polyfill.io van nature een dynamische service was, kon de operator schone code aan de ene bezoeker en kwaadaardige code aan de volgende serveren. Subresource Integrity kon niet helpen, omdat het een hash van een vast bestand vastpint en deze service geen vast bestand had. Het script draaide first-party in de eigen origin van elke site, dus het had toegang tot de DOM, formulieren en cookies van die pagina, en het stond op de CSP-allowlists van honderdduizenden vertrouwde domeinen.

Was het alleen een omleiding? Dat is het eerlijke, onopgeloste deel. Onafhankelijke deobfuscatie van de herstelde payload vond omleidingslogica en niets anders, geen toetsaanslagvastlegging, geen diefstal van inloggegevens. Maar het ontwerp per verzoek betekent dat een variant gericht op één waardevolle bezoeker nooit in een publieke scan hoeft te verschijnen. De omleiding is wat werd betrapt. Wat er verder die maanden gedraaid kan hebben, valt op geen enkele manier te bewijzen. We hebben de capaciteitscasus in detail uiteengezet in De Polyfill.io-aanval: meer dan alleen een omleidingsaanval.

Voor het volledige incidentverslag van destijds, zie De Polyfill-aanval uitgelegd en ons rapport van dezelfde dag, Meer dan 490k websites doelwit van een web supply chain-aanval.

Is er een CVE voor de Polyfill.io-aanval?

Er is geen enkele CVE toegewezen aan het Polyfill.io-incident zelf. De identifier die er in de National Vulnerability Database het dichtst bij komt, is CVE-2024-38526, maar die is afgebakend tot pdoc — een Python-API-documentatietool die naar polyfill.io linkte in de documentatie die het genereerde (opgelost in pdoc 14.5.1). Het dekt cdn.polyfill[.]io of de bredere verzameling getroffen sites niet. Als je een kwetsbaarheidsprogramma beheert, houd dit incident dan bij via de getroffen domeinen (cdn.polyfill[.]io, plus de gerelateerde bootcdn[.]net, bootcss[.]com, staticfile[.]net, staticfile[.]org en unionadjs[.]com) in plaats van via één enkele CVE, en verwijs alleen naar CVE-2024-38526 voor pdoc-blootstelling.

De Funnull-connectie en de sancties van 2025

Polyfill.io was geen eenmalige zaak. De koper van het domein, Funnull, runde een veel grotere operatie.

Op 2025-05-29 sanctioneerde het Office of Foreign Assets Control van het Amerikaanse ministerie van Financiën Funnull Technology Inc. en zijn beheerder, Liu Lizhi. Treasury koppelde Funnulls infrastructuur aan meer dan 200 miljoen dollar aan door Amerikaanse slachtoffers gerapporteerde verliezen uit investeringsfraude, het patroon dat vaak pig butchering wordt genoemd. De aankondiging beschreef de polyfill-connectie zonder de service te noemen: in 2024 "kocht Funnull een coderepository die door webontwikkelaars werd gebruikt en wijzigde de code kwaadaardig om bezoekers van legitieme websites door te sturen naar scamwebsites en online goksites."

Dezelfde dag koppelde de FBI 548 Funnull-CNAMEs aan meer dan 332.000 domeinen. Dit is infrastructuurwitwassen: gerenommeerde cloud- en CDN-ruimte huren via illegale accounts en doorverkopen aan scammers zodat kwaadaardige sites legitiem lijken en moeilijk te verwijderen blijven. We behandelden de sancties en wat ze betekenen voor securityteams in Funnull gesanctioneerd: wat de Polyfill.io-aanval liet zien over infrastructuurwitwassen.

Wie er nog steeds blootgesteld is

Sancties verstoren een bedrijf. Ze verwijderen geen code van je site. Per 2026-05-18 vermeldde PublicWWW nog steeds 61.593 pagina's met polyfill.io, ruim een jaar nadat het domein was geschorst.

Die restanten zijn de echte les. Browserafhankelijkheden blijven lang nadat een domein is geblokkeerd ingebed, omdat mensen dingen niet verwijderen. Elk van die pagina's wijst nog steeds naar een domein dat al een keer is bewapend.

Hoe je Polyfill.io vandaag vindt en verwijdert

Begin met de pagina's die login, checkout, accountcreatie, betaling en persoonsgegevens raken.

  1. Doorzoek je broncode, tagmanagers, CMS-templates en oude snippets op polyfill.io, plus de gerelateerde domeinen bootcdn[.]net, bootcss[.]com, staticfile[.]net, staticfile[.]org en unionadjs[.]com.
  2. Verwijder de verwijzingen. Moderne browsers hebben deze polyfills niet meer nodig, dus verwijderen is veiliger dan een mirror inwisselen.
  3. Koppel elk overgebleven script van derden aan een eigenaar, een doel, een page scope en een niveau van datatoegang.
  4. Markeer scripts die meer scripts laden, URLs dynamisch bouwen of zich anders gedragen per user agent, regio of sessie.
  5. Gebruik Subresource Integrity alleen waar een script statisch is en de provider stabiele hashes ondersteunt.
  6. Versterk je Content Security Policy op gevoelige flows, beginnend in report-only-modus.
  7. Monitor wat scripts runtime daadwerkelijk doen, zodat een eigenaarswissel of een nieuwe payload zichtbaar is wanneer echte gebruikers de pagina laden.

Wat deze aanval leert over client-side security

De Polyfill.io-aanval werkte omdat vertrouwen als permanent werd behandeld. Een script dat één keer was goedgekeurd, bleef draaien nadat het bedrijf erachter was veranderd en nadat de code die het serveerde was veranderd. Serverlogs zagen het niet. Vendorvragenlijsten betrapten het niet. De browser voerde het toch uit.

Die kloof, tussen vertrouwde insluiting en runtime-uitvoering, is precies wat cside is gebouwd om te dichten. cside werkt op de browserlaag, waar scripts van derden echt draaien. Het laat zien welke scripts op echte pagina's laden, wat ze aanroepen, hoe ze veranderen en of ze verdacht gedrag proberen, zoals onverwachte omleidingen of datatoegang. In het geval van Polyfill.io is die runtime-view wat een vertrouwde afhankelijkheid markeert op het moment dat die vijandig wordt.

De volgende polyfill.io staat al ergens op het web, ingebed en vertrouwd. De enige betrouwbare manier om die te betrappen, is kijken naar wat je scripts doen, niet alleen naar wie ze heeft geleverd. Beveilig je site gratis met cside en zie elk script dat je gebruikers echt laden.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks — web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

Polyfill.io was een populaire service die JavaScript-polyfills aan websites leverde via één enkele scripttag. In februari 2024 werden het domein en de bijbehorende GitHub-repository verkocht aan Funnull, een door Chinezen geleid bedrijf. Tegen juni 2024 serveerde de service kwaadaardige code die mobiele gebruikers doorstuurde naar scam- en sportweddenschapsites. Omdat het script first-party draaide op elke site die het had ingebed, kon de operator op elk moment aanpassen wat er werd geserveerd.

De meeste berichtgeving sprak van 100.000. Dat getal was fout. Het was de standaard resultaatlimiet van PublicWWW, de code-zoektool die onderzoekers gebruikten om embeds te tellen. cside voerde dezelfde zoekopdracht voorbij die limiet uit en vond meer dan 490.000 websites die het script droegen. Censys telde op 2024-07-02 onafhankelijk 384.773 getroffen hosts. De werkelijke omvang was veel groter dan het kopcijfer, en sterk gericht op sites met veel verkeer en veel vertrouwen.

Nee. Er is geen enkele CVE voor het Polyfill.io-incident zelf. CVE-2024-38526 is de identifier die er in de National Vulnerability Database het dichtst bij komt, maar die is afgebakend tot pdoc — een Python-documentatietool die polyfill.io in de gegenereerde documentatie laadde (opgelost in pdoc 14.5.1) — niet het domein cdn.polyfill[.]io of de honderdduizenden andere sites die het script hadden ingebed.

Het gedrag dat werd vastgelegd en gedecodeerd, was een omleiding. Het stuurde sommige mobiele bezoekers naar een nep Google Analytics-typosquat (googie-anaiytics[.]com) en vervolgens naar gok- en adultsites. De omleiding vuurde alleen op mobiel, varieerde per regio en tijdstip, raakte elk apparaat één keer en werd stil zodra het een beheerder of analytics detecteerde. Onafhankelijke deobfuscatie vond in het herstelde sample alleen omleidingslogica. Omdat de service per verzoek code genereerde, kon een gerichte variant op gegevensdiefstal die op specifieke bezoekers was gemikt nooit worden uitgesloten, maar er is er nooit een publiek vastgelegd.

Funnull kocht het domein polyfill.io begin 2024. Op 2025-05-29 sanctioneerde OFAC van het Amerikaanse ministerie van Financiën Funnull Technology Inc. en zijn beheerder Liu Lizhi voor het leveren van infrastructuur die was gekoppeld aan meer dan 200 miljoen dollar aan door Amerikaanse slachtoffers gerapporteerde scamverliezen. De aankondiging van Treasury beschreef hoe Funnull een coderepository kocht die door webontwikkelaars werd gebruikt en die wijzigde om bezoekers door te sturen, wat overeenkomt met het Polyfill.io-incident.

Doorzoek je broncode, tagmanagers, CMS-templates en oude snippets op polyfill.io, plus de gerelateerde domeinen bootcdn[.]net, bootcss[.]com, staticfile[.]net, staticfile[.]org en unionadjs[.]com. Verwijder alle verwijzingen. Moderne browsers hebben deze polyfills niet meer nodig, dus de veiligste oplossing is verwijdering. Monitor daarna welke scripts van derden er daadwerkelijk runtime laden, want een vertrouwd vendordomein kan van eigenaar wisselen of na goedkeuring van gedrag veranderen.

Monitor en Beveilig Je Third-Party Scripts

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo