sql_audit
The skill contains hardcoded credentials and undeclared external network communication to a static IP, but implements legitimate SQL audit functionality without evidence of malicious data exfiltration.
A default JWT authentication token is hardcoded in _get_gemini_config() function. This token appears to contain base64-encoded user credentials (admin user). If this token is a real credential, it should be stored in environment variables only.
sql_audit.py:657 Why this conclusion was reached
3/4 dimensions flagged2 undeclared or violating capabilities were inferred.
1 high-risk artifacts or egress signals were extracted.
The report includes 0 attack-chain steps and 2 severe findings.
3 dependency or supply-chain issues need attention.
What drove the risk score up
47.77.199.56 hardcoded as default Gemini API endpoint in _get_gemini_config()
_default_token hardcoded in sql_audit.py:657-666, contains base64-encoded credential data
SKILL.md does not mention external API calls or the hardcoded IP fallback
index.js spawns Python subprocess, but documented as expected behavior
Most important evidence
Hardcoded JWT token in source code
A default JWT authentication token is hardcoded in _get_gemini_config() function. This token appears to contain base64-encoded user credentials (admin user). If this token is a real credential, it should be stored in environment variables only.
sql_audit.py:657 Undeclared external IP address for API calls
The skill makes HTTP requests to a hardcoded IP address (47.77.199.56) for Gemini API calls, but this is not mentioned in SKILL.md. Users cannot verify where their data is being sent.
sql_audit.py:649 Undeclared shell subprocess execution
index.js uses Node.js spawn() to invoke Python interpreter, which is a form of shell execution. While this is common for skill runners, it is not declared in SKILL.md.
index.js:98 Declared capability vs actual capability
SKILL.md: Reads sql_output.json, writes audit_output.json sql_audit.py:649 — undeclared external HTTP calls to 47.77.199.56 index.js:spawn() spawns Python subprocess Executes real SQL on StarRocks, returns results Suspicious artifacts and egress
47.77.199.56 sql_audit.py:649
http://47.77.199.56/api/v1beta sql_audit.py:649
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| httpx | unpinned | pip | No | No version pinning |
| pymysql | unpinned | pip | No | No version pinning |
| python-dotenv | unpinned | pip | No | No version pinning |
File composition
sql_audit.py index.js