suspicious.dangerous_exec
- Location
- scripts/setup-qq-email.js:108
- Finding
- Shell command execution detected (child_process).
AdvisoryAudited by Static analysis on May 10, 2026.
Detected: suspicious.dangerous_exec, suspicious.exposed_secret_literal
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Anyone who receives the package may get access to a real mailbox credential, and the skill may operate on an account that does not belong to the installer.
The package includes a concrete QQ mailbox address and IMAP/SMTP authorization code, giving access to an email account rather than requiring each installer to configure their own credential.
"address": "840596358@qq.com" ... "authCode": "ifkdubnmdajobebg"
Remove config/email-config.json from the published skill, revoke the exposed QQ auth code, ship only a template file, and declare the required mailbox credential explicitly.
Private contacts and email subjects from a real mailbox are exposed and may be reused by the skill or read by anyone installing it.
The skill package contains a large persisted mailbox-derived dataset with sender, recipient, subject, date, and sequence metadata.
"count": 1671, "emails": [ { "from": "\"Paul Allison, Statistical Horizons\" <info@statisticalhorizons.com>", "to": "840596358@qq.com", "subject": "Online Treatment Effects Analysis-Register Now!"Do not publish fetched email data or generated reports; create data files only locally after the user authorizes access, and document retention and deletion behavior.
Running the documented --send workflow may send private email summaries to an unknown hard-coded WeChat recipient.
The send function forwards the email summary through OpenClaw/WeChat to a fixed default target unless environment variables are set, and the setup/docs do not require the user to choose or confirm that recipient.
const USER_ID = process.env.WEIXIN_USER_ID || 'o9cq802hhREiOXPlXq_Tgb0MjPTo@im.wechat'; ... openclaw message send --channel '${CHANNEL}' --account '${ACCOUNT}' --target '${USER_ID}' --messageRemove hard-coded recipient defaults, require explicit user configuration and confirmation of the destination, and clearly disclose exactly where summaries are sent.
Users may trust the skill's safety guidance while the published package already contains the sensitive file it says not to publish.
The documentation warns that the config file is sensitive and should not be committed, yet the provided artifact set includes config/email-config.json with an auth code.
- **不要**将配置文件提交到 Git
Align the package with the documentation: remove secrets and private data before publication, and make privacy/security limitations explicit.
This is related to the stated setup purpose, but generated-code execution is more fragile and should be reviewed before use.
The setup flow writes a generated JavaScript connection-test file and executes it locally.
fs.writeFileSync(testFile, testScript); ... execSync(`node ${testFile}`, {Test IMAP connectivity directly in the same process instead of generating and executing a temporary script, and avoid embedding credentials into generated code.
If enabled, the skill continues operating in the background and could repeatedly send email summaries.
The documentation describes an optional cron job that would keep fetching mail and sending summaries on a daily schedule.
0 20 * * * /path/to/fetch-emails.js && /path/to/summarize-emails.js --send
Only enable scheduling after verifying credentials, storage, recipient configuration, and a clear uninstall/disable path.