T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/checkBookings.ts:96- Finding
Indiscriminate Approval of Application Permissions and User Agreements
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears intended to check Ctrip booking availability, but it needs review because it can automatically approve phone permission and terms dialogs while controlling a logged-in Android app.
Install only if you are comfortable letting the skill control a logged-in Android phone over ADB and send Ctrip screenshots containing order details to your configured model provider. Supervise runs closely and avoid allowing it to accept permission requests or user agreements on your behalf; prefer npm ci with reviewed dependencies and update the flagged transitive packages before routine use.
scripts/checkBookings.ts:96Indiscriminate Approval of Application Permissions and User Agreements
SKILL.md:18Dependency Installation Executes Third-Party Lifecycle Scripts
form-data 4.0.2 is flagged for unsafe boundary generation and CRLF injection issues in multipart field names/filenames. If this dependency is used to send multipart requests with attacker-influenced fields, it can enable request smuggling-like behavior, malformed requests, or downstream parser abuse.
Referenced artifact was not completely inspected
cd $SKILL_DIR && npx tsx scripts/checkBookings.ts --from 2026-05-01 --to 2026-05-05
Referenced artifact was not completely inspected
cd $SKILL_DIR && npx tsx scripts/checkBookings.ts --from 2026-05-01 --to 2026-05-05
Referenced artifact was not completely inspected
cd $SKILL_DIR && npx tsx scripts/checkBookings.ts --from 2026-05-01 --to 2026-05-05
Referenced artifact was not completely inspected
cd $SKILL_DIR && npx tsx scripts/checkBookings.ts --from 2026-05-01 --to 2026-05-05
Referenced artifact was not completely inspected
cd $SKILL_DIR && npx tsx scripts/checkBookings.ts --from 2026-05-01 --to 2026-05-05
lodash 4.17.21 is widely known to have security advisories, including prototype pollution and template-related risks in certain usage patterns. In this lockfile it appears as a transitive dependency, so exploitability depends on whether vulnerable APIs such as _.template, _.unset, or _.omit are exposed to attacker-controlled input, but it is still a legitimate supply-chain risk.
sharp 0.34.2 is reported with inherited vulnerabilities from native image-processing libraries. This skill performs Android automation and may handle screenshots or media frames, which makes image parsing libraries more security-relevant than in a typical backend-only package set.
@modelcontextprotocol/sdk 1.10.2 carries advisories including cross-client data leak, ReDoS, and DNS rebinding protection issues. Because this skill stack includes automation plus AI/agent-related libraries, any MCP exposure could increase the risk of data leakage or abuse if a server or transport is enabled in the runtime environment.
@xmldom/xmldom 0.8.11 has numerous advisories including malformed XML handling and serialization issues. While the lockfile does not prove active XML parsing of attacker input, a dependency with this advisory density is a meaningful supply-chain concern, especially in automation stacks that may parse device metadata or plist/XML content.
axios 1.9.0 is flagged for multiple serious advisories including SSRF- and prototype-pollution-related issues. Since this skill depends on libraries that may perform network calls for automation, AI, or remote services, vulnerable HTTP client behavior can materially increase exposure if any endpoint or proxy settings are attacker influenced.
brace-expansion 2.0.2 is reported vulnerable to DoS via pathological expansion input. This is usually only exploitable when attacker-controlled glob or brace patterns are processed, so the dependency is vulnerable even if real-world exploitability in this skill may be limited.
glob 10.4.5 is reported vulnerable to command injection via CLI flags that execute matches with shell:true. This matters mainly if the glob CLI is invoked with untrusted arguments; although the lockfile alone does not prove that usage, the vulnerable dependency is real.
ip-address 10.1.0 is reported with parsing ambiguity and HTML/XSS issues. In this skill, the most plausible concern would be SSRF or allowlist bypass if IP parsing is used for network trust decisions, but the lockfile alone does not show such use.
The skill explicitly instructs the automation agent to click through permission dialogs, user agreements, and consent prompts without any user confirmation. This can grant the app sensitive device permissions or accept legal/privacy terms on the user's behalf, which is especially risky because the skill operates on a real Android device and may encounter prompts with significant privacy or security consequences.
The documentation instructs users to run npx tsx, which can resolve and execute a package from the registry if it is not already installed locally or if resolution behavior changes. That creates a supply-chain risk because an unpinned tool version may introduce unexpected code execution during skill setup or use.
The install instruction uses npx skills without pinning a version, so execution may pull and run the latest package code from the registry. In a security-sensitive workflow, this increases exposure to package compromise, typo-squatting, or breaking behavior changes.
This example again relies on npx tsx without a pinned version, preserving the same risk of fetching and executing untrusted or changed registry code. Repetition in usage examples makes unsafe invocation more likely because users commonly copy-paste these commands directly.
Using unpinned npx tsx in another documented command continues the supply-chain execution risk. Because this skill automates a logged-in mobile app and processes potentially sensitive booking data, running unexpected code in the operator environment is more concerning than in a trivial demo skill.
The cross-month query example still uses npx tsx without version pinning, leaving users exposed to registry-side package changes or compromise. Since these commands are intended for end users, documentation-level unsafe defaults are a real operational weakness rather than a purely theoretical issue.
This final example repeats the same unpinned npx tsx pattern, so the user may execute a non-reproducible external package version. The skill's context increases risk somewhat because it operates with ADB access and handles screenshots that may contain private travel and pricing information, so compromise of the execution environment could expose sensitive data or device control.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
"axios": "1.9.0",
"base64-stream": "1.0.0",
"bluebird": "3.7.2",
"bplist-creator": "0.1.1",
"bplist-parser": "0.3.2",
"form-data": "4.0.2",
"get-stream": "6.0.1",
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
"axios": "1.9.0",
"base64-stream": "1.0.0",
"bluebird": "3.7.2",
"bplist-creator": "0.1.1",
"bplist-parser": "0.3.2",
"form-data": "4.0.2",
"get-stream": "6.0.1",
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
"axios": "1.9.0",
"base64-stream": "1.0.0",
"bluebird": "3.7.2",
"bplist-creator": "0.1.1",
"bplist-parser": "0.3.2",
"form-data": "4.0.2",
"get-stream": "6.0.1",
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
"axios": "1.9.0",
"base64-stream": "1.0.0",
"bluebird": "3.7.2",
"bplist-creator": "0.1.1",
"bplist-parser": "0.3.2",
"form-data": "4.0.2",
"get-stream": "6.0.1",
No suspicious patterns detected.