This release includes 1 security fix for security teams reviewing exposed deployments.
Published 2mo
MCP Developer Tools
✓ No known CVEs patched
This release patches 1 known CVE
Topics
ai-coding
claude
claude-code
code-indexing
code-search
copilot
+10 more
cursor
developer-tools
gemini
gemini-cli
mcp
mcp-server
sqlite
tree-sitter
vscode
windsurf
Affected surfaces
rce_ssrf
Summary
AI summaryFixed command injection vulnerability in Linux screenshot tools.
Full changelog
What's New
Added
aidex_global_guideline— Persistent key-value store for AI guidelines and coding conventions. Store named instructions like"review"→ review checklist,"release-prep"→ release steps. Actions:set,get,list,delete. Works without priorglobal_init.- Viewer file size limit:
getFileContent()now refuses files larger than 1 MB — prevents browser from freezing on large binary or generated files
Fixed
- Command injection in Linux screenshot tools: All
execSynccalls with shell string interpolation replaced withexecFileSyncusing argument arrays - Global query cache grows unbounded: Cache entries evicted on write when they exceed the 5-minute TTL — prevents memory leak in long-running sessions
- Viewer race condition on file change:
pendingChangesset is now snapshotted and cleared before processing - Viewer buildTree() N+1 queries: Correlated subqueries replaced with
LEFT JOIN— single query instead of one subquery per file - WebSocket unknown message type: Viewer now sends an error response for unrecognized message types
- Viewer taskId not validated:
updateTaskStatusnow checksNumber.isInteger(taskId)before processing - Viewer mode not whitelisted:
getTreemessage mode constrained to'code' | 'all' getProjects()SQL injection via tag/namePattern:escapeLikeTerm()now applied to both filter parameters- Silent fails in viewer and global DB:
catch {}blocks now log errors viaconsole.error - Git status refresh on every file event: Added 5-second minimum interval between git status refreshes
- Global query cache not invalidated after init/update:
aidex_initandaidex_updatenow callinvalidateGlobalCache()
Refactored
screenshot/shared.ts: New module with centralizedhasTool()andrunPowerShell()— both useexecFileSync(no shell)normalizePath(): Private duplicates removed — both now import fromcommands/shared.tsescapeLikeTerm(): Exported fromcommands/shared.tsand used consistently across all LIKE queries- macOS sips output parsing: Replaced shell pipe with regex on direct
sipsoutput
Security Fixes
- Replaced all `execSync` calls with shell string interpolation in Linux screenshot tools by using `execFileSync` and argument arrays — fixes command injection vulnerability
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About CSCSoftware/AiDex
Persistent code index MCP server using Tree-sitter for fast, precise code search. Replaces grep with ~50 token responses instead of 2000+. Supports 11 languages including C#, TypeScript, Python, Rust, and Go.
Related context
Beta — feedback welcome: [email protected]