Auf LuaRocks.org, dem zentralen Paketregister für die Programmiersprache Lua, führten Angreifer ab dem 9. Juli 2026 eigenen Code auf dem Server aus. Ein registriertes Konto und eine präparierte Paketbeschreibung genügten dafür. Die Betreiber widerriefen inzwischen sämtliche API-Schlüssel und löschten die gespeicherten Zwei-Faktor-Geheimnisse.
drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügenDie LuaRocks-Lücke steckte in einem einzigen Funktionsaufruf: Der Server las hochgeladene Paketbeschreibungen mit der Lua-Funktion loadstring ein, ohne Bytecode auszuschließen. Den Fehler meldete der Sicherheitsforscher Vhyrro über die US-Cybersicherheitsbehörde CISA, doch Unbekannte waren ihm um Wochen zuvorgekommen.
Das Wichtigste in Kürze
- Jedes registrierte Konto konnte mit präpariertem Bytecode Code auf dem LuaRocks-Server ausführen.
- Angreifer nutzten die Lücke ab dem 9. Juli mehrfach und veröffentlichten drei Schadpakete.
- LuaRocks.org schloss die Lücke am 26. September und widerrief alle Zugangsdaten.
- Nutzer brauchen neue API-Schlüssel, neue Passwörter und den Client ab Version 3.12.
Wie gelangten die Angreifer auf den Server?

Eine Paketbeschreibung, bei Lua Rockspec genannt, ist selbst ein kleines Lua-Programm. LuaRocks.org führte jede hochgeladene Datei deshalb in einer leeren Umgebung ohne gefährliche Funktionen aus.[1] Die Funktion loadstring akzeptiert in Lua 5.1 und LuaJIT jedoch neben Quelltext auch vorkompilierten Bytecode. LuaJIT prüft solchen Bytecode überhaupt nicht.
Präparierter Bytecode kann so außerhalb seines eigenen Speicherbereichs lesen und schreiben. Vhyrro zeigt in seiner Analyse,[2] wie ein Angreifer im Arbeitsspeicher die versteckten Debug-Funktionen aufspürt und über sie die gesperrten Lua-Funktionen wieder aufruft. Die Plattform räumt ein, dass sich das Konto des Webservers volle Administratorrechte verschaffen konnte.[1]
Was taten die Angreifer mit dem Zugang?
LuaRocks.org identifizierte drei eigens angelegte Konten.[1] Am 9. Juli liefen erste Shell-Befehle über manipulierte Uploads. Am 7. August folgten ein offenbar versuchter Fernzugang und drei Schadpakete namens bcrcewon, 7e0b94029db0 und 7e0b9402f9c8. Auf die Upload-Schnittstelle zielten am 16. und 20. August mehrere hundert automatisierte Angriffsversuche.
Die Betreiber fanden keine manipulierten Bestandspakete. Als Gegenprobe diente ein täglicher Spiegel aller Pakete auf GitHub, außerhalb der Reichweite des Servers. LuaRocks.org geht trotzdem davon aus, dass die Angreifer die komplette Datenbank lesen konnten, darunter bcrypt-Passwort-Hashes und Zwei-Faktor-Geheimnisse.
Chronologie des Vorfalls
Ist der Fehler ein Einzelfall?
Das Lua-Handbuch warnt vor manipuliertem Bytecode und bietet mit dem Modus „t“ eine reine Textprüfung an.[3] Das Register nutzt diesen Modus jetzt und weist zusätzlich jede Datei mit dem Bytecode-Kennbyte ab.
RubyGems.org fiel im Januar 2013 einem fast identischen Muster zum Opfer. Über die YAML-Metadaten eines hochgeladenen Pakets führten Angreifer damals eigenen Ruby-Code auf dem Server aus.[4] In beiden Fällen behandelte die Plattform eine Beschreibungsdatei als harmlose Daten, obwohl das Format Code transportieren kann. Angriffe wie die Kaperung des npm-Pakets keyv oder das manipulierte Rust-Paket arrayref zielten auf einzelne Pakete, während der Angriff auf LuaRocks das Register selbst traf.
Elf Wochen lang bemerkte niemand die Fremden auf dem Server. Ohne den unabhängigen Spiegel auf GitHub könnte LuaRocks.org heute nicht belegen, dass die Pakete sauber geblieben sind.
— Markus Seyfferth, Chefredakteur Dr. Web
Was sollten Unternehmen mit Lua-Projekten jetzt tun?
Der Cyber Resilience Act der EU verpflichtet Hersteller seit dem 11. September 2026, aktiv ausgenutzte Schwachstellen in ihren Produkten binnen 24 Stunden an das zuständige CSIRT und die ENISA zu melden.[5] Steckt eines der drei Schadpakete in einem ausgelieferten Produkt, beginnt diese Frist. Vier Schritte stehen jetzt an:
- Legen Sie neue API-Schlüssel an und tauschen Sie die Schlüssel in Ihren CI-Pipelines aus.
- Ändern Sie das LuaRocks-Passwort samt gleichlautenden Passwörtern bei anderen Diensten, danach richten Sie die Zwei-Faktor-Anmeldung neu ein.
- Aktualisieren Sie den Client auf LuaRocks 3.12 oder neuer, weil ältere Versionen Paketbeschreibungen unter LuaJIT ebenso unsicher laden.
- Durchsuchen Sie Lockfiles und Build-Protokolle nach den drei Schadpaketen. LuaRocks.org stuft jeden betroffenen Rechner als kompromittiert ein.
Andere Register verschärfen ihre Upload-Regeln bereits vorbeugend: PyPI nimmt seit Juli keine neuen Dateien mehr in Releases an, die älter als 14 Tage sind.
Quellen
[1] LuaRocks.org: „Security Incident, September 2026“
[2] Vhyrro: „Conquering the Moon (luarocks.org remote code execution exploit)“, 27. September 2026
[3] Lua.org: „Lua 5.4 Reference Manual“, Funktion load
[4] RubyGems Blog: „Data Verification“, 31. Januar 2013
[5] Europäische Union: Verordnung (EU) 2024/2847 (Cyber Resilience Act), Artikel 14
Mehr Newshunger?
- Warum braucht die npm-Bibliothek mathmain einen verschlüsselten Loader?
- KI-Agenten fluteten RubyGems mit über 2.000 Schadpaketen
- Schädliches Rust-Paket arrayref: Der Schadcode startet beim Kompilieren
- Keyv kompromittiert: Der Angriff auf die npm-Lieferkette läuft noch
- 42 TanStack-Pakete vergiftet: Wurm umgeht SLSA-Provenance erstmals
- Dependabot wartet jetzt drei Tage: GitHubs neue Standard-Wartezeit gegen Lieferketten-Angriffe
- Cybersecurity-Grundlagen