Skip to content

BeamWeaver

v0.1.9 Security

This release includes 4 security fixes for security teams reviewing exposed deployments.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 4 known CVEs

Topics

ai-agents deepagents elixir harness human-in-the-loop langchain
+4 more
langgraph-alternative llm observability distributed-tracing

Affected surfaces

auth rbac rce_ssrf

Summary

AI summary

Fixed multiple critical security vulnerabilities in sandbox file operations, shell policy parsing, output buffering, PII redaction, and various provider adapters.

Full changelog

0.1.9 - 2026-07-04

Fixed

  • Vector-store metadata filters now bind JSON path segments as query
    parameters, preventing metadata filter keys from being interpolated into raw
    Postgres SQL while preserving nested metadata lookup support.
  • Local sandbox file operations now resolve symlinks before containment checks,
    blocking reads, writes, listings, globs, and recursive grep matches that
    would escape the sandbox root through symlinked paths.
  • Shell policy string allow rules now require a command boundary and reject
    unquoted shell chaining or command substitution, so an allowed prefix cannot
    authorize allowed_cmd; malicious_cmd.
  • Local sandbox command execution now streams stdout/stderr into a bounded
    buffer controlled by max_output_bytes and marks oversized output as
    truncated instead of accumulating unbounded command output in memory.
  • Recursive text splitting now rejoins chunks with the separator that actually
    split each level, preserving source whitespace and valid add_start_index
    metadata for word-level splits.
  • OpenAI chat message conversion now deduplicates assistant tool calls by
    request id when the same call is present in both tool_calls and content
    blocks, avoiding duplicate ids in provider requests.
  • Manual graph state updates now compute next tasks through the normal
    scheduler, so conditional and guarded edges route correctly after
    update_state/4.
  • Subagent stream handles now route child values, updates, and errors only to
    the most specific active subagent handle, preventing nested child events from
    leaking onto ancestor handles.
  • Anthropic usage parsing now reports ephemeral 5m/1h prompt-cache writes under
    canonical cache-creation usage, so cost and telemetry accounting no longer
    treat those cache writes as zero.
  • Memory full-text queries now search canonical value and metadata text instead
    of Elixir inspect/1 output, avoiding matches on wrapper field names and
    struct implementation details.
  • Stream mux heartbeats now respect finite stream timeouts, so a hung producer
    cannot keep a live stream open forever by emitting heartbeat events.
  • PII middleware now redacts assistant tool-call arguments and buffers streamed
    text across chunk boundaries, preventing split PII from bypassing streaming
    redaction.
  • Fixed low-severity edge cases in provider and tool adapters: OpenAI nil
    tool-call arguments now encode as {}, OpenAI usage totals are inferred when
    omitted, Z.ai streams keep id-less delta chunks, Moonshot rejects unsupported
    audio/file blocks, file search preserves snippet case and counts filename
    matches, tool defaults apply before validation, stream lifecycle routing
    tolerates payload-only message ids, and ETS cache pruning is serialized.
  • Partial JSON parsing now repairs truncated JSON in a single capped structural
    pass, avoiding superlinear prefix scans on streamed tool-call arguments.
  • Stream/message transforms, Google SSE merging, text-splitter start-index
    tracking, and Z.ai response conversion avoid repeated list appends or
    full-document rescans on streaming hot paths.
  • WeaveScope trace export now disables Req's internal retry loop and logs
    failed uploads with BeamWeaver exporter context, so timeout diagnostics point
    at the trace export path instead of only Req.Steps.

Security Fixes

  • Local sandbox file operations now resolve symlinks before containment checks, blocking path‑escape via symlinked paths.
  • Shell policy string allow rules require command boundaries and reject unquoted chaining or substitution to prevent prefix injection attacks.
  • Sandbox command execution streams stdout/stderr into a bounded buffer (`max_output_bytes`) to avoid memory exhaustion from oversized output.
  • PII middleware redacts assistant tool‑call arguments and buffers streamed text across chunk boundaries, preventing split PII bypass.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track BeamWeaver

Get notified when new releases ship.

Sign up free

About BeamWeaver

All releases →

Related context

Beta — feedback welcome: [email protected]