OpenTelemetry eBPF Instrumentation (OBI) Memcached Integer Overflow DoS
A remotely reachable integer overflow in OpenTelemetry eBPF Instrumentation's (OBI) memcached text protocol parser can crash the OBI process, causing a denial of service due to unchecked arithmetic when handling large payload sizes in memcached storage commands.
A denial-of-service vulnerability exists in the memcached text protocol parser within OpenTelemetry eBPF Instrumentation (OBI). The vulnerability resides in the pkg/ebpf/common/memcached_detect_transform.go file, where the parser lacks proper bounds checking when handling the <bytes> field of memcached storage commands (set, add, replace, append, prepend, cas). By sending a crafted memcached request with an extremely large <bytes> value (e.g., math.MaxInt or math.MaxInt-1), an attacker can cause an integer overflow during payload length calculation. This overflow results in a negative payload length being passed to LargeBufferReader.Peek in pkg/internal/largebuf/large_buffer.go, triggering a runtime panic and crashing the OBI process. This vulnerability affects OBI versions 0.7.0 to 0.8.x, allowing a remote attacker to disrupt telemetry collection.
Attack Chain
- Attacker identifies an OBI instance instrumenting memcached traffic.
- Attacker crafts a memcached storage command (e.g.,
set) with a large<bytes>field (close tomath.MaxInt). - Attacker sends the crafted memcached storage command to a service instrumented by the vulnerable OBI instance on port 11211.
- OBI’s memcached request parser (
memcachedCommandBytesFieldinpkg/ebpf/common/memcached_detect_transform.go) receives the crafted command and parses the<bytes>field usingstrconv.Atoi. - OBI calculates the payload length by adding the
<bytes>value to the length of the trailing\r\ndelimiter. - Due to the large
<bytes>value, the addition overflows, resulting in a negativepayloadLen. - The negative
payloadLenis passed toLargeBufferReader.Peekinpkg/internal/largebuf/large_buffer.go. LargeBufferReader.Peekattempts to slice a buffer with the negative length, causing a Go runtime panic and crashing the OBI process.
Impact
Successful exploitation of this vulnerability results in a denial of service (DoS) against the OBI process. This leads to a loss of telemetry data collection for any services being monitored by the affected OBI instance. The attacker only needs to send a crafted memcached storage command to a service that OBI is instrumenting. This vulnerability impacts OBI deployments where the memcached parser is active and the instrumented services are reachable or influenceable by an attacker.
Recommendation
- Deploy the Sigma rule
Detect OpenTelemetry OBI Memcached Integer Overflow Attemptto detect crafted memcached storage commands with extremely large<bytes>values in network traffic. - Monitor OBI process logs and container status for crashes originating from
LargeBufferReader.Peek, as indicated in the overview, to identify potential exploitation attempts. - Consider filtering or sanitizing memcached storage command inputs to prevent excessively large
<bytes>values from reaching instrumented services.
Detection coverage 1
Detect OpenTelemetry OBI Memcached Integer Overflow Attempt
highDetects attempts to exploit the OpenTelemetry OBI memcached integer overflow vulnerability (CVE-2026-45686) by identifying memcached storage commands with abnormally large byte sizes.
Detection queries are available on the platform. Get full rules →