CVE-2023-49082: aiohttp's ClientSession is vulnerable to CRLF injection via method

Published Nov 27, 2023
·
Updated

Summary Improper validation makes it possible for an attacker to modify the HTTP request (e.g. insert a new header) or even create a new HTTP request if the attacker controls the HTTP method.

Details The vulnerability occurs only if the attacker can control the HTTP method (GET, POST etc.) of the request.

Previous releases performed no validation on the provided value. If an attacker controls the HTTP method it will be used as is and can lead to HTTP request smuggling.

PoC A minimal example can be found here: https://gist.github.com/jnovikov/7f411ae9fe6a9a7804cf162a3bdbb44b

Impact If the attacker can control the HTTP version of the request it will be able to modify the request (request smuggling).

Workaround If unable to upgrade and using user-provided values for the request method, perform manual validation of the user value (e.g. by restricting it to a few known values like GET, POST etc.).

Patch: https://github.com/aio-libs/aiohttp/pull/7806/files

Other sources

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Improper validation makes it possible for an attacker to modify the HTTP request (e.g. insert a new header) or even create a new HTTP request if the attacker controls the HTTP method. The vulnerability occurs only if the attacker can control the HTTP method (GET, POST etc.) of the request. If the attacker can control the HTTP version of the request it will be able to modify the request (request smuggling). This issue has been patched in version 3.9.0.

MITRE

Affected Software

3 affected componentsFixes available
pip/aiohttp<3.9.0
3.9.0
aiohttp aiohttp<3.9.0
redhat/aiohttp<3.9.0
3.9.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/aiohttp to a version that resolves this vulnerability.

    Fixed in 3.9.0
  2. Upgrade

    Upgrade redhat/aiohttp to a version that resolves this vulnerability.

    Fixed in 3.9.0
  3. Upgrade

    Upgrade aiohttp to a version that resolves this vulnerability.

    Fixed in 3.9.0Patch GHSA-qvrw-v9rv-5rjx
  4. Configuration

    If unable to upgrade, ensure user-provided request method values are manually validated by restricting them to known safe HTTP methods (e.g., GET/POST) to prevent CRLF injection and HTTP request smuggling.

    aiohttp ClientSession (HTTP method handling) HTTP method input validation = Restrict to a few known values like GET, POST etc.

Event History

Nov 27, 2023
Advisory Published
via GitHub·11:17 PM
Nov 29, 2023
CVE Published
via MITRE·08:07 PM
Data Sourced
via MITRE·08:07 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·08:15 PM
DescriptionSeverityWeaknessAffected Software
Nov 30, 2023
Data Sourced
via Red Hat·10:50 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is CVE-2023-49082?

CVE-2023-49082 is a vulnerability that allows an attacker to modify or create an HTTP request by controlling the HTTP method.

2

What software is affected by CVE-2023-49082?

The aiohttp package with versions up to but excluding 3.9.0 is affected by CVE-2023-49082.

3

How can the attacker exploit CVE-2023-49082?

The attacker can exploit CVE-2023-49082 by controlling the HTTP method in the HTTP request.

4

How can I mitigate CVE-2023-49082?

To mitigate CVE-2023-49082, update the aiohttp package to version 3.9.0 or above.

5

Where can I find more information about CVE-2023-49082?

You can find more information about CVE-2023-49082 in the following references: [GitHub Advisory](https://github.com/aio-libs/aiohttp/security/advisories/GHSA-qvrw-v9rv-5rjx), [Gist](https://gist.github.com/jnovikov/7f411ae9fe6a9a7804cf162a3bdbb44b), [GitHub Advisories](https://github.com/advisories/GHSA-qvrw-v9rv-5rjx).

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203