🔍 CVE-2026-82956

7.6
CVSS Score
HIGH
2026-11-01
2026-11-02 16:13
✅ 완료

🇰🇷 한글 설명

Apache Wicket의 AjaxNewWindowNotifyingBehavior가 브라우저가 전달한 window.name 값을 검증 없이 JavaScript 문자열 리터럴에 삽입하여, 특정 페이지 인스턴스가 렌더링될 때마다 크로스사이트 스크립팅(XSS)이 발생할 수 있습니다. 해당 동작을 명시적으로 추가한 애플리케이션만 영향을 받습니다.

💡 쉬운 설명

웹 페이지를 여러 창이나 탭에서 열었을 때 브라우저가 보낸 창 이름이 검증 없이 페이지에 삽입되어 악성 스크립트가 실행될 수 있습니다. 이 기능을 사용하는 웹 애플리케이션만 해당됩니다.

🇺🇸 원문 (English)

Improper neutralization of input during web page generation in Apache Wicket. org.apache.wicket.ajax.AjaxNewWindowNotifyingBehavior notices that a page instance has been opened in a second browser window or tab. It asks the browser for the value of window.name, which reaches the server as the request parameter windowName, and remembers what the browser reported in a field of the behaviour. That field is part of the page's serialized state, so the remembered value stays in the page store for as long as the page instance does. On every later render of that page instance the behaviour builds the precondition of its Ajax call by substituting the remembered value into a single-quoted JavaScript string literal, and Wicket writes that precondition into the page as raw JavaScript, because the precondition of an Ajax call listener is script supplied by the caller and is emitted without quoting or escaping. Nothing on that path escapes the value. The window name is client-supplied and Wicket applies no validation to it, so a remembered name containing a single quote ends the literal and the rest of it runs as script in the application's origin, every time that page instance is rendered. An application is affected only where it has explicitly added AjaxNewWindowNotifyingBehavior to a component. No part of the framework installs the behaviour, so an application that does not use it is not affected. The name the behaviour generates for itself, when the browser reports no name at all, is a random UUID and is not client-supplied. This issue affects Apache Wicket: from 8.0.0 through 8.19.0, from 9.0.0 through 9.24.0, from 10.0.0 through 10.11.0. Users are recommended to upgrade to version 8.20.0, 9.25.0 or 10.12.0, which fix the issue.

📍 영향받는 시스템

Apache Wicket 8.0.0~8.19.0, 9.0.0~9.24.0, 10.0.0~10.11.0 (AjaxNewWindowNotifyingBehavior를 사용하는 애플리케이션)

⚔️ 공격 벡터

공격자가 window.name에 악성 스크립트 구문(작은따옴표 포함)을 설정한 뒤 피해자를 해당 페이지로 유도하면, 페이지 렌더링 시 스크립트가 피해자 origin에서 실행됨

🛡️ 대응 방법

Apache Wicket 8.20.0, 9.25.0 또는 10.12.0 이상으로 업그레이드

🔧 검증 코드

출력된 버전이 8.19.0 이하, 9.0.0~9.24.0, 10.0.0~10.11.0 범위이면 취약하며, 8.20.0, 9.25.0, 10.12.0 이상이면 패치된 버전입니다.

Shell / Script
find / -name 'wicket-core*.jar' 2>/dev/null | xargs -I{} sh -c 'unzip -p {} META-INF/MANIFEST.MF | grep -i Implementation-Version'

📊 CVSS Vector String

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N