chore(review): small hardening items in MCP guard, RPC client, sandbox runner, CSV export, file launch
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start with the listed files: lib/core/mcp/mcp_sql_guard.dart, lib/core/mcp/mcp_socket_host.dart, lib/core/extensions/rpc/json_rpc_stdio_client.dart, lib/core/extensions/sandbox/sandbox_process_runner.dart, the CSV export files, and lib/core/platform/file_launch_service.dart. Read each relevant function and its existing tests, then choose one finding to address; the issue suggests splitting larger items. Done means the chosen behavior is fixed and covered by a focused test.
Written by the indexing model from the issue text.
Description
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):_forbiddenFunctionslacksQUERY_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._explainForbiddenincludesREPLACE, which refusesEXPLAIN 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.writelnis outside thetry; 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 beforeSandboxLaunchCommand.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= + - @,\ninstead of CRLF while documented as RFC 4180, the write error cause is swallowed. - FileLaunchService (
lib/core/platform/file_launch_service.dart):hasPendingTargetduplicateshasPendingTargets; path comparison inresolveOrRegisterSqliteConnectionis case-sensitive (duplicate connections on Windows/macOS).
- Dominant language
- Dart
- Stars
- 23
- Forks
- 1
- Avg merge
- 45m
- Merged PRs (30d)
- 529
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from QueryaHub/Querya-Desktop
-
bug P3 ux
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
QueryaHub/Querya-Desktop#1837 ·
Maintainers usually reply within 1 day
-
bug mysql P3
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
QueryaHub/Querya-Desktop#1823 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
QueryaHub/Querya-Desktop#1777 ·
Maintainers usually reply within 1 day
-
enhancement ui
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
QueryaHub/Querya-Desktop#1689 ·
Maintainers usually reply within 1 day
-
ui(dialogs): make destructive query and DML preview dialogs adaptive and prevent table name overflowOpenbug frontend
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
QueryaHub/Querya-Desktop#1642 ·
Maintainers usually reply within 1 day
All issues in QueryaHub/Querya-Desktop
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
fossasia/badgemagic-app#2016 ·
Maintainers usually reply within 1 day
-
direct-code
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
aaronified/fluenough#849 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PATILYASHH/XPENC#179 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
AppFlowy-IO/AppFlowy#9094 ·