Datadog Vector 0.54.0 can buffer or decompress selected HTTP and gRPC ingest bodies before an effective expanded-size boundary is enforced. A remote client accepted by an exposed source can use oversized or highly compressed input to drive memory exhaustion.
The affected paths sit in Vector's source-side request handling, including HTTP source utilities, OpenTelemetry HTTP, Splunk HEC, Vector source handling, and gRPC decompression helpers. The HTTP path accepts request bytes through framework body collection before the source-specific limit can reject the fully materialized body.
Compression handling creates the more direct trust-boundary issue. Helpers used by the HTTP and gRPC ingest paths decode compressed attacker-controlled bytes into memory with no output-size cap tied to the configured request limit. The limit is therefore applied after the allocation boundary that matters for denial of service.
The attacker controls the request body and the compression format accepted by the configured source. Authentication, TLS, and source exposure depend on deployment configuration; the vulnerable boundary is the allocation or decompression step that happens before an effective decoded-size check.
- Enable an affected Vector 0.54.0 ingest source, such as
http_server, Splunk HEC, OpenTelemetry HTTP, or an affected gRPC source, and expose it to a client that can submit events. - Send a request accepted by that source with a compressed body that expands to a much larger payload, or send an oversized body on a path that collects the body before source-level validation.
- Keep the submitted payload syntactically valid enough to reach the body decoding path for that source.
- Monitor the Vector process while the request is handled and observe memory rising with the buffered or decompressed body, not only with the compressed request size.
- Repeat the request or send several in parallel and observe request failures, process unresponsiveness, restarts, or host-level out-of-memory termination when available memory is exhausted.
The observed result is resource consumption before the configured size boundary protects the process. Where an affected ingest source is reachable, a remote client can deny service by forcing Vector to allocate memory for attacker-controlled request bodies or decompressed content. Full process termination depends on host memory, source concurrency, and supervisor restart behavior.