T03 · Remote Payload Retrieval and Execution
- Location
README.md:17- Finding
Unverified Remote Installer Is Piped Directly Into a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This DingTalk automation skill is purpose-aligned, but it needs review because its install guidance and runtime code can expose users to unsafe local command execution and overbroad network requests.
Install only after the publisher replaces remote shell-piped installer commands with pinned, verifiable releases and fixes the command execution wrapper to use argument arrays without a shell. Treat DingTalk AppKey/AppSecret, OAuth state, robot webhooks, contact data, calendars, and todos as sensitive business access, and avoid using this skill on production credentials until those issues are corrected.
README.md:17Unverified Remote Installer Is Piped Directly Into a Shell
lib/dws.js:21Shell Command Injection Through DWS Command Construction
lib/message.js:73Unrestricted Robot Webhook URL Enables Server-Side Request Forgery
package-lock.json:20Dependency Lockfile Retrieves Packages Through a Third-Party Registry Mirror
The '| sh' pattern creates an execution chain where untrusted network content is fed directly into a shell without any review or integrity verification. In the context of an enterprise automation skill that also handles app credentials, compromise of the installer path could lead to immediate code execution and theft of DingTalk secrets or broader workstation compromise.
# Linux/macOS
curl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | sh
# 验证安装
dws --version
The '| sh' and 'iex' chaining pattern converts downloaded remote content directly into executable shell/PowerShell commands, eliminating any review barrier. This is a classic command-chaining abuse vector that enables full compromise if the upstream script is altered or if users are socially engineered into trusting a malicious mirror or fork.
# Linux/macOS
curl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | sh
# Windows PowerShell
irm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iex
Referenced artifact was not completely inspected
node scripts/calendar.js create \
Referenced artifact was not completely inspected
node scripts/calendar.js create \
Referenced artifact was not completely inspected
node scripts/calendar.js create \
Referenced artifact was not completely inspected
node scripts/calendar.js create \
Referenced artifact was not completely inspected
node scripts/calendar.js create \
Referenced artifact was not completely inspected
node scripts/calendar.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/todo.js create \
Referenced artifact was not completely inspected
node scripts/contact.js search --name "张三"
Referenced artifact was not completely inspected
node scripts/contact.js search --name "张三"
Referenced artifact was not completely inspected
node scripts/contact.js search --name "张三"
Referenced artifact was not completely inspected
node scripts/contact.js search --name "张三"
Referenced artifact was not completely inspected
node scripts/contact.js search --name "张三"
Referenced artifact was not completely inspected
node scripts/robot.js send \
The same direct command chaining appears again in troubleshooting, reinforcing an unsafe operational habit and making exploitation easier during support scenarios. Because this skill deals with enterprise credentials and automation context, compromise of the host could also expose AppKey/AppSecret values and authenticated CLI state.
export PATH="$HOME/.local/bin:$PATH"
curl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | sh
### 问题:认证失败
The lockfile pins axios to 1.14.0, and the finding cites multiple known advisories, including SSRF-related proxy bypass and prototype-pollution-assisted attack paths. Because this is a CLI automation tool that makes outbound HTTP requests, a vulnerable HTTP client library is directly security-relevant and could expose credentials, enable request tampering, or bypass network egress controls depending on how the application uses axios.
form-data 4.0.5 is reported as vulnerable to CRLF injection via unescaped multipart field names and filenames. If this skill ever builds multipart requests from untrusted input, an attacker may be able to manipulate request structure, smuggle fields, or tamper with downstream parsing on receiving systems.
Detected: suspicious.dangerous_exec