
Lucee CFML의 반사형 XSS 개념 증명 (CVE-2026-29519)
Lucee CFML의 반사형 XSS(CVE-2026-29519)에 대한 개념 증명(PoC)
Lucee CFML의 URL 경로 파싱 메커니즘에서 심각한 0-day 반사형 크로스 사이트 스크립팅(XSS) 취약점이 발견되었습니다. 이 취약점을 통해 공격자는 관리자 인터페이스를 포함한 Lucee 애플리케이션의 컨텍스트에서 임의의 HTML/JavaScript를 주입하고 실행할 수 있습니다. 이 취약점은 5.3.1.95부터 최신 7.x 릴리스까지 22개의 서로 다른 Lucee 버전에 영향을 미칩니다.
5.3.1.95부터 7.0.1.100까지 22개 버전, 모든 7.x 스냅샷 포함.
| 버전 | 상태 | 비고 |
|---|---|---|
| 7.0.0.395 | ✅ 취약 | 최신 7.x 릴리스 |
| 6.2.3.35 | ✅ 취약 | 최신 6.2.x 패치 |
| 6.2.2.91 | ✅ 취약 | |
| 6.2.1.122 | ✅ 취약 | |
| 6.2.0.321 | ✅ 취약 | 최초 발견 버전 |
| 6.1.2.47 | ✅ 취약 | |
| 6.1.1.118 | ✅ 취약 | |
| 6.1.0.243 | ✅ 취약 | |
| 5.3.7.59 | ✅ 취약 | |
| 5.3.7.47 | ✅ 취약 | |
| 5.3.7.43 | ✅ 취약 | |
| 5.3.6.68 | ✅ 취약 | |
| 5.3.6.61 | ✅ 취약 | |
| 5.3.5.96 | ✅ 취약 | |
| 5.3.5.92 | ✅ 취약 | |
| 5.3.4.80 | ✅ 취약 | |
| 5.3.4.77 | ✅ 취약 | 홈페이지에 디버그 정보 표시 |
| 5.3.3.67-SNAPSHOT | ✅ 취약 | |
| 5.3.3.62 | ✅ 취약 | |
| 5.3.2.77 | ✅ 취약 | |
| 5.3.1.102 | ✅ 취약 | |
| 5.3.1.95 | ✅ 취약 |
# 1. Start a vulnerable Lucee instance (example: 6.2.0.321 or Latest 7.x)
docker run -d -p 8888:8888 --name lucee-test lucee/lucee:6.2.0.321
# 2. Wait 35-40 seconds for initialization
sleep 40
# 3. Test the vulnerability by visiting:
http://[lucee-host]/test//index.cfm/
# 4. Observe JavaScript execution (alert dialog appears).
# 5. Clean up
docker stop lucee-test 2>/dev/null; docker rm lucee-test 2>/dev/null
Lucee 측에서 공식 패치가 릴리스되지 않았습니다. 공급업체가 이 보고에 응답하지 않았기 때문입니다. 그러나 다음 버전은 취약하지 않습니다:
안전한 버전(취약하지 않음)
기업은 XSS를 피하기 위해 다음 버전으로 업그레이드/다운그레이드할 수 있습니다:
6.0.x 브랜치 (안전)
5.4.x 브랜치 (안전)
5.3.x 브랜치 (일부 안전)
환경
테스트 기간: 18시간 이상 수동 테스트
테스트한 버전: 50개 이상의 Lucee 릴리스 (4.5.1.024 ~ 7.0.0.395)
플랫폼: Ubuntu Linux의 Docker 컨테이너
도구: curl, 수동 브라우저 테스트, Burp Suite
1- 최신 안전 버전으로 업그레이드하세요:
2- 업그레이드가 불가능한 경우, URL 경로에서 HTML 태그를 차단하는 임시 WAF 규칙을 적용하세요. 예시(nginx):
location ~* "<.*>" { return 403; }
3- 향후 보안 패치를 위해 Lucee의 공식 채널을 모니터링하세요. 공급업체가 응답하지 않고 있으므로, 기업은 Lucee에 직접 수정을 요청하는 방안도 고려해야 합니다.
CVSS 점수: 7.4 (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N)
[email protected]로 초기 보고서를 보내고 비공개 GitHub Security Advisory(GHSA-6x3c-35h8-3h9f)를 생성했습니다. 응답 없음.| 메트릭 | 값 | 설명 |
|---|
| 공격 벡터 | 네트워크 | 네트워크를 통해 원격으로 악용 가능 |
| 공격 복잡성 | 낮음 | 특별한 조건 불필요 |
| 필요한 권한 | 없음 | 인증 불필요 |
| 사용자 상호작용 | 필요 | 피해자가 악성 링크를 클릭해야 함 |
| 범위 | 변경됨 | 취약점은 서버에 존재하지만 사용자의 브라우저 세션에 영향을 주어 보안 경계를 넘어섬 |
| 기밀성 | 높음 | 자격 증명 및 세션 데이터 탈취 가능 |
| 무결성 | 낮음 | 페이지 콘텐츠 수정, CSRF 수행 가능 |
| 가용성 | 없음 | 직접적인 가용성 영향 없음 |