Skip to content

Warden weekly sweep #495

Description

@github-actions

Warden Scheduled Scan Results

Run: 2026-08-31T07:50:01.539Z
Commit: e6ef59b

Summary

Severity Count
Medium 5
Low 1

Findings

src/benchmarks/claude-ui/preflight-commands.ts

  • NL3-W9X Timeout race condition can falsely report preflight commands as timed out (L66-L82) · medium
    The timeout callback sets timedOut = true unconditionally before checking whether the child process already exited, so commands that finish just before the deadline can resolve with exit code 143 and timedOut: true instead of their actual exit code.

src/benchmarks/claude-ui/simulator-lifecycle.ts

  • EFH-ZLC runLoggedCommand has no subprocess timeout causing indefinite hangs (L268) · medium
    runLoggedCommand has no timeout, so a hung subprocess will block the benchmark suite forever.
  • 3SY-6C9 runLoggedCommand close handler loses command result when logging fails (L311) · medium
    When appendLifecycleLog fails after a command exits, .catch(reject) hides the command result and can leak created simulators.

src/benchmarks/claude-ui/transcript.ts

  • 6MS-BEV Infinite loop in commandPrefixOffsets with empty prefix (L217) · medium
    When prefix is an empty string the while loop never terminates because start is incremented by zero.
  • PZX-7W2 Unvalidated RegExp construction from user-supplied patterns (L135) · medium
    createPatternMatchers compiles strings directly into RegExp without validation or escaping, risking SyntaxError on invalid patterns and ReDoS on malicious regex input.

src/cli/commands/daemon.ts

  • XA8-S47 handleLogs reads entire log file into memory before tailing (L258-L271) · low
    handleLogs loads the full daemon log file with readFileSync before extracting the last N lines. The daemon rotates logs at 10 MB on startup (MAX_LOG_BYTES = 10 * 1024 * 1024 with MAX_LOG_ROTATIONS = 3), which limits the typical active log size, but rotation does not run continuously during a session. A long-running daemon with verbose logging can still accumulate a large active log, and the synchronous full-file read is inefficient even for smaller files because most of the content is immediately discarded by the tail slice.

Generated by Warden

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions