flawopen.com/AI Security/progress-arcgenai-generator-command-injection-cve-2026-91140
CVE-2026-91140: Befehlsinjektion im Progress ARCGenAI-Generator
Ein präpariertes Swagger/OpenAPI-Dokument konnte die shellbasierte Bereinigung temporärer Dateien in ARCGenAI-Generator 2.0 beeinflussen, wenn ein Entwickler das Tool ausführte. Progress behob den Ablauf in Version 2.1; das Advisory meldet keine aktive Ausnutzung.[1], [3], [4]
Eine Bereinigungsanweisung in einer Werkstatt erhält einen Dateinamen aus einem anderen Schritt und übergibt ihn an das Betriebssystem. Wird der Name als Teil eines Shell-Befehls statt als Text behandelt, kann die Bereinigung unerwartete Befehle ausführen. Die Korrektur vermeidet die Shell, wo möglich, und schränkt jeden Dateinamen ein und setzt ihn in Anführungszeichen, falls er doch an sie übergeben werden muss.[1], [2]
Kernkonzepte & Begriffe
ARCGenAI-Generator- Progress-DataDirect-Tool zur Erzeugung von REST-Connector-Artefakten aus Swagger/OpenAPI-Eingaben. Betroffen ist Version 2.0; Progress nennt 2.1 als korrigiert.[1], [3]
Swagger/OpenAPI-Dokument- Strukturierte API-Beschreibung für den Generator. Schemanamen und Metadaten sind externe Eingaben und dürfen nicht zu Shell-Syntax werden.[1], [4]
Shell Command Injection- Fehler an der Datensyntax-Grenze, bei dem nicht vertrauenswürdige Eingaben den vom Betriebssystem-Shell interpretierten Befehl verändern.[1], [4], [5]
Bereinigung temporärer Dateien- Entfernen von Zwischenständen nach dem Zusammenbau. Das Advisory verortet den Fehler in shellbasierten Bereinigungsanweisungen.[1], [2]
CWE-78- Unzureichende Neutralisierung spezieller Elemente in einem Betriebssystembefehl; für
CVE-2026-91140zugeordnet.[4]
Framework-Zuordnungen
- CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-78
Schritt-für-Schritt Angriffsablauf
Dokumentbasierte Namen gelangen in den Ablauf
Der CVE-Eintrag nennt ein präpariertes Swagger/OpenAPI-Dokument als Auslöser und setzt voraus, dass ein Entwickler den Generator startet. Der öffentliche Fix-Commit zeigt, dass die Bereinigung {fileName} vom Orchestrator erhält; die zitierten Quellen belegen nicht, dass dieser Dateiname aus dem Dokument stammt.[1], [2]
Bereinigungsanweisungen erreichen die Shell
Die öffentlichen Agent-Anweisungen vor dem Fix nutzten das Terminal zur Bereinigung temporärer Dateien und interpolierten {fileName} in Pfadausdrücke. Laut Fix-Commit wird dieser Wert vom Orchestrator übergeben; die zitierten Quellen belegen nicht, dass er aus dem Dokument stammt.[2]
Das Betriebssystem kann Eingaben als Befehlssyntax lesen
Ein präpariertes Dokument kann die Bereinigungsanweisung dazu bringen, unerwartete Betriebssystembefehle im Kontext des Entwicklerprozesses auszuführen. Der CVE-Eintrag beschreibt Befehlsausführung auf dem Entwicklerrechner; er veröffentlicht weder eine konkrete Exploit-Zeichenfolge noch die Behauptung, jeder Generatorlauf sei verwundbar.[1], [4], [5]
Quellcode: Verwundbar vs. Sicher
Das verwundbare Feld zitiert die Agent-Anweisungen von Progress vor dem Fix. Das korrigierte Feld fasst die Änderungen aus Commit 7ede6d9 zusammen: native Dateifunktionen bevorzugen, Namen anhand der Allowlist prüfen und jede Expansion quotieren, falls ein Shell-Fallback nötig ist. Ausführbare Bereinigungsbefehle und Exploit-Eingaben sind ausgelassen.[2]
# Vor dem Progress-Fix: Agentenanweisungen zum Bereinigen temporärer Dateien
After successful assembly, delete temp files using the terminal with shell-native commands.
Use retry logic to handle transient file locks.
# Progress-Fix: nach Möglichkeit eine native Dateioperation verwenden
Prefer your file-editing tool's native delete/remove capability over the terminal.
Removing temp files is a plain file-system operation — it does not need a shell.
# Falls eine Shell-Ausweichlösung nötig ist, {fileName} mit ^[A-Za-z0-9._-]+$ prüfen
# und jede Expansion in den plattformspezifischen Bereinigungsanweisungen in Anführungszeichen setzen.
Checkliste für Engineering & Systemsicherheit
- ✓Erfassen Sie ARCGenAI-Generator-Installationen, ausgecheckte Kopien und Entwickler- oder CI-Arbeitsbereiche; prüfen Sie die Produktversion statt nur die des übergeordneten Connectors.[1], [3]
- ✓Aktualisieren Sie ARCGenAI-Generator auf Version 2.1 oder neuer. Bis dahin sollten mit Version 2.0 keine nicht vertrauenswürdigen Swagger/OpenAPI-Dokumente verarbeitet werden.[1], [3]
- ✓Prüfen Sie die korrigierten Anweisungen in
.github/agents/ARCGenAI-Generator.agent.md: native Dateifunktionen haben Vorrang,{fileName}wird allowlist-geprüft und Shell-Expansionen werden quotiert.[2] - ✓FlawOpen-Empfehlung: Behandeln Sie API-Spezifikationen und schemaabgeleitete Namen während Generierung, Bereinigung und Validierung als nicht vertrauenswürdige Eingaben; verlassen Sie sich ohne explizite Kontrollen nicht auf die Datentrennung eines Agenten.
- ✓FlawOpen-Empfehlung: Betreiben Sie Entwicklertools mit minimalen Rechten und isolieren Sie die Dokumentgenerierung nach Möglichkeit von Quellcode, Signaturmaterial, Cloud-Zugangsdaten und Produktionsgeheimnissen.
- ✓FlawOpen-Empfehlung: Ergänzen Sie nicht destruktive Regressionstests für die Dateinamen-Allowlist und die shellfreie Bereinigungsauswahl; verwenden Sie harmlose Namen und nur temporäre Test-Fixtures.
- ✓FlawOpen-Empfehlung: Prüfen Sie für Entwickler- oder CI-Arbeitsbereiche, in denen ARCGenAI-Generator 2.0 nicht vertrauenswürdige Dokumente verarbeitet hat, verfügbare Prozess- und Dateitelemetrie rund um diese Läufe. Fehlende Telemetrie ist eine Nachweislücke, kein Beleg für Kompromittierung oder Sicherheit.