flawopen.com/AI Security/progress-arcgenai-generator-command-injection-cve-2026-91140
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]
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
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]
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]
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]
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]
# 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 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
- ✓Inventarisasi instalasi ARCGenAI-Generator, salinan di repositori, serta ruang kerja pengembang dan CI; verifikasi versi produk itu sendiri, bukan hanya konektor induk.[1], [3]
- ✓Perbarui ARCGenAI-Generator ke versi 2.1 atau yang lebih baru. Sebelum itu, jangan memproses dokumen Swagger/OpenAPI yang tidak tepercaya dengan versi 2.0.[1], [3]
- ✓Tinjau instruksi yang diperbaiki di
.github/agents/ARCGenAI-Generator.agent.md: operasi berkas native diutamakan,{fileName}harus lolos allowlist, dan ekspansi shell dikutip.[2] - ✓Rekomendasi FlawOpen: Perlakukan spesifikasi API dan nama turunan skema sebagai input tidak tepercaya selama pembuatan, pembersihan, dan validasi; jangan menganggap agen AI memisahkan data dan perintah tanpa kontrol eksplisit.
- ✓Rekomendasi FlawOpen: Jalankan alat pengembang dengan hak minimum dan bila memungkinkan isolasikan pembuatan dokumen dari repositori sumber, bahan penandatanganan, kredensial cloud, dan rahasia produksi.
- ✓Rekomendasi FlawOpen: Tambahkan uji regresi non-destruktif untuk allowlist nama berkas dan pemilihan pembersihan tanpa shell; gunakan nama aman dan fixture pengujian sementara saja.
- ✓Rekomendasi FlawOpen: Untuk ruang kerja pengembang atau CI yang menjalankan ARCGenAI-Generator 2.0 pada dokumen tidak tepercaya, tinjau telemetri proses dan berkas yang tersedia di sekitar eksekusi tersebut. Ketiadaan telemetri adalah celah jaminan, bukan bukti kompromi atau keamanan.