← Alle Checks
SicherheitTypische Schwere: Hoch

Scanner für veraltete Bibliotheken

Erkennt verwundbare oder nicht mehr unterstützte Versionen von jQuery, AngularJS und Bootstrap mit bekannten XSS-CVEs.

Was es prüft

Dieser Scanner erkennt die Versionen gängiger Frontend-Bibliotheken wie jQuery, AngularJS und Bootstrap, die deine Seite lädt. Er meldet jene, die verwundbar oder am Ende ihres Lebenszyklus sind und bekannte, dokumentierte XSS-Fehler haben.

Warum es wichtig ist

Eine Bibliothek mit öffentlichen Schwachstellen zu nutzen, ist eine wohlbekannte offene Tür: Angreifer suchen genau nach diesen Versionen, weil der Fehler bereits veröffentlicht ist. Ein XSS über eine veraltete Bibliothek kann Sitzungsdiebstahl oder das Einschleusen von Inhalten auf deiner Seite ermöglichen.

Wie man es behebt

Aktualisiere diese Bibliotheken auf eine unterstützte Version ohne bekannte Schwachstellen und prüfe vorher, dass nichts kaputtgeht. Wenn eine Bibliothek nicht mehr gepflegt wird, wie AngularJS, ziehe den Umstieg auf eine moderne Alternative in Betracht, die weiter Updates bekommt.

Wie diese Prüfung funktioniert

Scanaris sammelt das HTML deiner Startseite und lädt bis zu fünfzehn ihrer Skripte herunter: alle, die von deiner eigenen Domain kommen, und von den externen die mit „jquery" im Pfad. In diesem Text sucht sie die Versions-Banner, die Bibliotheken am Dateianfang mitführen. Drei Fälle öffnen einen Befund, alle mit mittlerem Schweregrad. jQuery vor 3.5.0: bekannte XSS-Schwachstellen (CVE-2020-11022 und CVE-2020-11023) in der HTML-Verarbeitung. AngularJS, jede 1.x-Version: Das Framework erreichte im Januar 2022 das Lebensende und bekommt keine Sicherheitspatches mehr. Bootstrap 3.x vor 3.4.1 oder 4.x vor 4.3.1: XSS über data--Attribute in Tooltips und Popovers (CVE-2019-8331). Gemeldet wird nur, wenn die Versionsnummer ausgeschrieben gefunden wird; ist die Datei ohne Banner minifiziert, wird nicht geraten.

Warum das wichtig ist

Eine XSS-Schwachstelle in einer Bibliothek, die deine ganze Seite lädt, ist eine offene Tür auf allen Seiten zugleich: Ein Angreifer, der Text dorthin bekommt, wo die Bibliothek ihn als HTML interpretiert (ein Kommentar, ein Profilname, ein URL-Parameter), führt JavaScript mit der Sitzung dessen aus, der es sieht. Für diese drei Bibliotheken sind die Fehler seit Jahren öffentlich, mit veröffentlichten Ausnutzungsbeispielen, und automatische Werkzeuge testen sie standardmäßig. Der Fall AngularJS ist anders, aber langfristig schlimmer: Es geht nicht um einen konkreten Fehler, sondern darum, dass der nächste, der auftaucht, nie behoben wird.

Warum das passiert

Weil sie funktionieren. Ein jQuery 1.12 von 2016 tut weiter, was es tat, und niemand fasst es an, aus Angst, etwas kaputt zu machen. WordPress-Themes und -Plugins sind der typische Fall: Der WordPress-Kern liefert seit Version 5.6 jQuery 3.7 mit, aber ein altes Theme kann seine eigene Kopie laden. Es taucht auch in gekauften HTML-Templates, geerbten Admin-Panels und Projekten auf, in denen die KI ein Beispiel mit einer jahrealten CDN-URL kopiert hat.

So behebst du es

  • jQuery: aktualisiere auf die neueste 3.x (3.7 ist der aktuelle Zweig). Ändere die CDN-URL oder die lokale Datei und lade ein paar Tage lang jquery-migrate, damit es dich in der Konsole auf alte Aufrufe hinweist, die anzupassen sind. Teste Formulare, Menüs und jedes jQuery-Plugin, das du nutzt.
  • Bootstrap: bist du auf 3.x, wechsle auf 3.4.1, das kompatibel ist; auf 4.x, auf 4.6.2. Das sind Wartungsversionen ohne Designänderungen. Der Sprung auf 5.x ist eine größere Migration, weil es jQuery fallen lässt und Klassen umbenennt; plane das separat.
  • AngularJS: Es gibt keine sichere Version, auf die du wechseln könntest. Die Optionen sind migrieren (zu modernem Angular, Vue oder React, bei großen Apps in Teilen), kommerziellen erweiterten Support einkaufen, oder die App isolieren: keine sensiblen Daten, hinter Authentifizierung und mit strenger CSP.
  • WordPress: aktualisiere Theme und Plugins; lädt eines davon weiter ein altes jQuery, ersetze es. Deaktiviere nicht das jQuery des Kerns, um „zu sparen": Das ist die gute Version.
  • Allgemein: installiere Bibliotheken mit npm statt CDN-URLs zu kopieren, und aktiviere die Abhängigkeitswarnungen von GitHub oder npm audit, um von der nächsten zu erfahren.

Prüf, ob es behoben ist

curl -s https://deinedomain.de | grep -oE 'src="[^"]*(jquery|bootstrap|angular)[^"]*"'
curl -s SKRIPT_URL | head -c 400 | grep -oE '(jQuery|Bootstrap|AngularJS)[^0-9]{0,30}v?[0-9]+\.[0-9]+\.[0-9]+'

Der erste Befehl zeigt dir, welche Dateien deine Seite lädt; der zweite, mit der URL jeder einzelnen, die Version, die sie angeben. Erwartet: jQuery 3.5.0 oder neuer, Bootstrap 3.4.1, 4.3.1 oder neuer, und kein AngularJS.

Häufige Fragen

Werden nur diese drei Bibliotheken erkannt?

Derzeit ja: Sie machen den Großteil der ausgenutzten Frontend-Schwachstellen auf echten Seiten aus. Für den Rest deiner Abhängigkeiten decken npm audit oder die GitHub-Warnungen ab, was ein externer Scan nicht sehen kann.

Ich nutze jQuery 1.12, füge aber nie Nutzer-HTML ein. Bin ich sicher?

Solange niemand nicht vertrauenswürdigen Text durch .html(), .append() oder Ähnliches schickt, löst der konkrete Fehler nicht aus. Aber das über die ganze Seite und alle Plugins zu garantieren ist schwer, und das Update auf 3.x kostet meist einen Nachmittag. Bis dahin begrenzt eine strenge CSP den Schaden; schwache CSP prüft sie.

Und wenn die Bibliothek von einem CDN kommt?

Dann fixiere zusätzlich zum Update die Version und füge integrity hinzu, damit sie niemand unter dir austauschen kann; Subresource Integrity erklärt wie.

Prüf es auf deiner Website

Scanne deine Website kostenlos und sieh, ob dieser und 44 weitere Checks bestehen, mit einem Fix-Prompt für jedes Problem.

Meine Website kostenlos scannen

Verwandte Checks