Conversation
|
@claude code review |
|
Claude finished @RafaelPo's task in 2m 55s —— View job Code Review: DoS Audit Report
Overall AssessmentThis is a well-structured, thorough defensive DoS audit. I cross-referenced every finding against the actual source code and the report is remarkably accurate — file paths, line numbers, code behavior descriptions, and vulnerability characterizations all check out. Severity ratings are reasonable. Verification Summary
Issues Found1. DOS-08 rate limiting claim needs clarification — The report states OAuth registration has a rate limit of 10/min/IP. While 2. Consider adding a "Methodology" section — The report jumps straight into findings. A brief methodology section (tools used, scope boundaries, what was/wasn't tested) would strengthen it as an audit artifact. 3. Positive findings section is valuable — The 14 documented security controls already in place (TTLs, SSRF protection, HMAC-signed uploads, GETDEL for single-use tokens, etc.) all verified as accurate. This is useful context for prioritization. Minor Suggestions
VerdictApprove with minor comments. The report is high quality — accurate, well-organized, and actionable. The one factual clarification needed (DOS-08 rate limit enforcement path) is minor. This provides a solid roadmap for hardening the MCP server against application-layer DoS. | |
DOS-03: Remove the 12-second asyncio.sleep from everyrow_progress that held connections open server-side. Polling cadence is now client-driven via retry_after_seconds in the response text. Removes the connection exhaustion vector identified in the audit. DOS-09: Extend BodySizeLimitMiddleware to accept multiple path prefixes and cover both /api/uploads/ and /mcp endpoints. Previously only upload paths were protected, leaving the MCP endpoint with no body size limit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Closing this PR — removing the server-side sleep without adding per-task poll throttling leaves the endpoint unprotected against rapid polling. The A proper fix needs server-side enforcement, e.g. a per-task cooldown key in Redis that rejects progress polls within N seconds of the last one for the same task_id. |
Summary
everyrow-mcp/src/everyrow_mcp/)Key findings
everyrow_progress12s server-side sleep enables connection exhaustion (DOS-03)/api/uploads/, not the MCP endpoint (DOS-09)Test plan
🤖 Generated with Claude Code