CVE-2024-29186

Bref is an open-source project that helps users go serverless on Amazon Web Services with PHP. When Bref prior to version 2.1.17 is used with the Event-Driven Function runtime and the handler is a `RequestHandlerInterface`, then the Lambda event is converted to a PSR7 object. During the conversion process, if the request is a MultiPart, each part is parsed. In the parsing process, the `Content-Type` header of each part is read using the `Riverline/multipart-parser` library. The library, in the `StreamedPart::parseHeaderContent` function, performs slow multi-byte string operations on the header value. Precisely, the `mb_convert_encoding` function is used with the first (`$string`) and third (`$from_encoding`) parameters read from the header value. An attacker could send specifically crafted requests which would force the server into performing long operations with a consequent long billed duration. The attack has the following requirements and limitations: The Lambda should use the Event-Driven Function runtime and the `RequestHandlerInterface` handler and should implement at least an endpoint accepting POST requests; the attacker can send requests up to 6MB long (this is enough to cause a billed duration between 400ms and 500ms with the default 1024MB RAM Lambda image of Bref); and if the Lambda uses a PHP runtime <= php-82, the impact is higher as the billed duration in the default 1024MB RAM Lambda image of Bref could be brought to more than 900ms for each request. Notice that the vulnerability applies only to headers read from the request body as the request header has a limitation which allows a total maximum size of ~10KB. Version 2.1.17 contains a fix for this issue.
Configurations

No configuration.

History

21 Nov 2024, 09:07

Type Values Removed Values Added
Summary
  • (es) Bref es un proyecto de código abierto que ayuda a los usuarios a utilizar PHP sin servidor en Amazon Web Services. Cuando se usa Bref anterior a la versión 2.1.17 con el tiempo de ejecución de la función controlada por eventos y el controlador es "RequestHandlerInterface", el evento Lambda se convierte en un objeto PSR7. Durante el proceso de conversión, si la solicitud es MultiPart, se analiza cada parte. En el proceso de análisis, el encabezado `Content-Type` de cada parte se lee usando la librería `Riverline/multipart-parser`. La librería, en la función `StreamedPart::parseHeaderContent`, realiza operaciones lentas de cadenas multibyte en el valor del encabezado. Precisamente, la función `mb_convert_encoding` se utiliza con el primer (`$string`) y el tercer parámetro (`$from_encoding`) leídos del valor del encabezado. Un atacante podría enviar solicitudes específicamente manipuladas que obligarían al servidor a realizar operaciones prolongadas con la consiguiente larga duración facturada. El ataque tiene los siguientes requisitos y limitaciones: Lambda debe usar el tiempo de ejecución de la función controlada por eventos y el controlador `RequestHandlerInterface` y debe implementar al menos un endpoint que acepte solicitudes POST; el atacante puede enviar solicitudes de hasta 6 MB de longitud (esto es suficiente para provocar una duración facturada de entre 400 ms y 500 ms con la imagen Lambda de RAM predeterminada de Bref de 1024 MB); y si Lambda usa un tiempo de ejecución PHP &lt;= php-82, el impacto es mayor ya que la duración facturada en la imagen Lambda de RAM predeterminada de Bref de 1024 MB podría aumentar a más de 900 ms para cada solicitud. Tenga en cuenta que la vulnerabilidad se aplica solo a los encabezados leídos del cuerpo de la solicitud, ya que el encabezado de la solicitud tiene una limitación que permite un tamaño máximo total de ~10 KB. La versión 2.1.17 contiene una solución para este problema.
References () https://github.com/brefphp/bref/commit/5f7c0294628dbcec6305f638ff7e2dba8a1c2f45 - () https://github.com/brefphp/bref/commit/5f7c0294628dbcec6305f638ff7e2dba8a1c2f45 -
References () https://github.com/brefphp/bref/security/advisories/GHSA-j4hq-f63x-f39r - () https://github.com/brefphp/bref/security/advisories/GHSA-j4hq-f63x-f39r -

22 Mar 2024, 17:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-03-22 17:15

Updated : 2024-11-21 09:07


NVD link : CVE-2024-29186

Mitre link : CVE-2024-29186

CVE.ORG link : CVE-2024-29186


JSON object : View

Products Affected

No product.

CWE
CWE-400

Uncontrolled Resource Consumption