A vulnerability in Zebra's JSON-RPC HTTP middleware allows an authenticated RPC client to cause a Zebra node to crash by disconnecting before the request body is fully received. The node treats the failure to read the HTTP request body as an unrecoverable error and aborts the process instead of returning an error response.
Moderate - This is a Denial of Service (DoS) that requires a client capable of passing Zebra's cookie authentication, which is enabled by default.
zebrad: versions from 2.2.0 up to (but not including) 4.3.1zebra-rpc: versions from 1.0.0-beta.45 up to (but not including) 6.0.2Zebra's JSON-RPC HTTP middleware treated a failure to read the incoming HTTP request body as an unrecoverable error, aborting the process rather than returning an error response. A client that disconnected after sending only part of a request body, for example, by resetting the TCP connection mid-transfer, was sufficient to trigger the crash. The vulnerability could be exploited only by authenticated RPC clients. Nodes running the shipped defaults, with RPC bound to localhost and cookie authentication on, were not vulnerable.
Denial of Service
This issue is fixed in Zebra 4.3.1 (crate zebra-rpc 6.0.2).
The fix propagates failures to read the HTTP request body as ordinary error responses, so Zebra now rejects truncated or interrupted requests rather than crashing.
Users should upgrade to Zebra 4.3.1 or later.
If an immediate upgrade is not possible, users should ensure their RPC port is not exposed to untrusted...
6.0.24.3.1Exploitability
AV:NAC:LAT:PPR:HUI:NVulnerable System
VC:NVI:NVA:HSubsequent System
SC:NSI:NSA:H6.9/CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H