CVE-2023-49082
Medium · 5.3CVSS
5.3
EPSS
0.9%
Published
Nov 29, 2023
CISA due date
—
Cloudanix analysis
A flaw in a popular web component could allow an attacker to manipulate web traffic to bypass security controls or perform unauthorized actions.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A flaw in aiohttp's input validation allows for Carriage Return Line Feed (CRLF) injection into the HTTP method. An attacker who can control the HTTP method string can inject CRLF sequences to split the request line. This can lead to HTTP Request Smuggling, where the attacker embeds a second, malicious HTTP request within the first one. This smuggled request is then processed by the backend server, potentially out of sync with legitimate traffic.
Why it matters to the business
Exploitation of this vulnerability can lead to security bypasses, session hijacking, and web cache poisoning. An attacker could circumvent security controls like Web Application Firewalls (WAFs) to perform unauthorized actions, such as accessing sensitive data or modifying application state. This compromises data integrity and user privacy, potentially leading to reputational damage and loss of customer trust. The widespread use of aiohttp in the Python ecosystem, including in major projects like OpenStack, means a large number of applications could be indirectly affected.
How an attack unfolds
An attacker identifies a web application using a vulnerable version of aiohttp where the HTTP method (e.g., GET, POST) can be influenced by user-provided input. The attacker crafts a special request where the method string contains CRLF characters followed by a complete second HTTP request. For example, instead of 'GET', the method might be 'GET /ignored HTTP/1.1\r\nHost: ignored.com\r\n\r\nPOST /api/admin HTTP/1.1\r\n...'. The vulnerable aiohttp server fails to sanitize this input and forwards it. A backend server or proxy then misinterprets the single request as two separate requests, processing the attacker's smuggled 'POST' request, often in the context of another user's session.
How to fix it
To remediate this vulnerability, upgrade the aiohttp library to version 3.9.0 or later. You can update the package using pip: `pip install --upgrade aiohttp>=3.9.0`. For projects like OpenStack Heat that vendor or depend on aiohttp, ensure you are running a version that incorporates the patched library, such as the one including commit `2dd83353c086a8ee3ee8aefb99b06832782d8cab`. If immediate patching is not possible, implement a compensating control by rigorously validating any user input that could influence the HTTP method to strip or reject any non-alphabetic characters, especially CRLF sequences.
How to confirm the fix worked
To confirm remediation, verify that all Python environments are running aiohttp version 3.9.0 or newer. Use a command like `pip list | grep aiohttp` to check the installed version. To test for the vulnerability's absence, you can use a security scanner or manually send a request with an embedded CRLF sequence in the HTTP method (e.g., using netcat or a custom script). A patched system should reject such a request with an error or sanitize the method, preventing the request from being smuggled.
Typical attack path
- The attacker identifies an application using a vulnerable version of the aiohttp library.
- The attacker finds an input vector that allows them to control or inject data into the HTTP method string.
- The attacker crafts a malicious payload containing CRLF characters and a second, smuggled HTTP request within the method parameter.
- The attacker sends the crafted request to the vulnerable application.
- The aiohttp server processes the request and, due to the improper validation, forwards the malformed request to a backend server or proxy.
- The backend server interprets the single malicious request as two separate requests, executing the smuggled request.
- The smuggled request executes an unauthorized action, such as bypassing access controls or hijacking a user session.
How to detect it
To detect potential exploitation, security teams should analyze HTTP logs from web servers, load balancers, and Web Application Firewalls (WAFs). Look for highly anomalous entries in the HTTP method field of the request line. A successful exploit would place newline characters (CRLF) within the method itself. Searching for raw log entries where the first word of the request line contains `\r\n` or their URL-encoded equivalents (`%0d%0a`) can indicate an attempt. Correlating such requests with subsequent unexpected or unauthorized actions in application logs can help confirm a successful compromise.
- \r\n.*(GET|POST|PUT|DELETE)
- %0d%0a.*(GET|POST|PUT|DELETE)
- \n.*(GET|POST|PUT|DELETE)
- %0a.*(GET|POST|PUT|DELETE)
What your security team should do
- Use a Software Composition Analysis (SCA) tool to identify all applications and systems using vulnerable versions of aiohttp.
- Prioritize patching for all internet-facing applications and critical internal services that use the aiohttp library by upgrading to version 3.9.0 or later.
- If patching is delayed, review application code for any instances where user input can define the HTTP method and apply strict input validation as a temporary mitigation.
- Review web server and WAF logs for evidence of past exploitation attempts by searching for anomalous HTTP methods containing newline characters.
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | aiohttp | 0 | 3.9.0 |
| PyPI | aiohttp | 0 | e4ae01c2077d2cfa116aa82e4ff6866857f7c466 |
| Chainguard | py3-cassandra-medusa | 0 | 0.19.1-r1 |
| Chainguard | py3-cassandra-medusa-compat | 0 | 0.19.1-r1 |
| Debian:11 | python-aiohttp | 0 | No fix |
| Debian:11 | python-aiohttp | 0 | 3.7.4-1+deb11u1 |
| Debian:12 | python-aiohttp | 0 | No fix |
| Debian:12 | python-aiohttp | 0 | 3.8.4-1+deb12u1 |
| Debian:13 | python-aiohttp | 0 | 3.9.1-1 |
| Red Hat:ansible_automation_platform:2.4::el8 | ansible-automation-platform-installer | 0 | 0:2.4-6.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | ansible-rulebook | 0 | 0:1.0.5-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | automation-eda-controller | 0 | 0:1.0.5-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | automation-eda-controller-server | 0 | 0:1.0.5-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | automation-eda-controller-ui | 0 | 0:1.0.5-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-aiohttp | 0 | 0:3.9.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-aiohttp-debuginfo | 0 | 0:3.9.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-django | 0 | 0:4.2.10-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-jinja2 | 0 | 0:3.1.3-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-pillow | 0 | 0:10.0.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-pillow-debuginfo | 0 | 0:10.0.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-pycryptodomex | 0 | 0:3.20.0-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-pycryptodomex-debuginfo | 0 | 0:3.20.0-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-pygments | 0 | 0:2.17.2-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-aiohttp | 0 | 0:3.9.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-aiohttp-debugsource | 0 | 0:3.9.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-django | 0 | 0:4.2.10-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-jinja2 | 0 | 0:3.1.3-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-pillow | 0 | 0:10.0.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-pillow-debugsource | 0 | 0:10.0.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-pycryptodomex | 0 | 0:3.20.0-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-pycryptodomex-debugsource | 0 | 0:3.20.0-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-pygments | 0 | 0:2.17.2-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el9 | ansible-automation-platform-installer | 0 | 0:2.4-6.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | ansible-rulebook | 0 | 0:1.0.5-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | automation-eda-controller | 0 | 0:1.0.5-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | automation-eda-controller-server | 0 | 0:1.0.5-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | automation-eda-controller-ui | 0 | 0:1.0.5-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-aiohttp | 0 | 0:3.9.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-aiohttp-debugsource | 0 | 0:3.9.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-django | 0 | 0:4.2.10-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-jinja2 | 0 | 0:3.1.3-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-pillow | 0 | 0:10.0.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-pillow-debugsource | 0 | 0:10.0.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-pycryptodomex | 0 | 0:3.20.0-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-pycryptodomex-debugsource | 0 | 0:3.20.0-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-pygments | 0 | 0:2.17.2-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-aiohttp | 0 | 0:3.9.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-aiohttp-debuginfo | 0 | 0:3.9.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-django | 0 | 0:4.2.10-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-jinja2 | 0 | 0:3.1.3-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-pillow | 0 | 0:10.0.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-pillow-debuginfo | 0 | 0:10.0.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-pycryptodomex | 0 | 0:3.20.0-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-pycryptodomex-debuginfo | 0 | 0:3.20.0-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-pygments | 0 | 0:2.17.2-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python39-jinja2 | 0 | 0:3.1.3-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python39-pygments | 0 | 0:2.17.2-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python3x-jinja2 | 0 | 0:3.1.3-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python3x-pygments | 0 | 0:2.17.2-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python-jinja2 | 0 | 0:3.1.3-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python-pygments | 0 | 0:2.17.2-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python3-jinja2 | 0 | 0:3.1.3-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python3-pygments | 0 | 0:2.17.2-1.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python39-jinja2 | 0 | 0:3.1.3-1.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python39-pygments | 0 | 0:2.17.2-1.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python3x-jinja2 | 0 | 0:3.1.3-1.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python3x-pygments | 0 | 0:2.17.2-1.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python-jinja2 | 0 | 0:3.1.3-1.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python-pygments | 0 | 0:2.17.2-1.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python3-jinja2 | 0 | 0:3.1.3-1.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python3-pygments | 0 | 0:2.17.2-1.el9ap |
| Red Hat:rhui:4::el8 | python-aiohttp | 0 | 0:3.9.2-1.el8ui |
| Red Hat:rhui:4::el8 | python-aiohttp-debugsource | 0 | 0:3.9.2-1.el8ui |
| Red Hat:rhui:4::el8 | python-cryptography | 0 | 0:41.0.6-1.el8ui |
| Red Hat:rhui:4::el8 | python-cryptography-debugsource | 0 | 0:41.0.6-1.el8ui |
| Red Hat:rhui:4::el8 | python-django | 0 | 0:4.2.11-1.el8ui |
| Red Hat:rhui:4::el8 | python-ecdsa | 0 | 0:0.18.0-4.el8ui |
| Red Hat:rhui:4::el8 | python-jinja2 | 0 | 0:3.1.3-1.el8ui |
| Red Hat:rhui:4::el8 | python3.11-aiohttp | 0 | 0:3.9.2-1.el8ui |
| Red Hat:rhui:4::el8 | python3.11-aiohttp-debuginfo | 0 | 0:3.9.2-1.el8ui |
| Red Hat:rhui:4::el8 | python3.11-cryptography | 0 | 0:41.0.6-1.el8ui |
| Red Hat:rhui:4::el8 | python3.11-cryptography-debuginfo | 0 | 0:41.0.6-1.el8ui |
| Red Hat:rhui:4::el8 | python3.11-django | 0 | 0:4.2.11-1.el8ui |
| Red Hat:rhui:4::el8 | python3.11-ecdsa | 0 | 0:0.18.0-4.el8ui |
| Red Hat:rhui:4::el8 | python3.11-jinja2 | 0 | 0:3.1.3-1.el8ui |
| Red Hat:satellite:6.15::el8 | foreman | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-cli | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-debug | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-dynflow-sidekiq | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-ec2 | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-journald | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-libvirt | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-openstack | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-ovirt | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-pcp | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-postgresql | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-redis | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-service | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-telemetry | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | foreman-vmware | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | puppetserver | 0 | 0:7.14.0-1.el8sat |
| Red Hat:satellite:6.15::el8 | python-aiohttp | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite:6.15::el8 | python-aiohttp-debugsource | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite:6.15::el8 | python-django | 0 | 0:4.2.9-1.el8pc |
| Red Hat:satellite:6.15::el8 | python-galaxy-importer | 0 | 0:0.4.19-2.el8pc |
| Red Hat:satellite:6.15::el8 | python-jinja2 | 0 | 0:3.1.3-1.el8pc |
| Red Hat:satellite:6.15::el8 | python-pycryptodomex | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite:6.15::el8 | python-pycryptodomex-debugsource | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite:6.15::el8 | python-pygments | 0 | 0:2.17.0-1.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-aiohttp | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-aiohttp-debuginfo | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-django | 0 | 0:4.2.9-1.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-galaxy-importer | 0 | 0:0.4.19-2.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-jinja2 | 0 | 0:3.1.3-1.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-pycryptodomex | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-pycryptodomex-debuginfo | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite:6.15::el8 | python3.11-pygments | 0 | 0:2.17.0-1.el8pc |
| Red Hat:satellite:6.15::el8 | rubygem-activesupport | 0 | 0:6.1.7.6-1.el8sat |
| Red Hat:satellite:6.15::el8 | rubygem-audited | 0 | 0:5.4.2-1.el8sat |
| Red Hat:satellite:6.15::el8 | rubygem-puma | 0 | 0:6.4.2-1.el8sat |
| Red Hat:satellite:6.15::el8 | rubygem-puma-debuginfo | 0 | 0:6.4.2-1.el8sat |
| Red Hat:satellite:6.15::el8 | rubygem-puma-debugsource | 0 | 0:6.4.2-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-cli | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-debug | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-dynflow-sidekiq | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-ec2 | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-journald | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-libvirt | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-openstack | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-ovirt | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-pcp | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-postgresql | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-redis | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-service | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-telemetry | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | foreman-vmware | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | puppetserver | 0 | 0:7.14.0-1.el8sat |
| Red Hat:satellite_capsule:6.15::el8 | python-aiohttp | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python-aiohttp-debugsource | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python-django | 0 | 0:4.2.9-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python-galaxy-importer | 0 | 0:0.4.19-2.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python-jinja2 | 0 | 0:3.1.3-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python-pycryptodomex | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python-pycryptodomex-debugsource | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python-pygments | 0 | 0:2.17.0-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-aiohttp | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-aiohttp-debuginfo | 0 | 0:3.9.2-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-django | 0 | 0:4.2.9-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-galaxy-importer | 0 | 0:0.4.19-2.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-jinja2 | 0 | 0:3.1.3-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-pycryptodomex | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-pycryptodomex-debuginfo | 0 | 0:3.20.0-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | python3.11-pygments | 0 | 0:2.17.0-1.el8pc |
| Red Hat:satellite_capsule:6.15::el8 | rubygem-activesupport | 0 | 0:6.1.7.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-cli | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-debug | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-dynflow-sidekiq | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-ec2 | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-journald | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-libvirt | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-openstack | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-ovirt | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-pcp | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-postgresql | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-redis | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-service | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-telemetry | 0 | 0:3.9.1.6-1.el8sat |
| Red Hat:satellite_utils:6.15::el8 | foreman-vmware | 0 | 0:3.9.1.6-1.el8sat |
| SUSE:Linux Enterprise Module for Python 3 15 SP5 | python-aiohttp | 0 | 3.8.6-150400.10.11.1 |
| Ubuntu:20.04:LTS | python-aiohttp | 0 | No fix |
| Ubuntu:22.04:LTS | python-aiohttp | 0 | No fix |
| Ubuntu:24.04:LTS | python-aiohttp | 0 | No fix |
| Ubuntu:24.10 | python-aiohttp | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | python-aiohttp | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | python-aiohttp | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | python-aiohttp | 0 | 3.0.1-1ubuntu0.1~esm5 |
| Ubuntu:Pro:22.04:LTS | python-aiohttp | 0 | 3.8.1-4ubuntu0.2+esm1 |
| Wolfi | py3-cassandra-medusa | 0 | 0.19.1-r1 |
| Wolfi | py3-cassandra-medusa-compat | 0 | 0.19.1-r1 |
| openSUSE:Leap 15.5 | python-aiohttp | 0 | 3.8.6-150400.10.11.1 |
Related vulnerabilities
- CVE-2025-69229 AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Also affects aiohttp
- CVE-2025-69223 AIOHTTP's HTTP Parser auto_decompress feature is vulnerable to zip bomb Also affects aiohttp
- CVE-2025-69224 AIOHTTP's unicode processing of header values could cause parsing discrepancies Also affects aiohttp
- CVE-2025-69226 AIOHTTP vulnerable to brute-force leak of internal static file path components Also affects aiohttp
- CVE-2025-69225 AIOHTTP has unicode match groups in regexes for ASCII protocol elements Also affects aiohttp
- CVE-2025-69228 AIOHTTP vulnerable to denial of service through large payloads Also affects aiohttp
- CVE-2025-69230 AIOHTTP Vulnerable to Cookie Parser Warning Storm Also affects aiohttp
- CVE-2025-69227 AIOHTTP vulnerable to DoS when bypassing asserts Also affects aiohttp