KubeEdge: Unbounded allocation in viaduct packer enables authenticated remote DoS against CloudHub
## Summary 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. ## Impact 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: * Increased CloudHub memory usage * Out-of-memory termination * CloudHub restart loops * Temporary disruption of cloud-edge communication Authentication to the viaduct endpoint is required. This issue does not provide unauthenticated access or direct code execution. ## Root cause 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. ## Fix The fix introduces a maximum viaduct payload size of 32 MiB. The updated implementation: * Rejects oversized payload lengths in the reader before memory allocation * Enforces the same maximum size in the writer * Adds regression tests
GHSA-gfw4-49f9-cp25
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:GHSA-gfw4-49f9-cp25
github.com/kubeedge/kubeedge
Source reference: /affected/0/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 1.21.2
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
github.com/kubeedge/kubeedge
Source reference: /affected/1/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 1.22.2
Source reference:
/affected/1/ranges - Prerequisites
- Not stated in this record
github.com/kubeedge/kubeedge
Source reference: /affected/2/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 1.23.1
Source reference:
/affected/2/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "1.0.0"
},
{
"fixed": "1.21.2"
}
]
}
],
"package": {
"name": "github.com/kubeedge/kubeedge",
"purl": "pkg:golang/github.com/kubeedge/kubeedge",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-gfw4-49f9-cp25/GHSA-gfw4-49f9-cp25.json"
}
},
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "1.22.0"
},
{
"fixed": "1.22.2"
}
]
}
],
"package": {
"name": "github.com/kubeedge/kubeedge",
"purl": "pkg:golang/github.com/kubeedge/kubeedge",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-gfw4-49f9-cp25/GHSA-gfw4-49f9-cp25.json"
}
},
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "1.23.0"
},
{
"fixed": "1.23.1"
}
]
}
],
"package": {
"name": "github.com/kubeedge/kubeedge",
"purl": "pkg:golang/github.com/kubeedge/kubeedge",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-gfw4-49f9-cp25/GHSA-gfw4-49f9-cp25.json"
}
}
]- Related CVEs
- CVE-2026-62370
Source reference:
/aliases
Publisher severity
No explicit severity was provided.
- Event
- #63936 · Revision 1
- Added to Heist Feed
- Publisher date