🇰🇷 한글 설명
Coolify는 오픈소스이고 자체 호스팅이 가능한 서버, 애플리케이션, 데이터베이스 관리 도구입니다. 버전 4.0.0-beta.445 이전의 버전에서는 docker-compose.yaml에서 오는 파라미터가 명령어에서 사용될 때 제대로 정화되지 않습니다. 이로 인해 공격자는 Coolify 인스턴스에서 루트 권한으로 명령어를 실행할 수 있습니다.
💡 쉬운 설명
Coolify는 서버와 애플리케이션을 관리하는 도구입니다. 이 도구의 일부 버전에는 심각한 보안 취약점이 있습니다. 공격자는 이 취약점을 이용해 시스템에 루트 권한으로 접근할 수 있습니다. 버전 4.0.0-beta.445 이상으로 업데이트하면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
Coolify is an open-source and self-hostable tool for managing servers, applications, and databases. Prior to version 4.0.0-beta.445, parameters coming from docker-compose.yaml are not sanitized when used in commands. If a victim user creates an application from an attacker repository (using build pack "docker compose"), the attacker can execute commands on the Coolify instance as root. Version 4.0.0-beta.445 fixes the issue.
📍 영향받는 시스템
Coolify 버전 4.0.0-beta.445 이전
⚔️ 공격 벡터
docker-compose.yaml에서 오는 파라미터를 이용한 명령어 실행
🛡️ 대응 방법
Coolify를 버전 4.0.0-beta.445 이상으로 업데이트합니다.
🔧 검증 코드
이 코드는 로컬 시스템의 Coolify 버전을 확인하여 취약점 여부를 판단합니다. Python 3.x 이상이 설치된 환경에서 실행할 수 있습니다. 코드를 실행하기 전에 Coolify가 설치되어 있는지 확인하세요.
import subprocess
result = subprocess.run(['coolify', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
version = result.stdout.decode('utf-8').strip()
if version >= '4.0.0-beta.445':
print({"result": "양호", "reason": "Coolify 버전이 4.0.0-beta.445 이상"})
else:
print({"result": "취약", "reason": "Coolify 버전이 4.0.0-beta.445 미만"})