Skip to content

Request smuggling leading to endpoint restriction bypass in Gunicorn

High severity GitHub Reviewed Published Apr 16, 2024 to the GitHub Advisory Database • Updated Apr 16, 2024

Package

pip gunicorn (pip)

Affected versions

< 22.0.0

Patched versions

22.0.0

Description

Gunicorn fails to properly validate Transfer-Encoding headers, leading to HTTP Request Smuggling (HRS) vulnerabilities. By crafting requests with conflicting Transfer-Encoding headers, attackers can bypass security restrictions and access restricted endpoints. This issue is due to Gunicorn's handling of Transfer-Encoding headers, where it incorrectly processes requests with multiple, conflicting Transfer-Encoding headers, treating them as chunked regardless of the final encoding specified. This vulnerability has been shown to allow access to endpoints restricted by gunicorn. This issue has been addressed in version 22.0.0.

To be affected users must have a network path which does not filter out invalid requests. These users are advised to block access to restricted endpoints via a firewall or other mechanism if they are unable to update.

References

Published by the National Vulnerability Database Apr 16, 2024
Published to the GitHub Advisory Database Apr 16, 2024
Reviewed Apr 16, 2024
Last updated Apr 16, 2024

Severity

High
8.2
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
High
Availability
None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N

Weaknesses

CVE ID

CVE-2024-1135

GHSA ID

GHSA-w3h3-4rj7-4ph4

Source code

Checking history
See something to contribute? Suggest improvements for this vulnerability.