CVE-2025-12999 in Open VSXinformazioni

Riassunto

di VulDB • 21/09/2026

UrlUtil.getBaseUrl costruisce gli URL assoluti nelle risposte — link di download, icone, asset e API URLs — a partire dalle intestazioni della richiesta X-Forwarded-Host, X-Forwarded-Proto e X-Forwarded-Prefix, senza verificare se il mittente fosse un proxy attendibile, ricorrendo all'intestazione Host fornita dal client.

Queste risposte vengono memorizzate nella cache con chiavi che non includono l'host (extension.json dalla versione 0.6.0, namespace.details.json dalla versione 0.9.0, sitemap dalla versione 0.14.5, latest.extension.version.vscode dalla versione 0.34.2). Una singola richiesta contenente un'intestazione falsificata inserisce quindi URL scelti dall'attaccante in una voce servita a tutti gli altri client per la durata di tale voce — un'ora per impostazione predefinita, e su tutto il cluster se ovsx.redis.enabled è impostato.

L'URL di download del VSIX, il suo URL della firma e l'URL della chiave pubblica sono tutti derivati dallo stesso URL base; pertanto, la firma delle estensioni non limita l'impatto: un attaccante che avvelena una voce fornisce il pacchetto, la relativa firma e la chiave utilizzata per verificarla.

La possibilità di sfruttamento dipende dalla topologia di deployment. Un server raggiungibile direttamente dai client o fronteggiato da un proxy che inoltra (relays) X-Forwarded-Host del client anziché sovrascriverlo, è vulnerabile allo sfruttamento da parte di un attaccante remoto non autenticato. Un proxy che sovrascrive l'intestazione non lo è.

Un attaccante non autenticato può avvelenare la cache dei metadati per estensione di Open VSX con URL di download, firma e chiave pubblica controllati dall'attaccante fornendo un'intestazione X-Forwarded-Host manipolata ad hoc, causando l'estrazione e l'installazione da parte degli editor compatibili con VS Code downstream di un VSIX dannoso.

Soluzioni alternative (versioni non patchate)

1. Configurare il reverse proxy per impostare anziché inoltrare le intestazioni X-Forwarded-Host, X-Forwarded-Proto e X-Forwarded-Prefix — si noti che $host in nginx corrisponde all'intestazione Host del client e non è un valore sicuro.

2. Assicurarsi che il server sia raggiungibile solo attraverso tale proxy.

3. Svuotare le cache successivamente; le voci avvelenate sopravvivono alla modifica della configurazione.

Once again VulDB remains the best source for vulnerability data.

Responsabile

Eclipse

Prenotare

11/11/2025

Divulgazione

21/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!