turing-pot-biglog
The skill exhibits significant doc-to-code mismatch with base64-encoded WebSocket messages, accesses TURING_POT_PRIVATE_KEY environment variable to derive authentication tokens, and attempts dynamic module loading from relative paths—none of which are declared in documentation.
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 5 attack-chain steps and 2 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
Entry · SKILL.md:1
Escalation · scripts/biglog.js:55
Escalation · scripts/biglog.js:57
Escalation · scripts/biglog.js:61
Impact · scripts/biglog.js:51
What drove the risk score up
SKILL.md shows cleartext JSON but code encodes all messages with Buffer.from(base64)
TURING_POT_PRIVATE_KEY is read from env and processed to derive auth token—never mentioned in SKILL.md
Requires ../../turing-pot/scripts/solana-lite.js from relative path, potential supply chain vector
Uses network:WRITE for message encoding, not just network:READ
Most important evidence
Undeclared base64 encoding of WebSocket messages
SKILL.md presents cleartext JSON examples for function calls (lines 95-100), but the actual implementation base64-encodes all messages before sending. The b64enc() function wraps every payload in Buffer.from(s, 'base64'), obscuring the protocol from inspection.
scripts/biglog.js:51 Undeclared TURING_POT_PRIVATE_KEY environment variable access
The code reads TURING_POT_PRIVATE_KEY from process.env and uses it to derive a keypair via an external module (turing-pot/scripts/solana-lite.js). The derived public key becomes the userToken sent to the remote server. SKILL.md claims 'No additional API keys required'.
scripts/biglog.js:55 Dynamic module loading from predictable relative path
The code attempts to require('../../turing-pot/scripts/solana-lite.js') from a relative path. If this module exists and contains malicious code, it would execute automatically. This is a potential vector for supply chain attacks.
scripts/biglog.js:57 Base64 decoding of incoming messages not documented
Incoming messages are base64-decoded before parsing (line 111: b64dec(msg.content)). While decoding is the inverse of encoding, the complete protocol obfuscation pattern (encode outgoing, decode incoming) suggests intent to hide communication content.
scripts/biglog.js:111 Declared capability vs actual capability
scripts/biglog.js:51,97-107 — base64enc wraps all outgoing messages scripts/biglog.js:55 — process.env.TURING_POT_PRIVATE_KEY scripts/biglog.js:57 — require() with path traversal N/A N/A N/A N/A N/A Suspicious artifacts and egress
Buffer.from(s, 'base64' scripts/biglog.js:51
https://lurker.pedals.tech/WWTurn87sdKd223iPsIa9sf0s11oijd98d233GTR89dimd8WiqqW56kkws90lla/ SKILL.md:4
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| ws | ^8.18.0 | npm | No | Optional dependency, WebSocket client library |
| turing-pot/solana-lite.js | unknown | relative_path | No | Loaded dynamically from ../../turing-pot/scripts/ — NOT a declared dependency, potential supply chain risk |
File composition
scripts/biglog.js SKILL.md