flawopen.com/AI Security/progress-arcgenai-generator-command-injection-cve-2026-91140
●
CVE-2026-91140 · CVSS 9.6 · 심각
보안 연구 · FlawOpen
CVE-2026-91140: Progress ARCGenAI-Generator 명령 인젝션
개발자가 ARCGenAI-Generator 2.0을 실행할 때 조작된 Swagger/OpenAPI 문서가 셸 기반 임시 파일 정리에 영향을 줄 수 있었다. Progress는 2.1에서 흐름을 수정했으며, 권고문은 현재 악용을 보고하지 않는다.[1], [3], [4]
💡 알기 쉬운 설명 (ELI5)
작업장의 정리 지침은 이전 단계에서 파일 이름을 받아 운영체제에 전달한다. 그 이름을 일반 텍스트가 아니라 셸 지시문의 일부로 취급하면 정리 단계에서 의도하지 않은 명령이 실행될 수 있다. 수정은 가능한 경우 셸을 피하고, 꼭 전달해야 하는 파일 이름을 제한하고 인용한다.[1], [2]
핵심 개념 및 용어
ARCGenAI-Generator- Swagger/OpenAPI 입력에서 REST 커넥터 산출물을 만드는 Progress DataDirect 도구다. 영향받는 버전은 2.0이며 Progress는 2.1을 수정 버전으로 지정했다.[1], [3]
CWE-78- 운영체제 명령에 사용되는 특수 요소의 부적절한 무력화이며 CVE-2026-91140에 지정되었다.[4]
프레임워크 매핑
- 이 가이드에서 설명하는 약점의 CWE 참조: CWE-78
단계별 공격 실행 흐름
단계 1
단계 2
단계 3
정리 지침이 셸에 전달된다
수정 전 공개 에이전트 지침은 터미널을 사용해 임시 파일을 정리하고 {fileName}을 경로 표현식에 삽입했다. 수정 커밋은 이 값이 orchestrator에서 전달된다고 밝히며, 인용된 출처는 문서에서 비롯되었다고 입증하지 않는다.[2]
단계 4
소스 코드 비교: 취약한 구현 vs 보안 패치
취약 패널은 수정 전 Progress 에이전트 지침을 인용한다. 수정 패널은 커밋 7ede6d9의 지침 변경을 요약한다. 네이티브 파일 작업을 우선하고, allowlist로 이름을 검증하며, 셸 fallback이 필요하면 모든 확장을 인용한다. 실행 가능한 정리 명령과 exploit 입력은 생략했다.[2]
취약한 구현
# Progress 수정 전: 임시 파일 정리를 위한 에이전트 지침
After successful assembly, delete temp files using the terminal with shell-native commands.
Use retry logic to handle transient file locks.
보안 강화 패치
# Progress 수정: 가능하면 네이티브 파일 작업을 사용합니다
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 대체 경로가 필요하면 {fileName}을 ^[A-Za-z0-9._-]+$로 검증하고
# 플랫폼별 정리 지침에서 모든 확장값을 따옴표로 감쌉니다.
엔지니어링 및 시스템 보안 강화 체크리스트
- ✓ARCGenAI-Generator 설치, 저장소 복사본, 개발자 및 CI 작업 공간을 파악하고 상위 커넥터가 아닌 제품 자체의 실제 버전을 확인한다.[1], [3]
- ✓ARCGenAI-Generator를 2.1 이상으로 업그레이드한다. 업그레이드 전에는 2.0으로 신뢰할 수 없는 Swagger/OpenAPI 문서를 처리하지 않는다.[1], [3]
- ✓수정된
.github/agents/ARCGenAI-Generator.agent.md지침을 확인한다. 네이티브 파일 작업을 우선하고{fileName}allowlist를 검증하며 셸 확장을 인용한다.[2] - ✓FlawOpen 권고: 생성, 정리, 검증 전 과정에서 API 사양과 스키마에서 파생된 이름을 신뢰할 수 없는 입력으로 취급한다. 명시적 제어 없이 AI 에이전트가 데이터와 명령을 분리한다고 가정하지 않는다.
- ✓FlawOpen 권고: 개발 도구를 최소 권한으로 실행하고 가능하면 문서 생성을 소스 저장소, 서명 자료, 클라우드 자격 증명, 운영 비밀정보와 격리한다.
- ✓FlawOpen 권고: 파일 이름 allowlist 및 셸을 사용하지 않는 정리 선택에 대한 비파괴 회귀 테스트를 추가한다. 무해한 이름과 임시 테스트 fixture만 사용한다.
- ✓FlawOpen 권고: ARCGenAI-Generator 2.0으로 신뢰할 수 없는 문서를 처리한 개발자 또는 CI 작업 공간에서는 해당 실행 전후의 프로세스 및 파일 telemetry를 검토한다. telemetry 부재는 보증 공백이지 침해나 안전의 증거가 아니다.