CVE-2026-48908 취약점은 SP Page Builder의 특정 엔드포인트에서 인증 없이 임의의 파일을 업로드해 서버 제어권을 탈취하는 원격 코드 실행(RCE) 취약점이다. 공격자는 웹셸을 설치하고 관리자 계정을 생성해 웹사이트의 모든 데이터에 접근하고 서버 전체를 장악하는 치명적인 위험을 일으킨다.
CVE-2026-48908 SP Page Builder RCE 취약점의 기술적 메커니즘 분석
이번 취약점의 핵심은 asset.uploadCustomIcon 엔드포인트의 심각한 보안 설계 결함이다. 해당 엔드포인트는 외부 사용자가 아이콘을 업로드할 때 필요한 접근 제어(Access Check)를 수행하지 않으며, 요청의 정당성을 확인하는 CSRF 토큰 검증 과정조차 없다. 업로드되는 파일의 확장자나 콘텐츠 유형에 대한 엄격한 검증 절차가 없다는 점이 더 치명적이다.
공격자는 이 허점을 이용해 PHP 웹셸이 포함된 ZIP 파일을 업로드하고, 서버 내부에서 이를 추출해 실행 가능한 경로에 배치한다. PHP 파일이 서버에 업로드되어 실행되면 공격자는 HTTP 요청으로 서버 시스템 명령어를 직접 실행하는 원격 코드 실행(RCE) 상태가 된다. 단순한 파일 업로드 오류를 넘어 서버의 루트 권한이나 웹 서비스 권한을 완전히 획득하는 경로가 열리는 셈이다.
특히 이번 취약점은 CVSS 4.0 기준으로 최고 위험도 점수인 10.0을 기록했다. 네트워크 제한이 전혀 없고 공격자가 별도의 인증을 거칠 필요가 없으며, 피해자의 상호작용 없이도 공격이 성공한다는 뜻이다. 현재 GitHub에는 취약점 공개 후 2일 만에 PoC(개념 증명) 코드가 등장했다. 이를 이용한 자동 스캔 봇이 전 세계 웹사이트를 활발히 탐색 중인 것으로 확인되었다.
치명적인 영향과 실제 피해 사례 및 유출 징후(IoC)
CVE-2026-48908 취약점으로 인한 피해는 단순한 페이지 변조에 그치지 않고 서버 전체의 지속적인 장악으로 이어진다. 공격자는 웹셸로 서버에 침투한 뒤 시스템 지속성을 유지하려 백도어를 심고 가짜 관리자 계정을 생성하는 패턴을 보인다. 실제로 Reddit의 r/joomla 커뮤니티에서는 이번 제로데이 취약점이 가짜 Joomla 관리자 계정을 심는 데 사용되고 있다는 보고가 잇따랐다.
공격자들은 주로 @secure.local 도메인을 사용하는 가짜 슈퍼 관리자 계정을 생성한다. 계정을 만들어 필요한 권한을 획득한 뒤 흔적을 지우려 즉시 삭제하는 정교한 방식을 쓴다. 또한 서버 내 여러 위치에 ‘PHP File manager ver 1.4’라는 백도어를 배치해 관리자가 업데이트를 수행해도 다시 침투할 경로를 확보한다.
실제 피해 사례를 보면 2026년 6월 18일 독일의 한 포럼에서 최신 버전으로 업데이트를 마친 사이트임에도 정체불명의 관리자 계정이 발견되었다는 보고가 있었다. 업데이트 전 이미 백도어가 설치되었거나 업데이트 과정에서 제거되지 않은 잔재가 남았음을 시사한다. 특히 WAF(웹 애플리케이션 방화벽)가 유사한 다른 취약점인 JCE(CVE-2026-48907)는 효과적으로 차단했으나, SP Page Builder의 특정 엔드포인트 요청은 그대로 통과시켜 피해가 확산된 사례가 다수 보고되었다.
취약점 상세 정보 및 영향 범위 요약
| 구분 | 상세 내용 |
|---|---|
| CVE 식별자 | CVE-2026-48908 |
| 심각도 (CVSS 4.0) | 10.0 (Critical) |
| 영향 버전 | SP Page Builder (com_sppagebuilder) 1.0.0 ~ 6.6.1 전체 (Joomla 4/5/6 포함) |
| 패치 버전 | SP Page Builder 6.6.2 이상 |
| 취약 지점 | asset.uploadCustomIcon 엔드포인트 |
| 공격 벡터 | 인증 없는 임의 파일 업로드 $\rightarrow$ PHP 웹셸 실행 $\rightarrow$ RCE |
시스템 복구 및 보안 강화 해결책
JoomShaper는 2026년 6월 14일 해당 취약점을 해결한 SP Page Builder 6.6.2 버전을 긴급 배포했다. 시스템 관리자는 즉시 업데이트를 진행하고 전후로 다음과 같은 정밀 보안 조치를 취해야 한다.
- 즉시 업데이트 및 백업 수행: Akeeba Backup 또는 호스팅 제공업체의 백업 솔루션으로 전체 사이트 백업을 생성한 뒤, 즉시 6.6.2 버전으로 업데이트한다.
- 관리자 권한 전수 조사: 컴포넌트 관리 및 슈퍼 유저 그룹을 확인해
@secure.local도메인을 포함한 의심스러운 계정을 모두 삭제한다. 특히 역할 이름과 숫자가 조합된 불분명한 계정이 있는지 정밀하게 검토한다. - 자격 증명 순환 및 세션 초기화: 전역 설정에서 모든 세션을 강제 종료하고 새 시크릿(Secret) 키를 재발급한다. 관리자 패스워드, 데이터베이스(DB) 접속 정보, FTP 및 SSH 계정 비밀번호를 모두 변경하는 자격 증명 순환(Credential Rotation)을 실시한다.
- 서버 레벨의 PHP 실행 차단:
/media,/images,/tmp와 같이 사용자 파일이 업로드되는 디렉터리에서는 PHP 파일이 실행되지 않도록 설정한다. Nginx나 Apache 설정 또는.htaccess파일로 해당 경로의 스크립트 실행 권한을 원천 차단한다. - 방화벽 및 보안 툴 활용: RsFirewall 3.3.7 버전의 전용 룰을 적용해 방어 체계를 강화하고,
task=asset.uploadCustomIcon파라미터가 포함된 비정상적인 POST 요청을 웹 서버 단에서 차단한다.
결론 및 대응 요약
CVE-2026-48908 취약점은 인증 없이 서버 제어권을 완전히 넘겨주는 최악의 보안 결함이다. 이미 많은 사이트가 자동 스캔 봇에 의해 감염되었으며, 업데이트 이후에도 백도어가 남아 있을 가능성이 크다. 단순히 버전을 올리는 것에 그치지 말고 관리자 계정 전수 조사와 서버 설정 강화로 2차 피해를 막아야 한다. 지금 즉시 사이트 버전과 관리자 목록을 확인하고, 제시된 보안 강화 조치를 적용해 시스템 안전을 확보하기 바란다.