HIGH 7.5

CVE-2026-59803: rpcx Pre-Authentication Denial-of-Service via Compression Bomb

rpcx versions through 1.9.3 contain a denial-of-service vulnerability triggered by specially crafted compressed messages. An attacker can send a small gzip-compressed payload that decompresses to gigabytes of data, exhausting server memory and crashing the service. Because this can happen before authentication, no valid credentials are needed—any network-connected attacker can trigger the vulnerability.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-409
Affected products
0 configuration(s)
Published / Modified
2026-07-08 / 2026-07-10

NVD description (verbatim)

rpcx through 1.9.3, fixed in commit 047aec1, contains a denial-of-service vulnerability in protocol.Message.Decode (protocol/message.go). When a message has the compression flag set, the payload is gzip-decompressed via util.Unzip with no limit on the decompressed output size. The only built-in size guard, protocol.MaxMessageLength, is checked against the compressed on-the-wire frame length, not the decompressed size, so it provides no protection. Because decoding (and decompression) occurs in readRequest before authentication, a single unauthenticated connection can send a small (under 2 MB) gzip-compressed message that expands to gigabytes of heap allocation, leading to out-of-memory conditions and service unavailability.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in the protocol.Message.Decode function within protocol/message.go. When the compression flag is set on an incoming message, the payload undergoes gzip decompression via util.Unzip without enforcing a maximum size limit on the decompressed output. The protocol.MaxMessageLength guard only validates the compressed on-the-wire frame size, not the expanded result, rendering it ineffective as a DoS mitigation. Because decompression occurs in readRequest before authentication checks, an unauthenticated client can exploit this by sending a sub-2 MB compressed message that inflates to multiple gigabytes, triggering out-of-memory allocation and service failure.

Business impact

Production rpcx deployments become vulnerable to remote service disruption without administrative action. An attacker can cause the affected service to become unavailable by exhausting heap memory, potentially affecting dependent systems and customers. The attack requires no valid credentials or prior system access, lowering the barrier to exploitation. Organizations relying on rpcx for critical inter-service communication face risk of unexpected outages if they remain on vulnerable versions.

Affected systems

Any application using rpcx library version 1.9.3 or earlier is affected. This includes services that expose rpcx endpoints to untrusted networks or the internet. Applications that accept compressed RPC messages from unauthenticated clients are at highest risk. Internal-only deployments or those using non-compressed message formats face reduced but non-zero risk if network access controls are not enforced.

Exploitability

Exploitation is straightforward and requires only network connectivity to an rpcx endpoint. No authentication is necessary, no user interaction is required, and the attack can be executed with minimal tooling—essentially sending a crafted RPC message with compression enabled. The CVSS score of 7.5 (HIGH) reflects the ease of triggering the vulnerability and the guaranteed impact on availability. This is a classic pre-authentication denial-of-service scenario with low complexity.

Remediation

Upgrade rpcx to a version containing commit 047aec1 or later, which implements proper decompression size limits. After patching, validate that message compression handling includes bounds on decompressed payload size. For organizations unable to patch immediately, implement network-level controls restricting RPC access to trusted sources and monitor for unusual memory consumption patterns on rpcx services.

Patch guidance

Consult the official rpcx repository for the specific release version corresponding to commit 047aec1. Verify the patch release notes confirm the fix addresses CVE-2026-59803 and implements decompression size validation. Test the patched version in a staging environment before production deployment to ensure compatibility with your RPC message patterns. If you are using rpcx as a vendored dependency, ensure your build system updates to the patched upstream version.

Detection guidance

Monitor rpcx service processes for sudden memory spikes or out-of-memory errors correlating with compressed RPC message receipt. Log incoming RPC messages with compression flags enabled and track the ratio of compressed to decompressed payload sizes; anomalous ratios (e.g., 1 MB input expanding to >100 MB) suggest exploitation attempts. Network-level detection is difficult since the malicious message appears small on the wire, but behavioral baselines on heap allocation can reveal attacks. Consider adding application-level decompression size assertions as a temporary detective control pending patching.

Why prioritize this

This vulnerability merits immediate attention for any organization running public or semi-public rpcx services. The combination of pre-authentication exploitation, ease of trigger, and guaranteed availability impact makes it a high-priority patch. Even internal deployments should be evaluated for network boundary exposure. The fix is shipping in upstream releases, reducing deployment friction compared to vulnerabilities requiring custom mitigation.

Risk score, explained

The CVSS v3.1 score of 7.5 (HIGH) reflects: network-based attack surface (AV:N), low attack complexity (AC:L), no privilege requirement (PR:N), no user interaction (UI:N), unavailability impact (A:H), and no confidentiality or integrity compromise. This accurately captures a straightforward remote denial-of-service that any unauthenticated attacker can trigger. The score does not account for organizational factors like rpcx adoption rate or whether services are exposed to the internet, which should inform your internal prioritization.

Frequently asked questions

How can an attacker send a compressed message smaller than the MaxMessageLength check but expand it to gigabytes?

gzip compression can achieve very high compression ratios on repetitive or sparse data. An attacker crafts a message containing highly compressible patterns (e.g., repeated zeros or predictable sequences), compressing it to a few hundred kilobytes or a few megabytes, well under the protocol limit. When the server decompresses it without a size cap, the same pattern expands to gigabytes of heap allocation. This is a known problem in decompression-bomb scenarios across many protocols.

Does this affect rpcx clients, or only servers?

The vulnerability is in the message decoding path that both servers and clients execute. Technically, a malicious server could attack a client. However, the practical threat is to servers and public endpoints, since attackers typically control the client side of the connection. If your rpcx service calls out to untrusted external services, consider that risk as well.

Can network segmentation or firewall rules eliminate this risk?

Network controls reduce exposure but do not eliminate the vulnerability. If rpcx endpoints must be accessible from a broader network or the internet, firewall rules alone are insufficient. Patching is the definitive remediation. Network segmentation is a valuable defense-in-depth control and should be layered with patching, not treated as a substitute.

What if we are not sure which versions of rpcx we are using?

Check your dependency management files (go.mod for Go projects, package manifests for other languages). Run a bill-of-materials scan or software composition analysis tool to identify rpcx and its version. If the version is 1.9.3 or earlier, you are affected. Verify against the official rpcx releases to confirm commit 047aec1 is in your target upgrade version.

This analysis is provided for informational purposes and based on the CVE record and public vulnerability data available as of the publication date. Organizations should verify patch availability and compatibility with their specific rpcx deployments before applying updates. No exploit code or weaponized proof-of-concept is provided herein. If you discover active exploitation or are uncertain about your exposure, consult your vendor or a qualified security professional. SEC.co makes no warranty regarding the completeness or applicability of this guidance to your specific environment. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).