Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Refit (CVE-2024-51501)

Gravedad CVSS v4.0:
CRÍTICA
Tipo:
CWE-93 Neutralización incorrecta de secuencias de retornos de carro y saltos de linea (CRLF)
Fecha de publicación:
04/11/2024
Última modificación:
08/11/2024

Descripción

Refit es una librería REST automática y segura de tipos para .NET Core, Xamarin y .NET Los diversos atributos Refit relacionados con los encabezados (Header, HeaderCollection y Authorize) son vulnerables a la inyección CRLF. La forma en que se agregan los encabezados HTTP a una solicitud es a través del método `HttpHeaders.TryAddWithoutValidation`. Este método no verifica los caracteres CRLF en el valor del encabezado. Esto significa que cualquier encabezado agregado a una solicitud de refit es vulnerable a la inyección CRLF. En general, la inyección CRLF en un encabezado HTTP (cuando se usa HTTP/1.1) significa que uno puede inyectar encabezados HTTP adicionales o contrabandear solicitudes HTTP completas. Si una aplicación que usa la librería Refit pasa un valor controlable por el usuario a un encabezado, entonces esa aplicación se vuelve vulnerable a la inyección CRLF. Esto no es necesariamente un problema de seguridad para una aplicación de línea de comandos como la que se muestra arriba, pero si dicho código estuviera presente en una aplicación web, se volvería vulnerable a la división de solicitudes (como se muestra en la PoC) y, por lo tanto, a la Server Side Request Forgery. Estrictamente hablando, esta es una vulnerabilidad potencial en aplicaciones que usan Refit y no en Refit en sí. Este problema se ha solucionado en la versión 8.0.0 y se recomienda a todos los usuarios que actualicen. No existen workarounds conocidas para esta vulnerabilidad.