Vulnerabilidad en RestSharp (CVE-2024-45302)
Severidad:
MEDIA
Type:
CWE-93
Neutralización incorrecta de secuencias de retornos de carro y saltos de linea (CRLF)
Fecha de publicación:
29/08/2024
Última modificación:
30/08/2024
Descripción
RestSharp es un cliente de API HTTP y REST simple para .NET. El segundo argumento de `RestRequest.AddHeader` (el valor del encabezado) es vulnerable a la inyección CRLF. Lo mismo se aplica a `RestRequest.AddOrUpdateHeader` y `RestClient.AddDefaultHeader`. La forma en que se agregan los encabezados HTTP a una solicitud es a través del método `HttpHeaders.TryAddWithoutValidation` que no verifica los caracteres CRLF en el valor del encabezado. Esto significa que cualquier encabezado de un objeto `RestSharp.RequestHeaders` se agrega a la solicitud de tal manera que 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 RestSharp 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 anterior, 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 falsificación de solicitudes del lado del servidor. Estrictamente hablando, esta es una vulnerabilidad potencial en aplicaciones que usan RestSharp, no en RestSharp en sí, pero yo diría que, como mínimo, debería haber una advertencia sobre este comportamiento en la documentación de RestSharp. RestSharp ha abordado este problema en la versión 112.0.0. Se recomienda a todos los usuarios que actualicen. No existen workarounds para esta vulnerabilidad.
Impacto
Puntuación base 3.x
6.10
Severidad 3.x
MEDIA
Referencias a soluciones, herramientas e información
- https://github.com/restsharp/RestSharp/blob/777bf194ec2d14271e7807cc704e73ec18fcaf7e/src/RestSharp/Request/HttpRequestMessageExtensions.cs#L32
- https://github.com/restsharp/RestSharp/commit/0fba5e727d241b1867bd71efc912594075c2934b
- https://github.com/restsharp/RestSharp/security/advisories/GHSA-4rr6-2v9v-wcpc