미국 사이버보안·인프라보안청(CISA)은 2026년 7월 10일 두 개의 Joomla 확장기능 취약점을 "알려진 악용 취약점(KEV)" 카탈로그에 올렸다. iCagenda의 와 Balbooa Forms의 이다. CISA는 연방 민간기관(FCEB)에 7월 13일까지 패치하거나 해당 확장기능 사용을 중단하라고 요구했다.
두 취약점이 위험한 이유는 세 조건이 겹치기 때문이다. 둘 다 CVSS 10.0으로 최고 심각도이고, 인증이 필요 없어 누구나 원격에서 공격할 수 있다.
여기에 공격이 성공하면 서버에서 임의 코드가 실행되어 사이트 전체가 넘어간다. Joomla 코어가 아니라 서드파티 확장기능에서 발생한 결함이라는 점도 이 사건의 핵심이다.
NVD는 두 CVE 모두 CVSS v3.1 기준 9.8(Critical)로 평가했고, 별도 v4.0 기준으로는 10.0(Critical)로 표기했다. 분류는 둘 다 CWE-434(위험한 유형의 파일 무제한 업로드)다.
배경: 왜 확장기능 파일 업로드가 위험한가
Joomla는 전 세계 콘텐츠 관리 시스템(CMS) 시장에서 약 3%를 차지하는 오픈소스 CMS다. 핵심 기능은 코어가 담당하지만, 이벤트 달력이나 문의 폼 같은 기능은 서드파티 확장기능으로 붙인다. 문제는 이 확장기능들이 인증 없는 사용자에게 파일 업로드 창구를 열어 두는 경우가 많다는 점이다.
iCagenda는 이벤트 등록·일정 관리 확장기능이고, Balbooa Forms는 드래그앤드롭 방식의 폼 빌더다. 둘 다 방문자가 파일을 첨부할 수 있는 프론트엔드 폼을 제공한다. mySites.guru의 분석에 따르면, iCagenda의 결함은 두 층이 겹친 것이다. "등록 사용자 전용"이라는 접근 제한이 폼을 화면에 보여주는 단계에만 걸려 있고 실제 파일을 처리하는 컨트롤러에는 없어서, 인증 없는 요청이 곧장 처리됐다. 여기에 확장자 검사와 콘텐츠 유형 검증까지 빠져 있어 .php 파일이 그대로 올라갔다.
Balbooa Forms도 구조가 비슷하다. mySites.guru의 분석에 따르면, 파일명을 정제하는 Joomla의 File::makeSafe() 함수가 파일명 부분만 다듬고 원래 확장자는 다시 붙이는 방식이어서, 정제를 거쳐도 위험한 확장자가 살아남았다. 두 경우 모두 코어가 제공하는 업로드 필터를 확장기능이 호출하지 않거나 우회한 것이 근본 원인이다.
악용 전개: 패치가 먼저, KEV 등재가 나중
이 사건의 타임라인은 순서가 흥미롭다. 벤더 패치가 먼저 나오고 CISA 경고가 약 한 달 뒤에 따라왔다.
mySites.guru의 보고에 따르면 iCagenda 취약점은 2026년 6월 15일부터 자동화된 공격에 악용됐고, 같은 날 4.0.8 패치가 나왔다. Balbooa Forms는 7월 8일 악용이 발견됐고 하루 뒤 2.4.1로 수정됐다. CISA는 두 건을 묶어 7월 10일 KEV에 등재했다.
여기서 한 가지 짚어야 할 점이 있다. 악용 사실을 보고한 1차 출처는 웹사이트 관리 플랫폼인 mySites.guru 한 곳이다. The Hacker News, BleepingComputer, SecurityWeek 같은 매체가 이 사건을 보도했지만 모두 mySites.guru의 관측을 인용하는 구조다. 따라서 "다수가 독립적으로 확인한 악용"이 아니라 "단일 주체가 보고한 악용"으로 이해하는 것이 정확하다. 영향받은 사이트 수나 공격 건수 같은 정량적 피해 규모는 어떤 보도에도 제시되지 않았다.
탐지 관점: 공격은 흔적을 남긴다
파일 업로드를 통한 웹셸 공격은 서버에 뚜렷한 자국을 남긴다. 공개된 분석에 기록된 흔적은 탐지·위협 헌팅의 출발점이 된다.
mySites.guru의 분석에 따르면, iCagenda 공격은 images/icagenda/frontend/attachments/ 경로에 예상치 못한 .php 파일을 남긴다. 자동화 스캐너는 자신을 icagenda-batch/1.0이라는 User-Agent로 식별했다. 접근 로그에는 세 단계 시퀀스가 순서대로 찍힌다. 먼저 세션과 토큰을 확보하고, 제출 엔드포인트로 악성 파일을 POST하고, 마지막으로 심어 둔 셸을 알려진 경로에서 GET으로 회수한다.
Balbooa Forms의 경우 images/baforms/uploads/ 하위에 비이미지 파일이 올라오고, index.php?option=com_baforms&task=form.uploadAttachmentFile 엔드포인트로 익명 POST 요청이 짧은 간격으로 반복된다. 두 경우 모두 웹 접근 가능한 디렉터리에 낯선 스크립트 파일이 생기고, 침해 후에는 의심스러운 관리자 계정이 추가되거나 템플릿이 변조되는 흔적이 함께 나타난다.
이 공격 패턴은 MITRE ATT&CK으로 매핑하면 T1190(공개 애플리케이션 악용)으로 초기 침투가 이뤄지고, T1505.003(웹셸)으로 지속성을 확보하며, 침해 후 T1098(계정 조작)로 관리자 권한을 유지하는 흐름이다.
한국 관점
이번 사건에서 한국을 직접 겨냥한 침해나 국내 피해 사례는 확인되지 않았다. KISA나 KrCERT의 개별 공지, 국내 매체의 전용 보도도 리서치 범위에서는 나타나지 않았다. 국내 CMS 시장은 국산 벤더가 주도하고 있어 Joomla는 상대적으로 비주류에 속한다.
다만 원리는 국내 환경에도 그대로 적용된다. 서드파티 확장기능이나 플러그인의 인증 없는 파일 업로드 창구는 CMS 종류를 가리지 않는 반복적 공격 표면이다. 실제로 이번 건에 앞서 같은 계열의 CVE-2026-48907 Joomla JCE 취약점도 CVSS 10.0 파일 업로드 결함으로 악용된 바 있다. 방문자 폼을 노출하는 확장기능을 쓰는 국내 사이트라면, 코어의 업로드 필터가 실제로 그 경로에 적용되는지 점검해 볼 만한 사안이다.