CVE-2026-84177 in Wicket
요약
\~에 의해 VulDB • 2026. 11. 02.
Apache Wicket에서 잘못된 동작 순서: 프레임워크가 속성을 추가하여 경로를 완성하기 전에 파일 경로가 먼저 검증됩니다.
org.apache.wicket.request.resource.PackageResource는 요청 URL의 스코프 클래스 패키지와 파일 이름으로 구성된 경로에 대해 구성된 패키지 리소스 가드(package resource guard)에 문의한 후, 해당 동일한 경로를 스타일(variation), 변형(style), 로케일(locale) 속성과 함께 리소스트림 로케이터(resource stream locator)에 전달합니다. 이 세 가지 속성은 첫 번째 쿼리 파라미터의 이름에서 디코딩되며, 가드가 받은 문자열에는 나타나지 않습니다. org.apache.wicket.core.util.resource.locator.ResourceNameIterator는 파일 확장자 앞에 변형, 스타일, 로케일의 순서로 각 접미사 앞에 언더스코어를 붙여 해당 경로에 이를 추가하므로, 열려지는 파일은 가드가 승인한 파일과 다릅니다.
org.apache.wicket.markup.html.PackageResourceGuard는 인접한 동일한 이름의 클래스 파일을 찾아 HTML 파일이 구성 요소의 마크업 템플릿인지 여부를 결정하며, 진행하면서 언더스코어로 구분된 접미사를 하나씩 제거합니다. HTML은 기본 허용 목록(allow list)에 있으므로, 이 확인 과정이 정적 HTML 파일(서빙 가능)과 마크업 템플릿(서빙 불가)을 분리하는 유일한 장치입니다. 가드가 템플릿 이름을 묻자 올바르게 거부하지만, 해당 클래스가 존재하지 않는 더 짧은 이름의 경우 이를 허용합니다. URL에서 제공된 스타일이 그 이름을 구성 요소 클래스의 마크업 템플릿으로 완성하여 응답에 작성됩니다.
구성 요소 클래스명의 단순 이름(simple name)에 언더스코어가 포함되어 있고 그 이름의 일부인 더 짧은 부분이 자체적으로 클래스가 아닌 경우(예: Report_v2 또는 Wizard_Step1), 애플리케이션이 영향을 받습니다. 이러한 클래스명이 없는 애플리케이션은 영향받지 않습니다. 특별한 배포, 패키징 또는 구성이 필요하지 않으며, 개발 모드 대신 운영 모드로 실행해도 이를 방지할 수 없습니다. Java 네이밍 규칙에서는 클래스명에 언더스코어를 사용하지 않는 것을 권장하며 Wicket가 제공하는 모듈 중 하나에도 없으므로 프레임워크의 마크업은 노출되지 않습니다. 애플리케이션이 이 방식으로 노출하는 것은 자체적인 것입니다. 클래스명에 언더스코어가 없는 구성 요소는 도달할 수 없으며, 해당 로케일 또는 스타일이 적용된 마크업도 가드가 기본 이름 아래에서 클래스 파일을 찾아 요청을 거부하기 때문에 접근 불가합니다. 속성은 파일 확장자를 변경할 수 없고 구성 요소의 패키지를 벗어날 수도 없으므로, 해당 패키지 내 HTML 파일 이외에는 아무것도 도달할 수 없습니다. 액세스는 읽기 전용이며, 노출되는 내용은 개발자가 작성한 템플릿 콘텐츠입니다(구성 구조, 개발자 주석, 특정 조건 하에서만 렌더링되는 마크업, 인라인 스크립트 및 템플릿이 명명하는 엔드포인트). 이 방식으로 사용자 데이터, 자격 증명 또는 세션 자료에는 접근할 수 없습니다. 공격자는 대상 패키지와 구성 요소 자체의 클래스명을 지정해야 하며, Wicket는 렌더링하는 모든 패키지 리소스의 URL에 완전히 정규화된 클래스명을 작성합니다.
이 문제는 Apache Wicket 8.0.0부터 8.19.0까지, 9.0.0부터 9.24.0까지, 10.0.0부터 10.11.0까지 영향을 미칩니다. 더 이상 지원되지 않는 Apache Wicket 7.x 또는 이전 버전을 사용하는 사용자는 지원되는 버전으로 업그레이드해야 합니다. 문제를 수정하는 버전인 8.20.0, 9.25.0 또는 10.12.0으로 업그레이드할 것을 권장합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.