Summary
Any client that can reach memnet serve and knows a live session_id can read and mutate that session. There is still no session_token, serve-level auth, or session ACL enforcement on the wire.
Partial mitigation (v0.3.6, 3c537c7)
- Request/response frame cap (default 4 MiB,
MEMNET_SERVE_MAX_FRAME_BYTES)
- Non-loopback bind refused unless
MEMNET_SERVE_ALLOW_REMOTE=1 (warns that token/ACL are absent)
- Framed protocol errors instead of silent drop on oversize/bad frames
These address accidental LAN exposure and unbounded-frame DoS; they do not authenticate callers or restrict session join.
Design
See docs/grammar/memnet-security-multi-agent.md (landed ecf6849): session modes (private / shared / open), roles, and first-class session token; optional future serve token at transport layer.
Suggested direction
Implement session ACL + token gate on session_open / mutating commands per design doc; keep in-process first as the default trust boundary for single-agent use.
Related
Doctrine: README transport table; AGENTS.md points to security design doc.
Summary
Any client that can reach
memnet serveand knows a livesession_idcan read and mutate that session. There is still nosession_token, serve-level auth, or session ACL enforcement on the wire.Partial mitigation (v0.3.6,
3c537c7)MEMNET_SERVE_MAX_FRAME_BYTES)MEMNET_SERVE_ALLOW_REMOTE=1(warns that token/ACL are absent)These address accidental LAN exposure and unbounded-frame DoS; they do not authenticate callers or restrict session join.
Design
See
docs/grammar/memnet-security-multi-agent.md(landedecf6849): session modes (private/shared/open), roles, and first-class session token; optional future serve token at transport layer.Suggested direction
Implement session ACL + token gate on
session_open/ mutating commands per design doc; keep in-process first as the default trust boundary for single-agent use.Related
Doctrine: README transport table;
AGENTS.mdpoints to security design doc.