KubeEdge CloudHub uses the viaduct packer to decode messages received from connected peers. The packer reads a 32-bit payload length from the message header and previously allocated a buffer of that size without enforcing an upper bound.
An authenticated peer that can establish a viaduct connection to CloudHub can send a crafted message header containing an excessively large payload length. This may cause CloudHub to allocate a large amount of memory and can result in memory exhaustion, process termination, or denial of service.
A successfully authenticated malicious or compromised edge node may repeatedly send crafted viaduct message headers to increase CloudHub memory consumption.
Depending on available memory and deployment limits, exploitation may cause:
Authentication to the viaduct endpoint is required. This issue does not provide unauthenticated access or direct code execution.
The viaduct packer trusted the payload length encoded in the message header and allocated the payload buffer before validating whether the declared length was within an acceptable range.
The fix introduces a maximum viaduct payload size of 32 MiB.
The updated implementation:
Fixes have been prepared for the following patch releases:
These versions should not be listed as released until the coordinated release process is complete.
Before patched versions are available, operators should:
pkg/viaduct/pkg/packerKubeEdge thanks Sang-Hoon Choi (KoreaSecurity, Sejong University) for responsibly reporting this issue and for coordinating with the KubeEdge maintainers through the security disclosure process.
{
"cwe_ids": [
"CWE-789"
],
"github_reviewed": true,
"github_reviewed_at": "2026-09-22T20:37:01Z",
"nvd_published_at": "2026-09-21T17:17:36Z",
"severity": "MODERATE"
}