FlawOpen

flawopen.com/AI Security/progress-arcgenai-generator-command-injection-cve-2026-91140

● CVE-2026-91140 · CVSS 9.6 · Kritis
Riset Keamanan · FlawOpen

CVE-2026-91140: Injeksi Perintah pada Progress ARCGenAI-Generator

Dokumen Swagger/OpenAPI yang dibuat khusus dapat memengaruhi pembersihan berkas sementara berbasis shell di ARCGenAI-Generator 2.0 saat pengembang menjalankannya. Progress memperbaiki alur ini di versi 2.1; advisori tidak melaporkan eksploitasi aktif.[1], [3], [4]

💡 Penjelasan Sederhana (ELI5)

Instruksi pembersihan di bengkel menerima nama berkas dari langkah sebelumnya lalu meneruskannya ke sistem operasi. Jika nama itu diperlakukan sebagai bagian dari instruksi shell, bukan teks biasa, proses pembersihan dapat menjalankan perintah yang tidak diinginkan. Perbaikan menghindari shell bila memungkinkan serta membatasi dan mengutip nama berkas yang tetap harus diteruskan.[1], [2]

Konsep Kunci & Istilah

ARCGenAI-Generator
Alat Progress DataDirect yang menghasilkan artefak konektor REST dari input Swagger/OpenAPI. Versi terdampak adalah 2.0; Progress menyatakan 2.1 telah diperbaiki.[1], [3]
Dokumen Swagger/OpenAPI
Deskripsi API terstruktur yang diberikan ke generator. Nama skema dan metadata adalah input eksternal dan tidak boleh menjadi sintaks shell.[1], [4]
Injeksi perintah shell
Kegagalan batas data-ke-perintah ketika input tidak tepercaya mengubah perintah yang ditafsirkan shell sistem operasi.[1], [4], [5]
Pembersihan berkas sementara
Penghapusan berkas perantara setelah perakitan. Advisori menempatkan masalah pada instruksi pembersihan berbasis shell.[1], [2]
CWE-78
Netralisasi yang tidak tepat atas elemen khusus dalam perintah sistem operasi; ditetapkan untuk CVE-2026-91140.[4]

Pemetaan kerangka kerja

  • Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-78

Alur Serangan Langkah demi Langkah

Langkah 1

Pengembang menggunakan ARCGenAI-Generator 2.0

Komponen terdampak adalah Progress DataDirect Autonomous REST Connector GenAI Agents ARCGenAI-Generator versi 2.0. Pengembang menjalankannya untuk memproses dokumen Swagger/OpenAPI.[1], [3]

Langkah 2

Nama dari dokumen masuk ke alur kerja

Catatan CVE menyebut dokumen Swagger/OpenAPI yang dibuat khusus sebagai pemicu dan menyatakan pengembang harus menjalankan generator. Commit perbaikan publik menunjukkan proses pembersihan menerima {fileName} dari orchestrator; sumber yang dikutip tidak membuktikan bahwa nama ini berasal dari dokumen.[1], [2]

Langkah 3

Instruksi pembersihan mencapai shell

Instruksi agen publik sebelum perbaikan menggunakan terminal untuk membersihkan berkas sementara dan menginterpolasikan {fileName} ke dalam ekspresi jalur. Commit perbaikan menyebut nilai itu diterima dari orchestrator; sumber yang dikutip tidak membuktikan bahwa nama tersebut berasal dari dokumen.[2]

Langkah 4

Sistem operasi dapat menafsirkan input sebagai sintaks perintah

Dokumen yang dibuat khusus dapat membuat instruksi pembersihan menjalankan perintah OS tak terduga dengan konteks proses pengembang. Catatan CVE menjelaskan eksekusi perintah pada mesin pengembang; catatan itu tidak menerbitkan string eksploit tertentu atau menyatakan setiap eksekusi generator pasti rentan.[1], [4], [5]

Langkah 5

Versi 2.1 mengurangi batas shell

Patch mengutamakan operasi berkas native, mewajibkan nama cocok dengan ^[A-Za-z0-9._-]+$, dan mengutip setiap ekspansi bila shell fallback diperlukan. Progress menyebut 2.1 sebagai versi yang diperbaiki.[2], [3]

Kode Sumber: Rentan vs Aman

Panel rentan mengutip instruksi agen Progress sebelum perbaikan. Panel yang diperbaiki merangkum perubahan instruksi pada commit 7ede6d9: utamakan operasi berkas native, validasi nama dengan allowlist, dan kutip setiap ekspansi jika shell fallback diperlukan. Perintah pembersihan yang dapat dijalankan dan input eksploit tidak disertakan.[2]

IMPLEMENTASI RENTAN
# Sebelum perbaikan Progress: instruksi agen untuk membersihkan berkas sementara
After successful assembly, delete temp files using the terminal with shell-native commands.
Use retry logic to handle transient file locks.
PERBAIKAN AMAN & KUAT
# Perbaikan Progress: gunakan operasi berkas native jika memungkinkan
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.

# Jika shell fallback diperlukan, validasi {fileName} dengan ^[A-Za-z0-9._-]+$
# dan beri tanda kutip pada setiap ekspansi dalam instruksi pembersihan khusus platform.

Daftar Periksa Penguatan Sistem Rekayasa

Sumber

← AI Security Directory →