🇰🇷 한글 설명
Arcane의 업데이터 서비스에서 명령어 주입 취약점이 발견되었습니다. 이는 인증된 사용자가 프로젝트를 생성하여 악의적인 명령어를 실행할 수 있는 취약점입니다.
💡 쉬운 설명
Arcane의 업데이터 서비스에서 명령어 주입 취약점이 발견되었습니다. 이는 사용자가 악의적인 명령어를 실행할 수 있습니다. Arcane 버전 1.13.0 이전의 버전에서 발생합니다.
🇺🇸 원문 (English)
Arcane provides modern docker management. Prior to 1.13.0, Arcane has a command injection in the updater service. Arcane’s updater service supported lifecycle labels com.getarcaneapp.arcane.lifecycle.pre-update and com.getarcaneapp.arcane.lifecycle.post-update that allowed defining a command to run before or after a container update. The label value is passed directly to /bin/sh -c without sanitization or validation. Because any authenticated user (not limited to administrators) can create projects through the API, an attacker can create a project that specifies one of these lifecycle labels with a malicious command. When an administrator later triggers a container update (either manually or via scheduled update checks), Arcane reads the lifecycle label and executes its value as a shell command inside the container. This vulnerability is fixed in 1.13.0.
📍 영향받는 시스템
Arcane 버전 1.13.0 이전
⚔️ 공격 벡터
인증된 사용자가 프로젝트를 생성하여 악의적인 명령어를 실행
🛡️ 대응 방법
Arcane 버전 1.13.0으로 업데이트합니다.
🔧 검증 코드
로컬에서 Python을 실행하여 Arcane 서버의 버전을 확인합니다. Arcane 서버의 URL을 'https://your-arcane-server.com/version'으로 변경합니다. Python을 실행하기 위해서는 Python이 설치되어 있어야 합니다.
python -c "import requests; response = requests.get('https://your-arcane-server.com/version'); if response.status_code == 200 and response.text < '1.13.0': print('{{"result": "취약", "reason": "Arcane 버전이 1.13.0 미만입니다."}}'); else: print('{{"result": "양호", "reason": "Arcane 버전이 1.13.0 이상입니다."}}')"