Nach einer Analyse der Forscher von StepSecurity nutzte der Angreifer nicht – wie bei manipulierten Updates sonst üblich – kompromittierte Konten der Projektbetreiber, sondern eine Schwachstelle im Workflow des Projekts aus.

Konkret hinterließ der Angreifer einen bösartigen Kommentar an einem Pull Request, der eine Schwachstelle für eine Script-Injection in GitHub Actions ausnutzte. Dadurch führte der Workflow von Angreifern kontrollierten Shell-Code aus. Auf diesem Weg wurde das GITHUB_TOKEN des Workflows offengelegt, das anschließend dazu diente, einen signierten Commit und ein Tag (v0.23.3) zu fälschen und damit die legitime Release-Pipeline des Projekts auszulösen.

Diese Pipeline baute und veröffentlichte das mit einer Hintertür versehene Paket auf PyPI sowie ein bösartiges Image in der GitHub Container Registry – es erschien dadurch wie eine offizielle Veröffentlichung.

Die Schadversion enthielt die Datei elementary.pth, die beim Start automatisch ausgeführt wurde und einen Secrets-Stealer nachlud, der auf sensible Daten abzielte. Laut den Forschern erreichte dieselbe Schadlast auch das Docker-Image des Projekts, weil der Workflow zur Paketveröffentlichung auf PyPI zugleich einen Build-and-Push-Job für das Docker-Image enthält.

StepSecurity zufolge zogen sich Systeme, die keine fest gepinnten Versionen verwendeten, den manipulierten Build automatisch.

Wer die schädliche Version elementary-data==0.23.3 sowie die Images mit den Tags ghcr.io/elementary-data/elementary:0.23.3 und :latest heruntergeladen hat, sollte sämtliche Geheimnisse neu ausstellen und die betroffenen Umgebungen aus einem bekannt sicheren Zustand wiederherstellen.