CVE-2024-11407
NoneCVSS
—
EPSS
0.6%
Published
Nov 26, 2024
CISA due date
—
Cloudanix analysis
A bug in a popular communication library can scramble messages between computer programs, causing connections to break and services to stop working properly.
- Exploitation
- Other
- Attacker needs
- None
- Complexity
- Theoretical
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
gRPC-C++ servers with GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED enabled can corrupt application data before network transmission, resulting in the receiver obtaining an incorrect byte stream and RPC failures.
Why it matters to the business
Systems relying on gRPC for inter-service communication may experience unexpected request failures and service unavailability until the library is updated, increasing operational overhead in high-volume environments.
How an attack unfolds
An attacker or misbehaving client triggers the flaw simply by interacting with a vulnerable server that has zero-copy transmit enabled; data corruption occurs during normal transmission, causing the receiving side to reject or mishandle the RPC without any special payload required.
How to fix it
Upgrade grpc/grpc to commit e9046b2bbebc0cb7f5dc42008f807f6c7e98e791 or later; if immediate upgrade is not feasible, disable GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED on affected channels.
How to confirm the fix worked
Confirm the running binary or build includes commit e9046b2bbebc0cb7f5dc42008f807f6c7e98e791; test by exercising RPC traffic with the channel argument enabled and verifying absence of corruption-induced failures.
Typical attack path
- Identify or deploy a gRPC-C++ server with GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED set on the channel
- Initiate standard RPC calls that exercise the transmit path
- Observe data corruption at the receiver leading to RPC failure or timeout
How to detect it
Review application and gRPC logs for unexpected RPC failures or data-integrity errors on servers using the zero-copy transmit option; search configuration files and command lines for the GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED channel argument.
- GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED
- data corruption
- incorrect set of bytes
What your security team should do
- Apply the fixed commit immediately in all gRPC-C++ server deployments
- Audit configurations for use of GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED and disable where possible until patched
- Monitor EPSS and KEV updates for any future increase in exploit activity
The record
There exists a denial of service through Data corruption in gRPC-C++ - gRPC-C++ servers with transmit zero copy enabled through the channel arg GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED can experience data corruption issues. The data sent by the application may be corrupted before transmission over the network thus leading the receiver to receive an incorrect set of bytes causing RPC requests to fail. We recommend upgrading past commit e9046b2bbebc0cb7f5dc42008f807f6c7e98e791
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | grpc | 0 | No fix |
| Debian:12 | grpc | 0 | No fix |
| Debian:13 | grpc | 0 | No fix |
| Red Hat:ansible_automation_platform:2.5::el8 | automation-controller-venv-tower | 0 | 0:4.6.6-1.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | automation-gateway-server | 0 | 0:2.5.20250115-1.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | python3.11-aiohttp | 0 | 0:3.10.11-1.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | python3.11-aiohttp-debuginfo | 0 | 0:3.10.11-1.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | python3.11-aiohttp-debugsource | 0 | 0:3.10.11-1.el8ap |
| Red Hat:ansible_automation_platform:2.5::el9 | automation-controller-venv-tower | 0 | 0:4.6.6-1.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | automation-gateway-server | 0 | 0:2.5.20250115-1.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | python3.11-aiohttp | 0 | 0:3.10.11-1.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | python3.11-aiohttp-debuginfo | 0 | 0:3.10.11-1.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | python3.11-aiohttp-debugsource | 0 | 0:3.10.11-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.5::el8 | automation-controller-venv-tower | 0 | 0:4.6.6-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.5::el9 | automation-controller-venv-tower | 0 | 0:4.6.6-1.el9ap |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | grpc | 0 | 1.60.0-150500.11.8.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | grpc | 0 | 1.60.0-150600.15.3.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP4 | grpc | 0 | 1.60.0-150400.8.8.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP4 | python-grpcio | 0 | 1.60.1-150400.9.10.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP5 | grpc | 0 | 1.60.0-150500.11.8.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP5 | python-grpcio | 0 | 1.60.1-150500.12.6.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | python-grpcio | 0 | 1.60.1-150600.16.8.1 |
| SUSE:Linux Enterprise Module for Python 3 15 SP5 | python-grpcio | 0 | 1.60.1-150500.12.6.1 |
| Ubuntu:16.04:LTS | grpc | 0 | No fix |
| Ubuntu:18.04:LTS | grpc | 0 | No fix |
| Ubuntu:20.04:LTS | grpc | 0 | No fix |
| Ubuntu:22.04:LTS | grpc | 0 | No fix |
| Ubuntu:24.04:LTS | grpc | 0 | No fix |
| Ubuntu:24.10 | grpc | 0 | No fix |
| Ubuntu:25.04 | grpc | 0 | No fix |
| Ubuntu:25.10 | grpc | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | grpc | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | grpc | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | grpc | 0 | No fix |
| openSUSE:Leap 15.5 | grpc | 0 | 1.60.0-150500.11.8.1 |
| openSUSE:Leap 15.5 | python-grpcio | 0 | 1.60.1-150500.12.6.1 |
| openSUSE:Leap 15.6 | grpc | 0 | 1.60.0-150600.15.3.1 |
| openSUSE:Leap 15.6 | python-grpcio | 0 | 1.60.1-150600.16.8.1 |
| openSUSE:Tumbleweed | python-grpcio | 0 | 1.69.0-2.1 |
Related vulnerabilities
- CVE-2024-7246 It's possible for a gRPC client communicating with a HTTP/2 proxy to poison the HPACK… Also affects grpc
- CVE-2024-55565 nanoid (aka Nano ID) before 5.0.9 mishandles non-integer values. Also affects automation-controller-venv-tower
- CVE-2024-53908 Django SQL injection in HasKey(lhs, rhs) on Oracle Also affects automation-controller-venv-tower
- CVE-2024-53907 Django denial-of-service in django.utils.html.strip_tags() Also affects automation-controller-venv-tower
- CVE-2024-53259 quic-go is an implementation of the QUIC protocol in Go. Also affects automation-controller-venv-tower
- CVE-2024-52304 aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Also affects automation-controller-venv-tower
- CVE-2024-45230 An issue was discovered in Django 5.1 before 5.1.1, 5.0 before 5.0.9, and 4.2 before… Also affects automation-controller-venv-tower
- CVE-2024-22189 quic-go is an implementation of the QUIC protocol in Go. Also affects automation-controller-venv-tower