flawopen.com/AI Security/progress-arcgenai-generator-command-injection-cve-2026-91140
CVE-2026-91140: Progress ARCGenAI-Generator में कमांड इंजेक्शन
डेवलपर द्वारा ARCGenAI-Generator 2.0 चलाने पर तैयार किया गया Swagger/OpenAPI दस्तावेज़ shell-आधारित अस्थायी-फ़ाइल सफ़ाई को प्रभावित कर सकता था। Progress ने 2.1 में इस workflow को ठीक किया; advisory सक्रिय exploitation की सूचना नहीं देता।[1], [3], [4]
कार्यशाला की सफ़ाई-सूचना को किसी पिछले चरण से फ़ाइल का नाम मिलता है और वह उसे ऑपरेटिंग सिस्टम तक भेजती है। यदि उस नाम को सामान्य पाठ के बजाय shell निर्देश का हिस्सा माना जाए, तो सफ़ाई अनचाहे commands चला सकती है। सुधार जहाँ संभव हो shell से बचता है और आवश्यक फ़ाइल नामों को सीमित करके quote करता है।[1], [2]
इस पेज के मुख्य शब्द
ARCGenAI-Generator- Progress DataDirect tool जो Swagger/OpenAPI input से REST connector artifacts बनाता है। प्रभावित release 2.0 है; Progress ने 2.1 को fixed बताया है।[1], [3]
Swagger/OpenAPI document- Generator को दिया गया structured API description। Schema names और metadata बाहरी input हैं और shell syntax नहीं बनने चाहिए।[1], [4]
Shell command injection- Data-command boundary की विफलता, जिसमें untrusted input OS shell द्वारा interpret किए गए command को बदल देता है।[1], [4], [5]
Temporary-file cleanup- Assembly के बाद intermediate files हटाने की प्रक्रिया। Advisory समस्या को shell-based cleanup instructions में रखता है।[1], [2]
CWE-78- OS command में special elements का अनुचित neutralization;
CVE-2026-91140के लिए यही weakness assign हुई है।[4]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-78
हमले का चरण-दर-चरण प्रवाह
दस्तावेज़ से निकले नाम workflow में आते हैं
CVE रिकॉर्ड में तैयार किया गया Swagger/OpenAPI दस्तावेज़ समस्या की शर्त है और डेवलपर को generator चलाना पड़ता है। सार्वजनिक fix commit दिखाता है कि सफ़ाई को {fileName} orchestrator से मिलता है; उद्धृत स्रोत यह साबित नहीं करते कि यह नाम दस्तावेज़ से आता है।[1], [2]
सफ़ाई निर्देश shell तक पहुँचते हैं
Fix से पहले के सार्वजनिक agent निर्देश terminal से अस्थायी फ़ाइलें साफ़ करते थे और {fileName} को path expressions में डालते थे। Fix commit बताता है कि यह मान orchestrator से मिलता है; उद्धृत स्रोत यह साबित नहीं करते कि यह दस्तावेज़ से निकला है।[2]
ऑपरेटिंग सिस्टम input को command syntax समझ सकता है
तैयार दस्तावेज़ cleanup निर्देश से developer process की permissions में अनचाहे OS commands चलवा सकता है। CVE record developer मशीन पर command execution बताता है; वह कोई विशिष्ट exploit string प्रकाशित नहीं करता और न ही कहता है कि generator का हर run vulnerable है।[1], [4], [5]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
Vulnerable panel में Progress के fix से पहले के agent instructions उद्धृत हैं। Fixed panel commit 7ede6d9 के निर्देश परिवर्तनों का सार देता है: native file operations को प्राथमिकता, allowlist के विरुद्ध नाम जाँच और shell fallback होने पर हर expansion को quote करना। Executable cleanup commands और exploit input छोड़े गए हैं।[2]
# Progress fix से पहले: temporary files की सफ़ाई के लिए agent instructions
After successful assembly, delete temp files using the terminal with shell-native commands.
Use retry logic to handle transient file locks.
# Progress fix: जहाँ संभव हो native file operation इस्तेमाल करें
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.
# यदि shell fallback ज़रूरी हो, तो {fileName} को ^[A-Za-z0-9._-]+$ से validate करें
# और platform-specific cleanup instructions में हर expansion को quote करें।
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓ARCGenAI-Generator installs, repository copies और developer या CI workspaces की inventory बनाएँ; parent connector नहीं, product की वास्तविक version जाँचें।[1], [3]
- ✓ARCGenAI-Generator को 2.1 या बाद के version पर upgrade करें। Upgrade तक 2.0 से untrusted Swagger/OpenAPI documents process न करें।[1], [3]
- ✓Fixed
.github/agents/ARCGenAI-Generator.agent.mdनिर्देश जाँचें: native file operations प्राथमिक हैं,{fileName}allowlist से जाँचा जाता है और shell expansions quote किए जाते हैं।[2] - ✓FlawOpen की सलाह: Generation, cleanup और validation के दौरान API specifications और schema-derived names को untrusted input मानें; explicit controls के बिना न मानें कि AI agent data और commands को अलग रखेगा।
- ✓FlawOpen की सलाह: Developer tools को least privilege से चलाएँ और जहाँ व्यावहारिक हो document generation को source repositories, signing material, cloud credentials और production secrets से isolate करें।
- ✓FlawOpen की सलाह: Filename allowlisting और shell-free cleanup selection के लिए non-destructive regression tests जोड़ें; केवल benign names और temporary test fixtures इस्तेमाल करें।
- ✓FlawOpen की सलाह: जिन developer या CI workspaces में ARCGenAI-Generator 2.0 ने untrusted documents process किए, वहाँ उन generator runs के आसपास उपलब्ध process और file telemetry देखें। Telemetry का अभाव assurance gap है, compromise या safety का प्रमाण नहीं।