Sicherheitslücke in Sidekiq-Unique-Jobs geschlossen
Die Verwaltung von Hintergrundaufgaben ist für viele Unternehmen ein entscheidender Bestandteil moderner Webanwendungen. Sidekiq gehört zu den führenden Lösungen in diesem Bereich und wird durch das Zusatzmodul Sidekiq-Unique-Jobs noch leistungsfähiger. Doch gerade in beliebten Open-Source-Lösungen lohnt sich ein genauer Blick: In Version 8.0.6 (und früher) von Sidekiq-Unique-Jobs haben wir eine reflektierte Cross-Site-Scripting (XSS)-Schwachstelle entdeckt, die potenziell die Sicherheit Ihrer Systeme gefährden kann.
Angreifer konnten durch manipulierte Filter-Parameter in mehreren Admin-Bereichen bösartigen Code einschleusen, der beim Aufruf bestimmter Ansichten ausgeführt wurde. Unsere Meldung an das Entwicklerteam führte dazu, dass die Schwachstellen ab Version 8.0.7 beseitigt wurden.
In diesem Beitrag erfahren Sie, wie diese Sicherheitslücke entstand, wie ein Angriff aussehen kann und wie Sie Handlungsbedarf schnell erkennen. Schützen Sie Ihre IT-Landschaft proaktiv. Gerne beraten wir Sie persönlich zu Sicherheitsupdates und Best Practices rund um Ihre Infrastruktur!
In Sidekiq-Unique-Jobs Version 8.0.6 (oder früher) wurde eine reflektierte Cross-Site-Scripting-Sicherheitslücke entdeckt. Wir haben diese Sicherheitslücke dem Entwickler gemeldet, der das Problem behoben und die Sicherheitslücke in Version 8.0.7 geschlossen hat.
Beschreibung
Sidekiq wird zur Verwaltung und Ausführung von Hintergrundaufgaben verwendet. Sidekiq Unique-Jobs fügt Sidekiq-Aufgaben Einschränkungen hinzu.
Die folgenden drei Filterfunktionen erwiesen sich als anfällig für reflektiertes Cross-Site-Scripting.
/sidekiq/locks?filter={payload}
/sidekiq/changelogs?filter={payload}
/sidekiq/expiring_locks?filter={payload}
Im folgenden Screenshot wurde die Nutzlast „><script>alert(document.domain)</script>“ in der ChangeLogs-Filterfunktion verwendet, um ein PoC-Popup zu öffnen, das die aktuelle Domain anzeigt.
Die Locks-Funktionalität erwies sich im folgenden Pfad als anfällig:
/sidekiq/locks/{payload}
Ein Beispiel für eine Nutzlast wäre
„><img src=a onerror=alert(document.domain)>
Diese Nutzlast wird an zwei Stellen in den HTML-Code eingefügt und daher zweimal ausgeführt.
Zugewiesene CVEs:
https://nvd.nist.gov/vuln/detail/CVE-2023-46950
https://nvd.nist.gov/vuln/detail/CVE-2023-46951
Betroffene Komponente: Sidekiq-unique-jobs
Angriffstyp: Remote
Auswirkung Codeausführung: Ja
Angriffsvektoren: Um die Schwachstelle auszunutzen, muss der Benutzer auf einen vom Angreifer vorbereiteten bösartigen Link klicken.
Referenz: https://github.com/mhenrixon/sidekiq-unique-jobs/security/advisories/GHSA-cmh9-rx85-xj38
