Skip to content

chernistry/bernstein

v3.4.1 Security

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

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

Topics

agent-orchestrator agentic-ai ai-agents aider air-gap audit-trail
+14 more
claude-code cli-tool codex-cli coding-agent deterministic-replay deterministic-scheduler hmac-audit mcp-server model-context-protocol multi-agent parallel-worktrees provenance python reproducibility

Affected surfaces

auth rce_ssrf

ReleasePort's take

Moderate signal
editorial:auto 12d

The release hardens SSH secret handling by storing only vault provider IDs and prevents directory traversal in run journal path computation.

Why it matters: Security improvements: SSH secrets now store only vault IDs (never credential values) and run journal paths are hardened against traversal outside the runs root. Address these changes before deploying new services or updating existing ones.

Summary

AI summary

Updates Security hardening, Windows parity coverage, and Static-analysis cleanup across a mixed release.

Changes in this release

Security Critical

SSH secret handling now stores only vault provider IDs, never credential values.

SSH secret handling now stores only vault provider IDs, never credential values.

Source: llm_adapter@2026-07-15

Confidence: high

Security High

Run journal path hardening prevents directory traversal outside the runs root.

Run journal path hardening prevents directory traversal outside the runs root.

Source: llm_adapter@2026-07-15

Confidence: high

Feature Medium

Added self‑promoting lane gate, mocked stop/restart with worktree isolation on Windows.

Added self‑promoting lane gate, mocked stop/restart with worktree isolation on Windows.

Source: llm_adapter@2026-07-15

Confidence: high

Bugfix Low

Reduced skipped Windows test cases, improving parity coverage.

Reduced skipped Windows test cases, improving parity coverage.

Source: llm_adapter@2026-07-15

Confidence: high

Refactor Low

Removed redundant idioms in skills conformance command and reworded detached‑run log line.

Removed redundant idioms in skills conformance command and reworded detached‑run log line.

Source: llm_adapter@2026-07-15

Confidence: high

Full changelog

v3.4.1

Released 2026-07-12.

A patch release on top of v3.4.0. It completes the follow-up work that landed
after the v3.4.0 tag: Windows parity coverage and a security hardening and
static-analysis cleanup pass. There are no breaking changes and no
configuration migration is required.

Security hardening

  • ssh secret handling for the detached run service now keeps only vault
    provider ids in its backend descriptor. The connection sidecar that a
    supervisor rebuilds on restart names which vault provider supplies which
    remote environment variable and never carries a secret value. Resolved
    credentials continue to flow through the vault path into the remote process
    environment only, and are never written to the sidecar, the work ledger, the
    receipts, or the logs. The failure log now records the provider id and the
    exception type, never the credential payload.
  • Run journal path hardening. The per-run event journal derives its on-disk
    path only from a run id that has passed an anchored allowlist, an explicit
    rejection of the current and parent directory, and a realpath containment
    check against the runs root. A run id can no longer steer the journal file
    outside the runs directory.

Static-analysis cleanup

  • Removed redundant idioms in the skills conformance command and reworded a
    detached-run log line, clearing the corresponding scanner findings.

Windows parity coverage

  • Self-promoting lane gate, mocked stop and restart with worktree isolation,
    and a reduction in skipped Windows cases, closing gaps ahead of first-class
    Windows support (#2448).

Upgrading

pipx upgrade bernstein     # or: uv tool upgrade bernstein

No configuration migration is required. Every capability available in v3.4.0
is unchanged.

Security Fixes

  • SSH secret handling for the detached run service now stores only vault provider IDs; connection sidecar no longer carries secret values, reducing credential exposure.
  • Run journal path hardening prevents run IDs from escaping the runs directory via realpath containment checks and explicit parent/current directory rejection.

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 chernistry/bernstein

Get notified when new releases ship.

Sign up free

About chernistry/bernstein

Deterministic multi-agent orchestrator for 18 CLI coding agents (Claude Code, Codex, Cursor, Aider, Gemini CLI, OpenAI Agents SDK, and more). MCP server mode (stdio + HTTP/SSE) exposes the orchestrator to any MCP client. Git worktree isolation per agent, HMAC-chained audit trail, cost-aware model routing via contextual bandit. ~11K monthly PyPI downloads, Apache 2.0.

All releases →

Related context

Earlier breaking changes

  • v3.7.1 `bernstein approve` and `bernstein reject` now enforce identifier regex `[A-Za-z0-9._-]{1,64}`.
  • v3.7.1 Tampered mission ledger reports as unverified rather than not-found.
  • v3.7.1 `mission define` now refuses phases without gate tasks.
  • v3.5.0 MCP client, transport, and gateway become stateless; calls carry content‑derived trace IDs in _meta.

Beta — feedback welcome: [email protected]