Back to skill

Security audit

JSON Query Tool

Security checks for vulnerabilities and agentic risk

Overview

This is a simple local JSON-query helper with some packaging and documentation rough edges, but no evidence of hidden, persistent, destructive, or exfiltrating behavior.

Install only if you are comfortable with a local Python CLI reading JSON files you explicitly point it at. Expect some packaging friction because the documented command names do not fully match the shipped files, and review the Chinese documentation or translate it before use if needed.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The title and all user-facing documentation are written exclusively in Chinese, with no indication that other languages are supported or that the locale restriction is optional. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation unless the constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · test_jsonq.py (reported line 342)May include surrounding context.

python
def test_cli_basic_query(self):
        import subprocess
        result = subprocess.run(
            ['python3', 'jsonq', self.temp_file.name, 'users[0].name'],
            capture_output=True,
            text=True

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · test_jsonq.py (reported line 352)May include surrounding context.

python
def test_cli_invalid_file(self):
        import subprocess
        result = subprocess.run(
            ['python3', 'jsonq', 'nonexistent.json', 'name'],
            capture_output=True,
            text=True

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · test_jsonq.py (reported line 366)May include surrounding context.

python
bad_file.write('not valid json')
        bad_file.close()
        
        result = subprocess.run(
            ['python3', 'jsonq', bad_file.name, 'name'],
            capture_output=True,
            text=True

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The module-level documentation states '50+ test cases', but the visible test methods in this file appear to total fewer than 50. This is an active documentation mismatch about what the file contains, which can mislead reviewers about the implemented test scope.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

With no manifest available, the skill's purpose is unknown, so launching external processes is not justified by any declared scope. The test code invokes python3 jsonq via subprocess.run, which adds execution capability beyond simple in-process unit testing behavior.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.