Description
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.
Published: 2026-07-08
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

rpcx uses a wire‑protocol decoder that decompresses gzip payloads when the compression flag is set. The decoder relies on util.Unzip with no limit on the decompressed output size, and the only size guard, protocol.MaxMessageLength, is applied to the on‑wire compressed length, not to the inflated size. Consequently an attacker can send a modestly sized gzip message that expands to gigabytes of heap allocation. The resulting out‑of‑memory condition causes the rpcx process to crash or become unresponsive, presenting a classic denial‑of‑service impact. The vulnerability corresponds to CWE‑409 (Unchecked Allocation Size).

Affected Systems

smallnest rpcx versions up to and including 1.9.3 are vulnerable. The fix was applied in commit 047aec18efa7d037105e2b72c36dd2ae05e1acc6, which removes the unchecked decompression. Any deployment running 1.9.3 or earlier and not incorporating that commit remains affected. Deployments that have integrated the commit are no longer vulnerable.

Risk and Exploitability

The CVSS base score of 8.7 classifies the flaw as high severity. The EPSS score is <1 %, indicating a very low probability of exploitation at this time, and the vulnerability is not listed in the CISA KEV catalog. Because decoding occurs in readRequest before any authentication, a single unauthenticated connection can trigger the exploit by sending a small compressed message that inflates to billions of bytes, exhausting available memory and bringing the service offline. An attacker does not need privileged access or network segmentation to succeed; remote disclosure is sufficient to bring a service down.

Generated by OpenCVE AI on August 1, 2026 at 15:44 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade smallnest rpcx to commit 047aec18efa7d037105e2b72c36dd2ae05e1acc6 and restart the service.
  • If an upgrade is not immediately possible, disable gzip compression on the server side or enforce a custom MaxMessageLength or reject messages with the compression flag.
  • Deploy system‑level resource limits such as cgroup memory quotas or Docker memory limits to contain any accidental or malicious memory pressure caused by malformed payloads.

Generated by OpenCVE AI on August 1, 2026 at 15:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 10 Jul 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Smallnest
Smallnest rpcx
Vendors & Products Smallnest
Smallnest rpcx

Thu, 09 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 08 Jul 2026 19:45:00 +0000

Type Values Removed Values Added
Description 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.
Title rpcx - Denial of Service via Gzip Decompression Bomb in Wire Protocol
Weaknesses CWE-409
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-09T13:30:22.468Z

Reserved: 2026-07-07T14:39:14.062Z

Link: CVE-2026-59803

cve-icon Vulnrichment

Updated: 2026-07-09T13:29:51.863Z

cve-icon NVD

Status : Deferred

Published: 2026-07-08T20:16:55.913

Modified: 2026-07-10T18:46:32.250

Link: CVE-2026-59803

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T15:45:04Z

Weaknesses
  • CWE-409

    Improper Handling of Highly Compressed Data (Data Amplification)