1 Punkte von GN⁺ 18 일 전 | 1 Kommentare | Auf WhatsApp teilen
  • Groß angelegtes Experiment, bei dem alle rund 84.000 Firefox-Erweiterungen gesammelt und installiert wurden – mithilfe der Add-ons-API von Mozilla
  • Per Scraping wurden 84.235 eindeutige Erweiterungen erfasst, Gesamtgröße 49,3 GB; der Datensatz wurde auf Hugging Face veröffentlicht
  • Während der Installation wurden zahlreiche schädliche Erweiterungen entdeckt, darunter Phishing-, Spam- und PUA-Erweiterungen (potenziell unerwünschte Anwendungen)
  • Am Ende konnten 84.194 Erweiterungen erfolgreich installiert werden, der Browser war jedoch praktisch unbenutzbar
  • Das Experiment gilt als Fallbeispiel, das Größe, Qualität und Sicherheitsprobleme des Firefox-Erweiterungsökosystems umfassend offengelegt hat

Experiment: Alle Firefox-Erweiterungen installieren

  • Groß angelegtes Experiment, bei dem alle rund 84.000 Erweiterungen für Firefox gesammelt, analysiert und installiert wurden
  • Über Mozillas öffentliche Add-ons-API wurde die vollständige Liste der Erweiterungen gescrapt und anschließend tatsächlich installiert
  • Der Datensatz wurde auf Hugging Face veröffentlicht und ist für alle zugänglich
  • Nach mehreren Versuchen gelang die Installation von 84.194 Erweiterungen, der Browser war danach jedoch praktisch unbenutzbar
  • Das Experiment machte unter anderem Größe des Ökosystems, Qualitätsprobleme, schädliche Erweiterungen, Spam und PUA (potenziell unerwünschte Anwendungen) sichtbar

Scraping von Firefox-Erweiterungen

  • Auf Mozillas addons-server API kann ohne Authentifizierung zugegriffen werden; über den Endpunkt search lässt sich die Erweiterungsliste seitenweise abrufen
  • Mit der Standardsortierung (recommended,users) ließen sich nur rund 30.000 Einträge abrufen, daher wurden zusätzliche Sortieroptionen wie created, rating, hotness und updated kombiniert, um fehlende Erweiterungen zu erfassen
  • Mit dem Parameter exclude_addons wurden auch Erweiterungen jenseits von Seite 600 zusätzlich gesammelt
  • Durch parallele Anfragen nach Kategorien konnten insgesamt 84.235 eindeutige Erweiterungen erfasst werden, mit einer Durchschnittsgröße von 584,9 KB und einer Gesamtgröße von 49,3 GB
  • Der finale Datensatz wurde auf Hugging Face hochgeladen und öffentlich gemacht
  • In einem Update vom 11. April 2026 wurde mithilfe der Filter created__gte und created__lte ein präzises und effizientes vollständiges Scraping umgesetzt

Analyse der Firefox-Erweiterungen

  • Die größte Erweiterung ist dmitlichess (196,3 MB) und enthält mehr als 2.000 Audiodateien
    • Die Top 10 der größten Erweiterungen enthalten überwiegend große Inhalte wie KI-Modelle, Unity-Apps und Bildressourcen
  • Die kleinste Erweiterung ist theTabs-saver (7,5 KB) ohne Code
  • Die am schlechtesten bewertete Erweiterung ist Tab Stack for Firefox
  • Die älteste Erweiterung ist Web Developer
  • Die Erweiterung mit den meisten Screenshots ist RDS Bar (54)
  • Die Erweiterung mit den meisten angeforderten Berechtigungen ist FalscheLaden (3.695 Berechtigungsanfragen), gefolgt von Google Dark Theme (2.675)
  • Der Entwickler mit den meisten veröffentlichten Erweiterungen ist Dr. B (84 Erweiterungen), meist mit README, aber ohne Icons
  • Phishing und schädliche Erweiterungen

    • Im Datensatz wurden zahlreiche Phishing-Erweiterungen für Krypto-Wallets entdeckt
      • Beispiel: „Іron Wаllеt“ holte sich 3 Sekunden nach der Installation eine URL aus NocoDB und leitete auf eine Phishing-Seite weiter
      • Manche Erweiterungen fragten Seed-Phrasen ab und übermittelten sie an einen Server
    • Nach der Meldung wurden die meisten am folgenden Tag von Mozilla entfernt
    • Es wurden auch API-Schlüssel mit Schreibrechten entdeckt, woraufhin direkt Daten gelöscht wurden
  • SEO-Spam-Erweiterungen

    • Der „Homepage“-Link auf Erweiterungsseiten wurde für Backlinks missbraucht
    • KI-generierte Erweiterungen wie Typo Sniper und Tab Fortune Teller verlinkten auf Casino-Websites
    • Es existierten zahlreiche Erweiterungen vom Typ „Code Injector“ mit gleicher Codestruktur und zufälligen Domains
    • Die meisten wurden offenbar 2025 erstellt
  • PUA-Erweiterungen (potenziell unerwünschte Anwendungen)

    • Es wurden mehr als 20 Erweiterungen mit dem Muster „Custom Web Search“ gefunden, mit zusammen über 700.000 Nutzern
    • Alle hatten dieselbe Struktur und dieselben Domains und nannten „Innover Online Group Ltd“
    • Mozilla deaktivierte einige davon, darunter solche mit 115.000 Nutzern
    • Verwendet wurde der Yahoo-Affiliate-Code safeplexsearch; es existierte auch eine Firefox-spezifische Version
    • Das ähnliche Unternehmen Atom Apps verteilte Erweiterungen auf dieselbe Weise und erreichte insgesamt 220.000 tägliche Nutzer
  • Statistische Zusammenfassung

    • 34,3 % der Erweiterungen haben 0 tägliche Nutzer
      • 10 oder mehr Nutzer: 25,1 %, 100 oder mehr: 10,6 %, 1.000 oder mehr: 3,2 %, 10.000 oder mehr: 0,7 %
    • 76,7 % sind Open Source (gemessen an SPDX-Lizenzen)
    • 23 % wurden nach dem Verfassen des Artikels erstellt
      • Davon haben 19 % weder Nutzer noch Reviews, Icons oder Downloads
    • 2,4 % sind kostenpflichtige Erweiterungen, davon sind 38,1 % Open Source

Versuch, alle Erweiterungen zu installieren

  • Die .xpi-Datei jeder Erweiterung wurde unter einem GUID-Namen im Profilordner gespeichert, anschließend wurde extensions.json geändert
  • Durch Löschen von addonStartup.json.lz4 und Manipulation von extensions.json wurden die Erweiterungen automatisch aktiviert
  • Versuch 0: 65.335 (Windows-VM)

    • Installation per Enterprise Policy versucht, scheiterte jedoch an Speichermangel und Systemstillstand
  • Versuch 1: etwa 1.000

    • Direkt heruntergeladen und manuell platziert, Installation erfolgreich
    • Einige Erweiterungen änderten sämtlichen Text in eine bestimmte Zeichenfolge
    • Wegen zahlreicher Sicherheits-Erweiterungen traten häufig Domain-Blockaden und Warn-Pop-ups auf
  • Versuch 2: 65.335

    • Weil das Löschen von addonStartup.json.lz4 vergessen wurde, wurden effektiv nur etwa 1.000 aktiviert
    • Beim Öffnen von about:addons fror Firefox ein und ließ sich nicht neu starten
  • Versuch 3: 65.335 (Mac)

    • Parallele Downloads führten zu geringerer Geschwindigkeit; insgesamt dauerte es 6 Stunden
    • Beim Start von Firefox keine Reaktion, extensions.json wurde 144 MB groß
    • Es entstanden mehr als 400 GB an Festplattenschreibvorgängen
  • Versuch 4~10: 1.000~6.000

    • Bis 3.000 konnten Webseiten noch geladen werden
    • Ab über 4.000 wurden alle Websites blockiert, bei 6.000 ließ sich nur noch about:addons laden
  • Versuch 11: 84.194 (6 Monate später)

    • Verwendet wurde eine virtuelle Maschine (VM) mit 16–24 GB RAM
    • Der Download dauerte 1 Stunde 43 Minuten; einige Erweiterungen wurden von Defender erkannt
    • Beim Start von Firefox wuchs extensions.json auf 189 MB an, nach 39 Minuten wurde der Prozess zwangsweise beendet
    • Anschließend wurde mit Ausführung von enable.js erneut versucht
    • Ergebnisse von Launch 1~3

      • Launch 1: 39 Minuten gewartet, ohne Rendering, dann abgebrochen
      • Launch 2: Browser angezeigt, aber Absturz innerhalb von 3 Minuten
      • Launch 3: Nach langer Wartezeit erfolgreiche Stabilisierung, Laden von 84.194 Erweiterungen bestätigt

Test der Nutzung mit allen Erweiterungen

  • about:addons

    • Die Einstellungsseite konnte nicht geladen werden; die Indexseite war erst nach 6 Stunden vollständig geladen
    • Die Speichernutzung blieb bei 27–37 GiB
    • Keine Icons sichtbar, massive Reaktionsverzögerungen
  • about:support

    • Insgesamt wurden 84.205 Erweiterungen angezeigt, allerdings inklusive integrierter Erweiterungen
    • Tatsächlich installiert waren 84.194 externe Erweiterungen
  • about:preferences

    • Viele New-Tab-Optionen vorhanden, dabei kam es zu Konflikten und Abstürzen
  • New Tab

    • Nur Firefox Home wurde normal geladen, alle anderen Erweiterungen scheiterten
  • moz-extension

    • Die Erweiterung buyPal ersetzte automatisch den Tab und war die einzige, die normal geladen wurde
    • Danach stürzte Firefox erneut ab
  • example.com

    • Selbst nach 24 Stunden wurde die Seite nicht geladen; es wird vermutet, dass zahlreiche Blockier-Erweiterungen verantwortlich waren
  • about:telemetry

    • Ein Klick auf Environment Data führte zu einem sofortigen Absturz

Bewertung der Nutzbarkeit

  • Unmöglich
  • Firefox ist mit 84.000 installierten Erweiterungen praktisch nicht funktionsfähig

Vorschläge für weitere Untersuchungen

  • Analyse, warum about:addons 6 Stunden zum Laden braucht und warum example.com nicht lädt
  • Experimente mit anderen Browsern, die .xpi unterstützen, etwa Kagi Orion und GNOME Web
  • Experiment zur Installation aller Themes (mehr als 500.000) oder aller User-Skripte und Styles
  • Die Installation aller Erweiterungen aus dem Chrome Web Store ist aufgrund der Größe nicht realistisch

Zusammenfassung der Fußnoten

  • Insgesamt wurden 8 Erweiterungen beim Scraping verpasst oder gelöscht
  • Nach der ersten Version vom September 2025 wurden die Zahlen im April 2026 aktualisiert
  • „Foreshadowing“ wird als literarisches Stilmittel der Vorausdeutung erwähnt

1 Kommentare

 
GN⁺ 18 일 전
Hacker-News-Kommentare
  • Hat die Auszeichnung „Middle Finger Emoji Sticker“ bekommen.
    Den Ablauf hat er kurz in einem Blogpost zusammengefasst.
    Das Original ist hier zu finden.

  • Erinnert an die alten Internet-Explorer-Toolbar-Kriege.
    Ich weiß noch, dass in jedem Internetcafé mindestens zwei Toolbars von Ask.com, Google, Yahoo und später Bing installiert waren.

  • Ich habe nachgesehen, warum das so lange gedauert hat.
    Vor 13 Jahren war es nicht extensions.json, sondern extensions.sqlite.
    Heute wird die komplette Datei alle 20 ms serialisiert und neu geschrieben; für 15 Erweiterungen ist das okay, aber bei 84.194 wird es zum Problem.
    Ich frage mich, wie dieser Debounce-Wert festgelegt wurde. Es ist schwer vorstellbar, welche Erweiterung extensions.json mehrmals pro Sekunde schreiben sollte.

  • Die eigentlichen Seiten lassen sich zwar praktisch gar nicht richtig öffnen, aber der Text selbst war wirklich sehr unterhaltsam.
    Bei der Stelle „Ich habe die Crash-Berichterstattung aktiviert“ musste ich lange lachen. Aus Sicht des Mozilla-Teams klingt das wohl wie eine Horrorgeschichte.

    • Die Crash-Reports von Firefox sind öffentlich.
      Den vom Autor hochgeladenen konnte ich allerdings nicht finden. Man kann sie auf crash-stats.mozilla.org ansehen.
      Falls das Profil noch vorhanden ist, lässt sich die Crash-ID mit dieser Anleitung finden.
  • Der Artikel ist wirklich bizarr und großartig.
    Besonders eindrucksvoll fand ich, dass auf mindestens einer der about:-Seiten ein Performance-Bug entdeckt wurde. Das sollte definitiv weiter untersucht werden.

  • Die Erweiterungsliste lässt sich auch als Sitemap ansehen.
    Firefox-Add-ons-Sitemap,
    Chrome-Web-Store-Sitemap,
    Edge-Sitemap sind ebenfalls nützlich.

  • Das Video ist so lustig, dass mir die Tränen kamen.
    So fühlt sich Websurfen für ältere Menschen an, die sich mit Computern kaum auskennen. Ich wünschte, jemand würde das auch mit Chrome machen.

    • Die Erkenntnis, dass der falsche Erweiterungs-Button, auf den der Autor 30 Sekunden lang eingehämmert hat, in Wirklichkeit von einer Erweiterung erzeugt wurde, war unglaublich komisch. Und davon gab es sogar drei.
    • Am lustigsten fand ich persönlich den Metallrohr-Soundeffekt. Ich frage mich, welche Erweiterung den eingebaut hat.
    • Das hier wird wirklich ein legendärer Bug-Report.
    • Wenn jemand von nichts eine Ahnung hat und bei jedem Popup auf „Ja/Einverstanden/Bestätigen“ klickt, kommt zwangsläufig so etwas dabei heraus.
    • Ich weiß nicht, wo das Video ist. Ich habe gescrollt, aber nur Standbilder gesehen.
  • „Dieses Service-Mesh ist für unseren Anwendungsfall übertechnisiert, aber der Broker ist für 84.205 Mikrodienste zu langsam.“
    Diese endlose Spannung kommt mir nur allzu bekannt vor.

  • Das erinnert mich an das legendäre NPM-Paket, das von jedem NPM-Paket abhing.
    Der passende Artikel ist wirklich zum Schreien komisch.

  • Der Satz „Nachdem ich damit fast alle Erweiterungen installiert habe, wirkt alles, was ich vorher gemacht habe, irgendwie dumm“ hat bei mir voll ins Schwarze getroffen.
    Ich hatte ein ganz ähnliches Gefühl von Leere.