
POC for CVE-2026-49009, an authenticated path traversal to RCE issue in Mender Server.
▄█████ ██ ██ ██████ ████▄ ▄██▄ ████▄ ▄██▀▀▀ ██ ██ ▄█▀▀█▄ ▄██▄ ▄██▄ ▄█▀▀█▄
██ ██▄▄██ ██▄▄ ▄▄▄ ▄██▀ ██ ██ ▄██▀ ██▄▄▄ ▄▄▄ ▀█████ ▀▀▀██ ██ ██ ██ ██ ▀▀▀██
▀█████ ▀██▀ ██▄▄▄▄ ███▄▄ ▀██▀ ███▄▄ ▀█▄▄█▀ ██ ▄▄██▀ ▀██▀ ▀██▀ ▄▄██▀
░█▄█░█▀▀░█▀█░█▀▄░█▀▀░█▀▄░░░█▀▀░█▀▀░█▀▄░█░█░█▀▀░█▀▄░░░█▀▄░█▀▀░█▀▀░
░█░█░█▀▀░█░█░█░█░█▀▀░█▀▄░░░▀▀█░█▀▀░█▀▄░▀▄▀░█▀▀░█▀▄░░░█▀▄░█░░░█▀▀░
░▀░▀░▀▀▀░▀░▀░▀▀░░▀▀▀░▀░▀░░░▀▀▀░▀▀▀░▀░▀░░▀░░▀▀▀░▀░▀░░░▀░▀░▀▀▀░▀▀▀░
Ich habe eine kritische Sicherheitslücke im Single-File-Artefakt-Erstellungs-Workflow des Mender Servers entdeckt und verantwortungsvoll gemeldet. Das Problem begann als ein Fehler bei der Eingabebereinigung und Pfadüberquerung im benutzergesteuerten args.filename-Feld, aber ich konnte zeigen, dass der Fehler nicht bei einem willkürlichen Dateischreibzugriff stoppte. Indem ich eine ausführbare Datei eines Workers im Artefakt-Erstellungs-Container anvisierte, eskalierte ich das Problem zu einer zuverlässigen Remotecodeausführung.
In der Praxis konnte ein authentifizierter Angreifer mit Zugriff auf die Artefakterstellung /usr/bin/mender-artifact innerhalb des create-artifact-worker überschreiben. Der Workflow rief dann genau dieses Binary während der normalen Artefakterstellung auf, was die Ausführung der vom Angreifer kontrollierten Nutzlast zur Folge hatte.
Dadurch wurde aus einem Traversal-/Überschreibungsfehler ein Backend-Codeausführungsproblem im Artefakt-Workflow.
Der verwundbare Workflow akzeptierte angreifergesteuerte Eingaben im Single-File-Artefakt-Erstellungsablauf und schränkte nicht ausreichend ein, wohin der hochgeladene Inhalt geschrieben werden durfte.
Ich fand heraus, dass ich args.filename kontrollieren und eine Pfadüberquerung missbrauchen konnte, um außerhalb des vorgesehenen Ziels zu schreiben. Anstatt eine normale Artefakt-Eingabedatei zu schreiben, richtete ich das Schreibziel auf /usr/bin/mender-artifact innerhalb des Worker-Containers. Da der Laufzeitbenutzer im verwundbaren Setup Besitzer dieses Binaries war, gelang der Schreibvorgang.
Der Workflow rief später mender-artifact als Teil des Artefakt-Erstellungsprozesses auf. Da ich diese ausführbare Datei bereits durch meine eigene Nutzlast ersetzt hatte, führte der Worker den vom Angreifer kontrollierten Code aus.
Ein Angreifer benötigte:
Auf hoher Ebene funktionierte die Angriffskette wie folgt:
/usr/bin/mender-artifact anvisierte.mender-artifact während der Artefakterstellung auf.Dies war bedeutsam, weil das verwundbare Schreibziel nicht nur eine beliebige Datei war. Es war ein Binary, dem der Workflow sofort vertraute und das er ausführte.
Ein erfolgreicher Angreifer konnte beliebige Befehle im gemeinsam genutzten Artefakt-Erstellungs-Worker ausführen.
Von dort aus reichte die Wirkung über eine einzelne Anfrage hinaus:
Kurz gesagt, dies war nicht nur ein Dateischreibfehler. Es war ein Codeausführungsfehler in einer sensiblen Backend-Komponente, die sich im Software-Auslieferungspfad befand.
HackerOne bewertete den Bericht letztlich als Kritisch und zahlte eine Prämie von 3.000 $, was mit den praktischen Auswirkungen übereinstimmte, die während der Validierung demonstriert wurden.
Die Grundursache war ein Vertrauensgrenzenversagen im Single-File-Artefakt-Erstellungspfad.
Der Workflow vertraute dem angreifergesteuerten Pfad-Eingabe zu weit in der Backend-Verarbeitungskette. Es erlaubte einem benutzerbeeinflussten Dateinamen, seinen vorgesehenen Ort zu verlassen und sensible Dateisystemziele zu erreichen. Die Worker-Umgebung verstärkte diesen Fehler dann, da sie ausführbare Pfade offenlegte, die vom Laufzeitbenutzer beschreibbar und später vom Workflow selbst ausgeführt wurden.
Diese Kombination ergab eine saubere Angriffskette:
Benutzergesteuerte Pfad-Eingabe → Willkürliches Dateiüberschreiben → Überschreiben einer vertrauenswürdigen ausführbaren Datei → Backend-RCE
CVE-2026-49009 zeigt, wie ein scheinbar eng begrenzter Eingabebereinigungsfehler zu einer vollständigen RCE-Kette werden kann, wenn ein vertrauenswürdiger Workflow vom Angreifer kontrollierte Daten in ausführbare Pfade schreibt.
In den verwundbaren Versionen konnte ein authentifizierter Angreifer die Single-File-Artefakt-Erstellungsfunktion in eine Pfadüberquerungs-, willkürliche Überschreibungs- und Remotecodeausführungskette verwandeln. Die gepatchten Versionen blockierten diesen Pfad und stellten den Workflow wieder auf sein beabsichtigtes Verhalten zurück.