dianping-api
Remote script execution via curl|bash with base64-encoded content is a critical supply chain vulnerability, compounded by undocumented shell/filesystem/network access in the installation mechanism.
The install.sh fetches and executes code from a remote URL using the dangerous curl|bash pattern. The <URL> placeholder could point to a compromised or attacker-controlled server at any time after distribution.
install.sh:3 Why this conclusion was reached
3/4 dimensions flagged3 undeclared or violating capabilities were inferred.
2 high-risk artifacts or egress signals were extracted.
The report includes 4 attack-chain steps and 2 severe findings.
Dependencies are present but no obvious high-risk issue stands out.
Attack Chain
delivery · install.sh:3
delivery · install.sh:3
Execution · install.sh:3
Persistence · install.sh:28
What drove the risk score up
curl -fsSL <URL>/install.sh | bash allows arbitrary code injection at install time
All source code is base64-encoded and decoded at runtime, hiding true implementation from static analysis
SKILL.md does not mention subprocess usage with curl commands
SKILL.md does not declare that cookies are stored in ~/.dianping/
SKILL.md mentions curl but does not explicitly declare network:READ capability
Most important evidence
Remote Script Execution via curl|bash
The install.sh fetches and executes code from a remote URL using the dangerous curl|bash pattern. The <URL> placeholder could point to a compromised or attacker-controlled server at any time after distribution.
install.sh:3 Base64-Encoded Source Code Execution
All three source files (SKILL.md, dianping_api.py, dianping_login.py) are base64-encoded and decoded at install time. This prevents static analysis of the actual code and could be used to smuggle malicious payloads.
install.sh:11 Undeclared Shell Execution via subprocess
Both Python scripts use subprocess.run() to execute curl commands, but SKILL.md does not declare shell:WRITE capability or mention subprocess usage. The doc only states 'uses curl' without explaining the execution model.
dianping_api.py:35 Undeclared Filesystem Write Access
SKILL.md states cookies are stored in '~/.dianping/cookies.json' but does not declare filesystem:WRITE permission. This is hidden behavior affecting user home directory.
dianping_login.py:69 Undeclared Network Access
SKILL.md mentions 'curl (系统自带,无需安装)' but does not explicitly declare network:READ capability. HTTP requests to dianping.com are fundamental to the tool but undocumented.
SKILL.md:1 Declared capability vs actual capability
install.sh:24 writes ~/.dianping/cookies.json via Python scripts dianping_api.py:35 subprocess.run(['curl',...]) install.sh:3 curl|bash pattern No environment variable access found No cross-skill invocation Suspicious artifacts and egress
curl -fsSL <URL>/install.sh | bash install.sh:3
base64 -d install.sh:11
https://www.dianping.com/ scripts/dianping_api.py:38
https://www.dianping.com/search/keyword/%d/0_%s scripts/dianping_api.py:65
https://www.dianping.com/shop/ scripts/dianping_api.py:104
https://www.dianping.com scripts/dianping_login.py:23
https://account.dianping.com/pclogin scripts/dianping_login.py:183
https://www.dianping.com/search/keyword/ scripts/dianping_login.py:218
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| curl | system-provided | system | No | No pip/npm dependencies - uses system curl |
File composition
install.sh scripts/dianping_login.py scripts/dianping_api.py SKILL.md