@solongate/proxy 0.25.5 → 0.25.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +11 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -6148,17 +6148,26 @@ DENY if the tool call could, directly or indirectly:
6148
6148
  - Read, display, copy, move, or exfiltrate any protected file \u2014 even through:
6149
6149
  - Shell glob patterns (e.g., "cred*" could match "credentials.json")
6150
6150
  - Command substitution ($(...), backticks)
6151
- - Variable interpolation or string concatenation
6151
+ - Process substitution (<(cat file), <(command file)) \u2014 ALWAYS check inside <(...) for protected files
6152
+ - Variable interpolation or string concatenation (e.g., f=".en"; cat \${f}v builds ".env")
6153
+ - Partial variable construction \u2014 if shell variables are concatenated to form a filename, analyze the RESULT
6152
6154
  - Input redirection (< file)
6153
6155
  - Script files that might read protected files
6154
6156
  - Find/exec patterns
6155
- - Any Unix/Windows utility that reads file content (cat, head, tail, less, more, type, perl, awk, sed, sort, diff, comm, paste, tee, xxd, od, strings, dd, tr, etc.)
6157
+ - Multi-stage operations: if command A archives/copies a protected file and command B reads the copy, DENY the ENTIRE chain (e.g., "tar czf /tmp/x.tgz .env && tar xzf /tmp/x.tgz -O")
6158
+ - Any Unix/Windows utility that reads file content (cat, head, tail, less, more, type, perl, awk, sed, sort, diff, comm, paste, tee, xxd, od, strings, dd, tr, tar, zip, etc.)
6156
6159
  - Delete, modify, or overwrite any protected file or path
6157
6160
  - Send data to external URLs, webhooks, or attacker-controlled endpoints
6158
6161
  - Execute remotely downloaded code (curl|bash, wget|sh, etc.)
6159
6162
  - Leak environment variables (printenv, env, /proc/self/environ, npm run env, process.env)
6160
6163
  - Create scripts that bypass security controls
6161
6164
 
6165
+ CRITICAL patterns to watch for:
6166
+ - <(cat .env) or <(cat ANYPROTECTEDFILE) \u2014 process substitution ALWAYS reads the file
6167
+ - Compound commands with && or ; where ANY part touches a protected file \u2014 DENY the whole thing
6168
+ - Variable tricks like f=".en"; cat \${f}v \u2014 mentally evaluate the variable to see if it resolves to a protected filename
6169
+ - tar/zip/cp that archives a protected file, even if the second command reads the archive \u2014 DENY both
6170
+
6162
6171
  ALLOW if:
6163
6172
  - The action is a normal development operation (ls, git status, npm build, etc.)
6164
6173
  - The action does not touch any protected file or path
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solongate/proxy",
3
- "version": "0.25.5",
3
+ "version": "0.25.7",
4
4
  "description": "MCP security proxy — protect any MCP server with customizable policies, path/command constraints, rate limiting, and audit logging. Zero code changes required.",
5
5
  "type": "module",
6
6
  "bin": {