Found during the safe-bash deep pentest (v3) as an adjacent-scope spot check (MCP transport perimeter carries the risk since packages/safe-bash-mcp was deleted). Code-inspection only, NOT execution-verified — flagged for re-audit.
Severity: Medium (provisional) — threat (d): unbounded concurrent tool calls per HTTP MCP session
Summary
v2 finding M9 (unbounded concurrency) is partially fixed: the stdio transport now caps pending messages (maxPendingStdioMessages ?? 128, server.ts:130/:796), but the HTTP transport's maxConcurrentToolCalls still defaults to undefined (http-transport.ts:181-185) — unbounded concurrent tool calls per session. Also not found: the stdio line-length cap (v1 #10). Related v2 findings verified fixed by inspection: M8 (maxSessions ?? 128, maxSessionsPerSubject ?? 16, sessionTtlMs ?? 15min, http-transport.ts:167-171) and H18 (StdioOutput with maxStdioOutputBytes ?? 1 MiB, server.ts:129, stdio-output.ts:17).
Location
packages/tiny-http-mcp-server/src/http-transport.ts:181-185 — maxConcurrentToolCalls defaults to undefined
Suggested fix
Default maxConcurrentToolCalls to a finite value (e.g. 8–16) consistent with the stdio cap; add the stdio line-length cap. Then execution-verify with a concurrent-calls PoC.
Status: v2-M9 STILL OPEN (HTTP side), inspection-only — needs executed re-audit
Found during the safe-bash deep pentest (v3) as an adjacent-scope spot check (MCP transport perimeter carries the risk since
packages/safe-bash-mcpwas deleted). Code-inspection only, NOT execution-verified — flagged for re-audit.Severity: Medium (provisional) — threat (d): unbounded concurrent tool calls per HTTP MCP session
Summary
v2 finding M9 (unbounded concurrency) is partially fixed: the stdio transport now caps pending messages (
maxPendingStdioMessages ?? 128,server.ts:130/:796), but the HTTP transport'smaxConcurrentToolCallsstill defaults toundefined(http-transport.ts:181-185) — unbounded concurrent tool calls per session. Also not found: the stdio line-length cap (v1 #10). Related v2 findings verified fixed by inspection: M8 (maxSessions ?? 128,maxSessionsPerSubject ?? 16,sessionTtlMs ?? 15min,http-transport.ts:167-171) and H18 (StdioOutputwithmaxStdioOutputBytes ?? 1 MiB,server.ts:129,stdio-output.ts:17).Location
packages/tiny-http-mcp-server/src/http-transport.ts:181-185—maxConcurrentToolCallsdefaults toundefinedSuggested fix
Default
maxConcurrentToolCallsto a finite value (e.g. 8–16) consistent with the stdio cap; add the stdio line-length cap. Then execution-verify with a concurrent-calls PoC.Status: v2-M9 STILL OPEN (HTTP side), inspection-only — needs executed re-audit