FlawOpen

flawopen.com/Incidents/polyfill-io-supply-chain-incident-june-2024

● Polyfill.io service · CWE-829 · June 2024 · Hoch
Sicherheitsforschung · FlawOpen

Polyfill.io-Lieferkettenangriff (2024)

Vorfall 2024: polyfill.io leitete einige Besucher um. Entfernen Sie den CDN-Verweis; es wurde keine CVE vergeben.

💡 Einfache Erklärung (ELI5)

Stellen Sie sich ein Restaurant vor, das auf jeden Tisch eine Flasche eines externen Lieferanten stellt. Ändert der Lieferant den Inhalt, kann das Gäste treffen, obwohl das Restaurant seine Speisekarte nicht ändert.

Kernkonzepte & Begriffe

Dynamic User-Agent Polyfilling
Bereitstellung maßgeschneiderter JavaScript-Pakete abhängig von den Browser-Headern des Clients, wodurch Subresource Integrity (SRI)-Hashes unmöglich werden.
Conditional Payload Evasion
Analyse von Referer, Bildschirmgröße, User-Agent und Entwicklertools, um Entwicklern saubere Skripte bereitzustellen, während echte mobile Endnutzer angegriffen werden.
Domain Ownership Transfer Risk
Die inhärente Gefahr beim Einbinden von Drittanbieter-Skripten von Domains, die ohne Zustimmung erworben, abgelaufen oder übertragen werden können.
Subresource Integrity (SRI)
Ein kryptografischer Browsermechanismus, der Skripthashes vor der Ausführung validiert.

Framework-Zuordnungen

  • CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-829

Vorfall-Zeitstrahl

Februar 2024

Sansec meldete den Besitzerwechsel von Domain und GitHub-Konto; Fastly bot vorsorglich eine Alternative an.

25. Juni 2024

Sansec veröffentlichte seine Analyse und schätzte anhand eigener Messungen über 100.000 betroffene Websites.

26.–27. Juni 2024

Cloudflare kündigte automatische Umschreibungen auf sein Mirror an; später wurde die Domain gesperrt. Entfernen Sie alte Verweise, statt auf temporäre Umschreibungen zu vertrauen.

Schritt-für-Schritt Angriffsablauf

Schritt 1

Eigentümerwechsel

Sansec berichtete, dass Domain und GitHub-Konto im Februar 2024 den Besitzer wechselten. Fastly bot vorsorglich eine Alternative an, bevor bösartige Antworten gemeldet wurden. Fastly erklärte später, erst mit Sansecs Bericht von dem Angriff erfahren zu haben; die Alternative im Februar war eine Vorsichtsmaßnahme und kein Hinweis auf damalige Kenntnis bösartiger Aktivitäten.

Schritt 2

Website lädt das CDN

Eine Seite mit Verweis auf cdn.polyfill.io veranlasst den Browser, das gelieferte JavaScript abzurufen und im Kontext dieser Seite auszuführen.

Schritt 3

Bedingte Weiterleitung beobachtet

Die von Sansec untersuchte Probe leitete bestimmte mobile Besucher bedingt weiter. Das beschreibt die Probe, nicht jede Antwort des CDN.

Schritt 4

Gegenmaßnahmen und Reaktion

Cloudflare schrieb Verweise auf sein Mirror um; Fastly bot eine separate Alternative. Sansec meldete abgelehnte Google-Ads-Anzeigen bei einigen Shops, keine allgemeine Abstrafung in der organischen Suche.

Quellcode: Verwundbar vs. Sicher

VERWUNDBARE IMPLEMENTIERUNG
<!-- VULNERABLE: Direct 3rd-party CDN script without integrity verification -->
<!DOCTYPE html>
<html>
<head>
  <title>Production Web App</title>
  <!-- Polyfill CDN serves arbitrary dynamic code controlled by third party -->
  <script src="https://cdn.polyfill.io/v3/polyfill.min.js?features=default,Array.prototype.flat"></script>
</head>
<body>
  <h1>Welcome</h1>
</body>
</html>
GEHÄRTETER SICHERHEITS-PATCH
<!-- Build this file from a reviewed, version-pinned dependency. -->
<script defer src="/assets/vendor/polyfills.min.js"></script>

Checkliste für Engineering & Systemsicherheit

Quellen