Durch die Kompromittierung des Release-Erstellungsprozesses in den von Red Hat betriebenen RedHatInsights-Repositories über GitHub Actions konnten Angreifer 64 bösartige Versionen in das NPM-Verzeichnis veröffentlichen, die 32 NPM-Pakete für die Red Hat Cloud Services betreffen. Für jedes betroffene NPM-Paket wurden zwei bösartige Versionen veröffentlicht, in denen ein Code zur Aktivierung einer neuen Variante des Wurms mini-shai-hulud integriert war, der nach Tokens und Anmeldedaten im aktuellen Umfeld sucht.
Der Wurm war in der Datei index.js integriert und wurde durch einen preinstall-Handler aktiviert, der bei der Installation des betroffenen Pakets aufgerufen wird. Nach der Aktivierung suchte der Wurm im System nach Tokens für NPM (~/.npmrc), PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp und Kubernetes (K8s) sowie nach privaten SSH-Schlüsseln. Die gefundenen Daten wurden an die Angreifer gesendet. Bei Entdeckung eines Tokens für den Zugriff auf das NPM-Verzeichnis veröffentlichte der Wurm automatisch neue bösartige Releases für die in der aktuellen Umgebung entwickelten Pakete und traf den Abhängigkeitsbaum.
Der Zugriff auf GitHub Actions wurde durch die Kompromittierung eines Mitarbeiterkontos von Red Hat erlangt, was es Angreifern ermöglichte, direkt Commits in die Repositories javascript-clients, frontend-components und platform-frontend-ai-toolkit zu senden, ohne eine Überprüfungsphase durchlaufen zu müssen. Über die Commits wurde eine Datei ci.yaml in das Continuous Integration-System eingefügt, die beim Start des Build-Prozesses über die Plattform bun das Skript _index.js ausführte. Das Skript nutzte die Berechtigung "id-token: write", um bei GitHub ein OIDC (OpenID Connect) Token anzufordern, das dann zur Authentifizierung bei NPM mittels des Mechanismus "trusted publishing" verwendet wurde.
NPM-Pakete, die bösartigen Code enthalten:
- @redhat-cloud-services/chrome (2.3.1, 2.3.2)
- @redhat-cloud-services/compliance-client (4.0.3, 4.0.4)
- @redhat-cloud-services/config-manager-client (5.0.4, 5.0.5)
- @redhat-cloud-services/entitlements-client (4.0.11, 4.0.12)
- @redhat-cloud-services/eslint-config-redhat-cloud-services (3.2.1, 3.2.2)
- @redhat-cloud-services/frontend-components (7.7.2, 7.7.3)
- @redhat-cloud-services/frontend-components-advisor-components (3.8.2)
- @redhat-cloud-services/frontend-components-config (6.11.3, 6.11.4)
- @redhat-cloud-services/frontend-components-config-utilities (4.11.2, 4.11.3)
- @redhat-cloud-services/frontend-components-notifications (6.9.2, 6.9.3)
- @redhat-cloud-services/frontend-components-remediations (4.9.2, 4.9.3)
- @redhat-cloud-services/frontend-components-testing (1.2.1, 1.2.2)
- @redhat-cloud-services/frontend-components-translations (4.4.1, 4.4.2)
- @redhat-cloud-services/frontend-components-utilities (7.4.1, 7.4.2)
- @redhat-cloud-services/hcc-feo-mcp (0.3.1, 0.3.2)
- @redhat-cloud-services/hcc-kessel-mcp (0.3.1, 0.3.2)
- @redhat-cloud-services/hcc-pf-mcp (0.6.1, 0.6.2)
- @redhat-cloud-services/host-inventory-client (5.0.3, 5.0.4)
- @redhat-cloud-services/insights-client (4.0.4, 4.0.5)
- @redhat-cloud-services/integrations-client (6.0.4, 6.0.5)
- @redhat-cloud-services/javascript-clients-shared (2.0.8, 2.0.9)
- @redhat-cloud-services/notifications-client (6.1.4, 6.1.5)
- @redhat-cloud-services/patch-client (4.0.4, 4.0.5)
- @redhat-cloud-services/quickstarts-client (4.0.11, 4.0.12)
- @redhat-cloud-services/rbac-client (9.0.3, 9.0.4)
- @redhat-cloud-services/remediations-client (4.0.4, 4.0.5)
- @redhat-cloud-services/rule-components (4.7.2, 4.7.3)
- @redhat-cloud-services/sources-client (3.0.10, 3.0.11)
- @redhat-cloud-services/topological-inventory-client (3.0.10, 3.0.11)
- @redhat-cloud-services/tsc-transform-imports (1.2.2)
- @redhat-cloud-services/types (3.6.1, 3.6.2, 3.6.4)
- @redhat-cloud-services/vulnerabilities-client (2.1.8, 2.1.9)
Quelle: opennet.ru
