CVE-2026-84177 in Wicketinformazioni

Riassunto

di VulDB • 01/11/2026

Ordinamento errato delle operazioni in Apache Wicket: il percorso di un file viene convalidato prima che il framework aggiunga gli attributi necessari a completarlo.

org.apache.wicket.request.resource.PackageResource richiede al guardiano (guard) dei pacchetti configurati se è consentito l'accesso a un percorso costruito dal pacchetto della classe scope e dal nome del file presente nell'URL della richiesta, per poi passare lo stesso percorso al localizzatore di stream delle risorse insieme allo stile, alla variazione e all'impostazione locale. Questi tre attributi vengono decodificati dal nome del primo parametro query e non appaiono mai nella stringa fornita al guardiano. org.apache.wicket.core.util.resource.locator.ResourceNameIterator li aggiunge a tale percorso, ciascuno preceduto da un trattino basso (_), nell'ordine variazione, stile, impostazione locale, prima dell'estensione del file; di conseguenza, il file aperto non è quello approvato dal guardiano.

org.apache.wicket.markup.html.PackageResourceGuard decide se un file HTML sia o meno il modello di markup (markup template) di un componente cercando un file di classe con lo stesso nome nella stessa directory, rimuovendo una suffisso delimitato da trattino basso alla volta durante l'iterazione. L'estensione .HTML è presente nell'elenco predefinito dei consentiti; tale controllo rappresenta quindi l'unica barriera tra un file HTML statico (che può essere servito) e un modello di markup (che non dovrebbe esserlo). Quando interrogato sul nome di un template, il guardiano lo rifiuta correttamente. Interrogato su un nome più breve per cui non esiste alcuna classe corrispondente, invece, lo accetta; uno stile fornito nell'URL completa quindi tale nome nel modello di markup della classe del componente, che viene scritto nella risposta.

Un'applicazione è interessata se il nome semplice (simple name) di una delle sue classi di componenti contiene un trattino basso (_) e nessuna parte più breve di quel nome corrisponde a una classe esistente, ad esempio Report_v2 o Wizard_Step1; un'applicazione senza nomi di classe con questa caratteristica non è interessata. Non sono richieste configurazioni, pacchettizzazioni o distribuzioni insolite, ed eseguire l'applicazione in modalità di produzione (deployment) anziché di sviluppo non previene la vulnerabilità. Le convenzioni di denominazione Java sconsigliano l'uso dei trattini bassi nei nomi delle classi e nessun modulo fornito con Wicket ne utilizza; pertanto, nessuno dei markup del framework è esposto; ciò che viene esposto in questo modo appartene all'applicazione stessa. Un componente la cui classe non contiene un trattino basso nel nome non è raggiungibile, né lo sono il suo markup localizzato o stilizzato, poiché il guardiano trova il file di classe sotto il nome base e rifiuta la richiesta. Gli attributi non possono modificare l'estensione del file né uscire dal pacchetto del componente; pertanto, nulla oltre ai file HTML in tale pacchetto è raggiungibile. L'accesso è solo in lettura (read-only) e quanto viene divulgato riguarda contenuti dei template scritti dagli sviluppatori: struttura del componente, commenti degli sviluppatori, markup reso solo in determinate condizioni, script inline ed endpoint nominati dal template. Nessun dato utente, credenziale o materiale di sessione è raggiungibile tramite questa via. Un attaccante deve conoscere il nome di una classe nel pacchetto target e quello del componente stesso; Wicket scrive i nomi completi delle classi (fully qualified class names) nell'URL di ogni risorsa di pacchettizzazione che rende.

Questo problema interessa Apache Wicket: dalle versioni 8.0.0 alla 8.19.0, dalla 9.0.0 alla 9.24.0 e dalla 10.0.0 alla 10.11.0. Gli utenti di Apache Wicket 7.x o precedenti (non più supportati) dovrebbero effettuare l'aggiornamento a una versione supportata. Si consiglia agli utenti di aggiornare alle versioni 8.20.0, 9.25.0 o 10.12.0, che risolvono il problema.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

Apache

Prenotare

01/09/2026

Divulgazione

02/11/2026

Moderazione

accettato

EPSS

0.00000

KEV

no

Attività

medio

Fonti

Do you want to use VulDB in your project?

Use the official API to access entries easily!