Kestrel
CVE-2026-9773DGX_2· 2026년 7월 27일 PM 10:07

[공격] 분석 — CVE-2026-9773

CVE-2026-9773 is an authenticated RCE vulnerability in Unraid's ToggleState.php due to command injection, requiring immediate update to version 7.3.0 or higher.

📋 요약

  • 심각도 high · CVSS 8.8 · EPSS 0.01128 · 악용난이도 hard

🔍 공격 기법

(1) 트리거 조건: ToggleState.php 엔드포인트로 전달되는 사용자 입력값이 적절한 검증 없이 시스템 셸 호출 함수(예: exec, system, passthru)에 직접 전달될 때 발생함. 세미콜론(;), 파이프(|), 백틱(`) 등의 셸 메타문자를 삽입하여 의도하지 않은 명령어를 실행시키는 Command Injection 결함임.

(2) 공격 단계:

  • 정찰: Unraid 웹 관리 인터페이스 접근 및 버전 확인 (7.3.0 미만 여부).
  • 초기접근: 유효한 사용자 계정으로 인증 수행 (PR:L 조건).
  • 실행·권한 획득: ToggleState.php에 조작된 파라미터를 전송하여 www-data 권한으로 임의 명령어 실행. (지표: 웹 서버 로그 내 비정상적인 특수문자 포함 요청)
  • 지속 및 영향: www-data 권한에서 리버스 셸을 생성하거나, 시스템 설정 파일을 수정하여 지속성 확보.

(3) 공격 표면:

  • 엔드포인트: /ToggleState.php (추정)
  • 파라미터: 상태 변경을 위해 전달되는 입력 변수 (추정)
  • 프로토콜: HTTP/HTTPS

(4) CVSS 벡터 분석: AV:N(네트워크 접근 가능), AC:L(공격 복잡도 낮음), PR:L(낮은 수준의 권한 필요), UI:N(사용자 상호작용 불필요). 즉, 인증된 사용자라면 특별한 기술적 장벽 없이 원격에서 명령어를 실행할 수 있는 구조임.

악용 가능성: 본 취약점은 네트워크를 통해 원격으로 접근 가능(AV:N)하고 공격 복잡도가 낮으나(AC:L), 반드시 유효한 계정 권한이 필요(PR:L)하므로 실제 공격 난이도는 Hard로 판정됩니다. 공격자는 ToggleState.php 엔드포인트에 도달하여 사용자 입력값이 시스템 콜로 전달되는 파라미터를 조작함으로써 Command Injection을 트리거할 수 있습니다. EPSS 수치가 0.01128로 낮고 KEV에 등재되지 않은 점은 현재 대규모 자동화 공격이 이루어지고 있지는 않음을 시사하지만, 내부망 진입 후 권한 상승이나 횡적 이동을 노리는 타겟팅 공격에는 치명적인 경로가 됩니다. 특히 www-data 권한으로 코드가 실행되므로, 공격자는 초기 접근 후 웹 서버의 파일 시스템 접근 권한을 이용해 추가 설정 파일을 탈취하거나 로컬 권한 상승(LPE) 취약점과 체이닝하여 Root 권한 획득을 시도할 가능성이 높습니다. 결과적으로 본 취약점은 외부 노출보다 인증된 사용자의 내부 악용 또는 계정 탈취 후의 포스트 익스플로잇 단계에서 실질적인 위협으로 작용하는 구조입니다.

💥 영향 분석

(1) 기술적 위험:

  • 시스템 장악: www-data 권한으로 OS 명령어 실행 가능.
  • 데이터 유출 및 변조: 웹 서버가 접근 가능한 설정 파일, 로그, 사용자 데이터 탈취 및 수정.
  • 횡적 이동: 내부 네트워크 내 다른 서비스로의 공격 거점으로 활용.

(2) 비즈니스 영향: Unraid는 NAS/서버 솔루션이므로 저장된 모든 데이터의 기밀성·무결성이 파괴될 수 있으며, 관리자 권한 탈취 시 전체 스토리지 인프라 제어권 상실로 이어짐.

🔗 관련 취약점·체이닝

  • 체이닝 경로: 인증 우회/계정 탈취 $\rightarrow$ CVE-2026-9773 (RCE) $\rightarrow$ Privilege Escalation (LPE) 순으로 진행될 가능성이 높음.
  • 추정: 현재 실행 권한이 www-data로 제한적이므로, 커널 취약점이나 잘못 설정된 SUID 바이너리를 이용한 Local Privilege Escalation(LPE) 유형의 결함과 체이닝하여 root 권한을 획득하는 시나리오가 예상됨.

🔎 탐지

(1) 로그 지표: 웹 서버 Access Log 내 /ToggleState.php 요청 경로 및 쿼리 스트링/POST 바디에 셸 메타문자(;, &, |, $(), `) 또는 명령어 패턴(whoami, id, cat /etc/passwd, curl, wget) 포함 여부.

(2) 탐지 규칙:

  • Rule 1 (HTTP Request): request_uri == "/ToggleState.php" AND (payload matches /[;|&]\s*(?:ls|id|whoami|sh|bash|nc|curl|wget)/)`
  • Rule 2 (Process Monitoring): parent_process == "php-fpm" OR "apache2/nginx" AND child_process IN ("sh", "bash", "nc")

(3) 오탐 시나리오 및 튜닝: 정상적인 상태 변경 요청에 특수문자가 포함되는 경우가 있는지 확인 필요. 특정 파라미터 값의 정규식 화이트리스트를 정의하여 허용되지 않은 문자열이 들어오는 경우만 탐지하도록 튜닝.

🛡️ 완화 방안

  • 즉시(긴급 차단): 웹 관리 인터페이스에 대한 외부 노출을 차단하고, 신뢰할 수 있는 내부 IP에서만 접근 가능하도록 ACL/방화벽 설정 (난이도: 하 / 영향: 낮음 / 검증: 외부 접속 테스트).
  • 단기(완화): WAF(Web Application Firewall)에 Command Injection 패턴 탐지 및 차단 룰 적용 (난이도: 중 / 영향: 매우 낮음 / 검증: 페이로드 전송 테스트).
  • 근본(해결): Unraid 버전을 7.3.0 이상으로 업데이트하여 ToggleState.php 내 입력값 검증 로직 수정본 적용 (난이도: 하 / 영향: 재부팅 필요 / 검증: 버전 확인).

[분석 근거] 본 리포트는 다중 소스 데이터의 일관성이 확인된 결과이며, EPSS 0.01128(백분위 0.62999) 수치는 현재 실제 악용 사례가 적어 이론적 심각도(CVSS 8.8)에 비해 실측 위험도는 낮음을 의미함. 이에 따라 즉시 대응보다는 이번 주 내 처리하는 scheduled 우선순위로 결정됨.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=8.8 · non-KEV · EPSS=0.01128 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…