Skip to content

markmhendrickson/neotoma

v0.11.1 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 23d MCP Developer Tools
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Topics

agent-infrastructure agent-memory ai-agents deterministic-state entity-resolution event-sourcing
+3 more
mcp privacy-first provenance

ReleasePort's take

Light signal
editorial:auto 13d

Release v0.11.1 patches two security regressions: it fixes an auth bypass via reverse‑proxy loopback and corrects misclassification of proxy requests as local.

Why it matters: Patch immediately to prevent public traffic from bypassing inspector/API authentication and being treated as the production user; adopt NEOTOMA_TRUST_PROD_LOOPBACK=1 if needed.

Summary

AI summary

Fixes security regression that allowed public reverse‑proxy traffic to bypass auth and be treated as the local production user.

Changes in this release

Security High

Fixes auth bypass when reverse‑proxy traffic on loopback is treated as local development

Fixes auth bypass when reverse‑proxy traffic on loopback is treated as local development

Source: granite4.1:30b@2026-05-24-audit

Confidence: low

Security Medium

Root landing mode no longer misclassifies reverse-proxy requests as local by default

Root landing mode no longer misclassifies reverse-proxy requests as local by default

Source: llm_adapter@2026-05-21

Confidence: high

Security Medium

Production inspector/API auth bypass via reverse-proxy loopback now fixed with X-Forwarded-For checking

Production inspector/API auth bypass via reverse-proxy loopback now fixed with X-Forwarded-For checking

Source: llm_adapter@2026-05-21

Confidence: low

Feature Medium

NEOTOMA_TRUST_PROD_LOOPBACK=1 environment variable allows operators to trust production loopback requests

NEOTOMA_TRUST_PROD_LOOPBACK=1 environment variable allows operators to trust production loopback requests

Source: llm_adapter@2026-05-21

Confidence: low

Feature Low

Adds NEOTOMA_TRUST_PROD_LOOPBACK=1 env var to optionally trust production loopback traffic

Adds NEOTOMA_TRUST_PROD_LOOPBACK=1 env var to optionally trust production loopback traffic

Source: granite4.1:30b@2026-05-24-audit

Confidence: low

Refactor Low

Introduces helper logic for loopback detection, forwarded‑hop parsing, and production checks in runtime paths

Introduces helper logic for loopback detection, forwarded‑hop parsing, and production checks in runtime paths

Source: granite4.1:30b@2026-05-24-audit

Confidence: low

Other Low

Adds regression tests for forwarded public clients, production loopback rejection, and landing‑mode parity

Adds regression tests for forwarded public clients, production loopback rejection, and landing‑mode parity

Source: granite4.1:30b@2026-05-24-audit

Confidence: low

Full changelog

Install

npm install -g [email protected]

| | |
|:--|:--|
| npm | https://www.npmjs.com/package/neotoma/v/0.11.1 |
| Compare | v0.11.0v0.11.1view diff |

v0.11.1 is a minimal security hotfix that closes the hosted Inspector/API auth bypass caused by production reverse-proxy loopback traffic being treated as local development traffic.

Highlights

  • Close the production auth bypass behind reverse proxies. src/actions.ts now checks X-Forwarded-For and fails closed in production instead of trusting loopback sockets by default.
  • Keep root landing behavior aligned with auth behavior. src/services/root_landing/index.ts now uses the same production-safe local-request classification so reverse-proxy traffic no longer falls into the wrong landing mode.
  • Ship focused regression coverage for the exploit path. The hotfix adds targeted tests for forwarded public clients, production loopback rejection, and landing-mode parity.

What changed for npm package users

CLI (neotoma, neotoma api start, …)

  • No CLI surface changes are included in this hotfix.

Runtime / data layer

  • Production local-request detection no longer trusts loopback sockets by default when the request is arriving through a reverse proxy.
  • If X-Forwarded-For is present, every forwarded hop must also be loopback before the request is treated as local.
  • Production operators can still opt into trusting loopback-only production traffic with NEOTOMA_TRUST_PROD_LOOPBACK=1, but the default now fails closed.

Shipped artifacts

  • Runtime code changed in src/actions.ts and src/services/root_landing/index.ts.
  • Regression coverage changed in tests/integration/tunnel_auth.test.ts, tests/integration/root_landing.test.ts, and tests/unit/security_hardening.test.ts.

API surface & contracts

  • No OpenAPI path or schema changes are included in this hotfix.
  • Protected-route behavior changes operationally: unauthenticated public traffic that previously slipped through the local-dev shortcut is now rejected.

Behavior changes

  • Hosted reverse-proxy traffic without bearer auth is no longer treated as the local production user.
  • Production loopback requests now default to remote/untrusted behavior unless explicitly trusted.
  • Root landing mode no longer classifies production reverse-proxy requests as local by default.

Agent-facing instruction changes

  • No agent-instruction changes ship in this hotfix.

Plugin / hooks / SDK changes

  • No plugin, hook, or SDK changes ship in this hotfix.

Security hardening

  • The local-development auth shortcut is now constrained so a public client cannot inherit it just because the app server sees a loopback socket from a reverse proxy.
  • The root landing page mirrors the same hardening so deployment mode detection stays consistent with auth boundaries.

Docs site & CI / tooling

  • No docs-site, CI workflow, or tooling changes ship in this hotfix.

Internal changes

  • Added helper logic for loopback-address detection, forwarded-hop parsing, and production-environment checks in the affected runtime paths.

Fixes

  • Fixed a security regression where public hosted Inspector/API traffic could be resolved as the local production user when a reverse proxy forwarded the request over a loopback socket.

Tests and validation

  • npx vitest run tests/integration/tunnel_auth.test.ts
  • npx vitest run tests/integration/root_landing.test.ts
  • npx vitest run tests/unit/security_hardening.test.ts
  • npm run build:server
  • Post-deploy curl probes against /me and /inspector/ are required before marking the rollout complete.

Execute note

  • This preview is rendered from hotfix/v0.11.1-inspector-auth-bypass after the hotfix commit ff80d0ea1. Release execution still needs the version bump commit, final tag, GitHub Release, npm publish, deployment, and post-deploy protected-route probes.

Breaking changes

No breaking changes.


Commits (v0.11.0v0.11.1)

  • df63d59 8 chore(release): bump version to v0.11.1
  • 56bd08f e docs(release): finalize v0.11.1 preview notes
  • ff80d0e 1 fix(auth): prepare v0.11.1 inspector hotfix

Full compare: v0.11.0...v0.11.1

Security Fixes

  • Fixed auth bypass where public hosted Inspector/API traffic could be resolved as the local production user when forwarded over a loopback socket via reverse proxy.

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 markmhendrickson/neotoma

Get notified when new releases ship.

Sign up free

About markmhendrickson/neotoma

Deterministic state layer for AI agents. Stores versioned entities (contacts, tasks, transactions, decisions) with immutable observations, full provenance, and schema-first extraction. Local-first SQLite, cross-client memory across Claude, Cursor, ChatGPT, and OpenClaw. Website

All releases →

Related context

Earlier breaking changes

  • v0.12.1 Inspector build prepublish now exits non-zero if inspector submodule is missing, breaking ad-hoc npm pack runs without init.
  • v0.12.0 Access policy source precedence: env > SchemaMetadata.guest_access_policy > config
  • v0.12.0 Legacy feedback subsystem completely removed; issues subsystem is replacement
  • v0.12.0 MCP submit_issue requires reporter_git_sha or reporter_app_version

Beta — feedback welcome: [email protected]