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.
为什么得出这个结论
3/4 个维度触发发现 2 项声明之外的能力或越权行为。
提取到 1 个高危 IOC 或外联信号。
报告包含 5 步攻击链,另有 2 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · scripts/biglog.js:55
权限提升 · scripts/biglog.js:57
权限提升 · scripts/biglog.js:61
最终危害 · scripts/biglog.js:51
风险分是怎么被拉高的
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
最关键的证据
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 声明能力 vs 实际能力
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 可疑产物与外联
Buffer.from(s, 'base64' scripts/biglog.js:51
https://lurker.pedals.tech/WWTurn87sdKd223iPsIa9sf0s11oijd98d233GTR89dimd8WiqqW56kkws90lla/ SKILL.md:4
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| ws | ^8.18.0 | npm | 否 | Optional dependency, WebSocket client library |
| turing-pot/solana-lite.js | unknown | relative_path | 否 | Loaded dynamically from ../../turing-pot/scripts/ — NOT a declared dependency, potential supply chain risk |
文件构成
scripts/biglog.js SKILL.md