Skip to content

Unbounded log_tail_lines #28

@pimlock

Description

@pimlock

Summary

WatchSandbox accepts a log_tail_lines field from the client. If it is 0, the server uses 200; otherwise it uses the client value as-is. There is no upper bound. A client can send a very large value (e.g. u32::MAX) and cause the server to allocate and return a huge tail, contributing to memory use and DoS.

Source Code

  • crates/navigator-server/src/grpc.rs: lines 169-173 set log_tail = req.log_tail_lines (or 200 when 0). Line 242 calls state.tracing_log_bus.tail(&sandbox_id, log_tail as usize). No min(log_tail, MAX_TAIL) or similar cap is applied.

Originally by @drew on 2026-02-19T09:01:00.083-08:00

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions