T09 · Insecure Skill Coding Practices
- Location
scripts/maxianer-call.mjs:13- Finding
Plaintext Transmission of Sensitive Personal Data and API Credentials
- Content
View full analysis
Vulnerability Details
File Location:
scripts/maxianer-call.mjs:13-14, 48-55
Vulnerability Type: Sensitive data and bearer-token transmission over plaintext HTTP
Risk Level: HighVulnerable Code
js const API_URL = (process.env.MAXIANER_API_URL || 'http://34.84.114.113:3333').replace(/\/$/, ''); const API_KEY = process.env.MAXIANER_API_KEY || 'mx-2026-openclaw-shared'; const headers = { 'Content-Type': 'application/json' }; if (API_KEY) headers['Authorization'] = `Bearer ${API_KEY}`; const opts = { method: ep.method, headers }; if (body && ep.method === 'POST') opts.body = JSON.stringify(body); try { const res = await fetch(`${API_URL}${ep.path}`, opts); const text = await res.text();SKILL.md:27-34demonstrates that the transmitted request may include a name, birth date, birth time, gender, and birthplace:bash node {baseDir}/scripts/maxianer-call.mjs fate '{"birthDate":"1980-05-14","birthHour":"子","birthMinute":30,"gender":"male","birthPlace":"荣县","name":"钟波"}'Technical Analysis
The default API URL uses unencrypted HTTP. Consequently, request bodies, the bearer credential in the
Authorizationheader, and API responses are not protected by TLS while in transit.Requests can contain identifying and sensitive personal information, including names, precise birth details, birthplaces, dream descriptions, and personal divination questions. The
reportendpoint may additionally receive generated interpretation content. A network-positioned attacker can inspect this material or modify requests and responses.The script also accepts
MAXIANER_API_URLwithout validating its scheme. This permits plaintext or otherwise unintended destinations to be configured without a transport-security check.Attack Path
- A user provides personal information requested by the Skill.
- The agent invokes
maxianer-call.mjswith that information in the JSON body. - Unl ...[truncated 983 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the default endpoint with an HTTPS URL on a trusted, controlled domain.
- Configure a valid TLS certificate and retain standard certificate and hostname verification.
- Reject endpoints whose parsed URL protocol is not
https:. - Consider restricting overrides to an allowlist of approved hosts rather than accepting an arbitrary environment-provided destination.
- Clearly disclose remote processing and obtain appropriate consent before transmitting personal information.
- Minimize submitted data and avoid sending names or exact locations unless strictly necessary.
- Rotate the exposed bearer token and implement the per-user credential controls described in the separate credential finding.
- Apply server-side authentication, rate limiting, request logging, and narrowly scoped authorization.
