Skip to content

chore(review): small hardening items in MCP guard, RPC client, sandbox runner, CSV export, file launch #1565

Closed

Description

@ZhuchkaTriplesix

Small findings from a review of areas with no open issues. Split into separate issues if any grows.

  • MCP SQL guard (lib/core/mcp/mcp_sql_guard.dart:40-49): _forbiddenFunctions lacks QUERY_TO_XML* / CURSOR_TO_XML / TABLE_TO_XML*, PG_ADVISORY_*, PG_SLEEP, LO_*, NEXTVAL / SETVAL. No bypass found (the read-only session is the second layer), this is defence in depth. _explainForbidden includes REPLACE, which refuses EXPLAIN SELECT REPLACE(...) (false positive).
  • McpSocketHost (lib/core/mcp/mcp_socket_host.dart:90-95): a line before authentication has no length limit and the number of unauthenticated sockets is unbounded (loopback only, 5 s handshake).
  • JsonRpcStdioClient.sendRequest (lib/core/extensions/rpc/json_rpc_stdio_client.dart:86-95): _stdin.writeln is outside the try; on a closed sink it throws synchronously and leaves _pending[id] behind.
  • SandboxProcessRunner.start (lib/core/extensions/sandbox/sandbox_process_runner.dart:123-145): the scratch directory is created before SandboxLaunchCommand.build; an exception there leaks it.
  • CSV export (lib/core/csv/result_grid_csv.dart, save_result_grid_csv.dart): no UTF-8 BOM (Excel misreads Cyrillic), no formula-injection guard for cells starting with = + - @, \n instead of CRLF while documented as RFC 4180, the write error cause is swallowed.
  • FileLaunchService (lib/core/platform/file_launch_service.dart): hasPendingTarget duplicates hasPendingTargets; path comparison in resolveOrRegisterSqliteConnection is case-sensitive (duplicate connections on Windows/macOS).

Activity

  1. added
    enhancementNew feature or request
    stabilityTheme parser epic label: stability
    coreCore library logic and services
    P3Low priority / Polish & Enhancements
    on Oct 13, 2026
  2. ZhuchkaTriplesix commented on Oct 25, 2026

    @ZhuchkaTriplesix
    MemberAuthor

    Fixed on dev by 4465669: fix: MCP guard, socket host, RPC client, sandbox runner, file launch hardening (#1565) (#1679). It reaches main with the next dev to main merge (closed after checking the code and its tests).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low priority / Polish & EnhancementscoreCore library logic and servicesenhancementNew feature or requeststabilityTheme parser epic label: stability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions