Skip to content

security: enforce GlasswallyAgent partial-line buffer cap (STRIDE D-6)#37

Merged
noisyloop merged 1 commit into
mainfrom
claude/fix-glasswally-agent-UVhSV
May 18, 2026
Merged

security: enforce GlasswallyAgent partial-line buffer cap (STRIDE D-6)#37
noisyloop merged 1 commit into
mainfrom
claude/fix-glasswally-agent-UVhSV

Conversation

@noisyloop

Copy link
Copy Markdown
Owner

STRIDE D-6 declared the GlasswallyAgent line buffer "capped", but no cap existed. Glasswally is a separate privileged process; a write that never emits a newline (truncated mid-entry, or a compromised Glasswally) grew lineBuffer by up to MAX_BYTES_PER_TICK every tick, unbounded, exhausting the EverythingOS process memory — a fail-open DoS on a security control.

Add MAX_LINE_BUFFER (1 MB): a partial line exceeding it can never be a valid record (records cap at 64 KB), so it is discarded as unrecoverable and bytes are skipped until the next newline, resuming cleanly at the following record. Complete lines preceding the oversized fragment are still delivered. The discard is audit-logged.

Adds a regression suite proving the attack path is bounded and recovers.

STRIDE D-6 declared the GlasswallyAgent line buffer "capped", but no cap
existed. Glasswally is a separate privileged process; a write that never
emits a newline (truncated mid-entry, or a compromised Glasswally) grew
lineBuffer by up to MAX_BYTES_PER_TICK every tick, unbounded, exhausting
the EverythingOS process memory — a fail-open DoS on a security control.

Add MAX_LINE_BUFFER (1 MB): a partial line exceeding it can never be a
valid record (records cap at 64 KB), so it is discarded as unrecoverable
and bytes are skipped until the next newline, resuming cleanly at the
following record. Complete lines preceding the oversized fragment are
still delivered. The discard is audit-logged.

Adds a regression suite proving the attack path is bounded and recovers.

https://claude.ai/code/session_01ArAvRMiZgCwF5oNj3r94Ap
@noisyloop noisyloop merged commit 3633b60 into main May 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants