El cliente utiliza el encabezado ETag
para el almacenamiento en caché efectivo de los recursos del lado del servidor. El servidor envía un encabezado ETag
en la respuesta HTTP a alguna cadena y el cliente almacena en caché el contenido de la respuesta y asocia la cadena dada en el encabezado ETag
. Si el cliente desea acceder al mismo recurso nuevamente, enviará la cadena dada dentro de un encabezado If-None-Match
en la solicitud HTTP y el servidor solo devolverá el contenido completo si el recurso ha sido cambiado y, de lo contrario, le informará al cliente que el contenido almacenado en caché puede ser usado. Consulte Wikipedia para obtener más detalles.
Esto significa que cada cliente puede obtener un encabezado ETag
del servidor, es decir, el valor del encabezado no es secreto. Por lo tanto, contrariamente a su pregunta, la filtración de dicho encabezado no es el problema.
El problema es, en cambio, si el valor del encabezado (es decir, la cadena) proporciona información sobre el servidor que debe permanecer en secreto. A menudo, el valor del encabezado es solo un hash sobre el contenido del recurso que no es un problema en absoluto. Pero, por ejemplo, el servidor web Apache puede basar el ETag
en el número de inodo, la hora de la última modificación y / o el tamaño del archivo. Usando esta metainformación, se puede crear un ETag
único mucho más rápido en comparación con el cálculo del hash del contenido. Solo, al menos el número de inodo se considera información interna del servidor y no debe ser expuesto al cliente. Si bien no se puede utilizar en ataques, se puede utilizar directamente el conocimiento de muchos números de inodo para obtener, por ejemplo, información sobre el sistema de archivos subyacente que podría ayudar en futuros ataques contra el servidor.
Esto significa que el número de inodo no debe ser extraíble del encabezado ETag
porque debe permanecer secreto. Esto se solucionó con Apache 1.3.27 (hace mucho tiempo), es decir, el número de inodo todavía se usa para calcular el ETag
pero de una manera que no se puede extraer del valor ETag
.
Editar: Rapid7, por ejemplo, ve esto como una severidad de cuatro.
La puntuación CVSS se calcula a partir de varias partes. Los detalles para este problema específico se puede ver aquí pero esencialmente se reduce a que es trivial de usar, se puede hacer a través de la red, no necesita autenticación y proporciona información interna sobre el servidor.