L'intestazione ETag
viene utilizzata per il caching efficace delle risorse lato server da parte del client. Il server invia un'intestazione ETag
nella risposta HTTP a una stringa e il client memorizza nella cache il contenuto della risposta e associa la stringa fornita nell'intestazione ETag
con essa. Se il cliente desidera accedere nuovamente alla stessa risorsa, invierà la stringa specificata entro un'intestazione If-None-Match
nella richiesta HTTP e il server restituirà l'intero contenuto solo se la risorsa è stata modificata e in caso contrario comunica al client che il contenuto della cache è stato modificato può essere utilizzato. Vedi Wikipedia per ulteriori dettagli.
Questo significa che ogni cliente può ottenere un'intestazione ETag
dal server, cioè il valore dell'intestazione non è segreto. Pertanto, contrariamente alla tua domanda, la perdita di tale intestazione non è il problema.
Il problema è invece se il valore dell'intestazione (cioè la stringa) fornisce informazioni sul server che dovrebbe rimanere segreto. Spesso il valore dell'intestazione è solo un hash sul contenuto della risorsa che non è affatto un problema. Ad esempio, il server Web Apache può basare ETag
sul numero di inode, sull'ultima modifica e / o sulla dimensione del file. Usando queste meta informazioni è possibile creare un ETag
unico molto più veloce rispetto al calcolo dell'hash del contenuto. Solo, almeno il numero di inode è considerato informazione interna al server e non deve essere esposto al client. Sebbene non sia utilizzabile negli attacchi, è possibile utilizzare direttamente la conoscenza di molti numeri di inode per ottenere, ad esempio, informazioni sul file system sottostante che potrebbero aiutare in ulteriori attacchi contro il server.
Questo significa che il numero di inode non dovrebbe essere estraibile dall'intestazione ETag
perché dovrebbe rimanere segreto. Questo problema è stato risolto con Apache 1.3.27 (molto tempo fa), ovvero il numero di inode è ancora utilizzato per calcolare ETag
ma in modo che non possa essere estratto dal valore ETag
.
Edit: Rapid7 for example see's this as with a severity of four.
Il punteggio CVSS è calcolato da più parti. I dettagli per questo problema specifico può essere visto qui ma sostanzialmente si riduce a quello che è banale da usare, può essere fatto attraverso la rete, non ha bisogno di autenticazione e fornisce alcune informazioni interne sul server.