dingtalk-message
github.com/breath57/dingtalk-skills
Scanned Thu, 28 May 2026 17:12:22 GMT
Scan ID crawl-vhnnskrafd2v5pf03cihp940 · 1ms
D
SCORE 30 / 100
Verdict: Do not install

1 critical finding.

This skill leaks data via URL parameters ($OLD_TOKEN) plus 1 other issue listed below.

1 critical0 high1 medium10 rules passed

Why grade D?

score · 30 / 100

The current grade reflects 1 critical finding (any single CRIT → D).

1 CRIT0 HIGH1 MED0 LOW
To reach a higher grade
  • C
    Reach Ctarget score 55

    Resolve all 1 CRIT findings.

  • B
    Reach Btarget score 75

    Resolve all 1 CRIT.

  • A
    Reach Atarget score 95

    Resolve all 1 CRIT.

Thresholds are documented at /docs/grading. Source-of-truth is the grade() function in @skillox/scanner.

Findings · ordered by severity

crit
URL embeds a credential variable
The skill builds a URL that interpolates a secret into the query string. If the agent makes this request, the credential leaves the trust boundary.
rule: url-exfiltrationline: 68CWE-200
66
67# 工作通知示例
68RESP=$(curl -s -w '\nHTTP_STATUS:%{http_code}' -X POST "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=$OLD_TOKEN" \URL interpolates a credential into the query string
69 -H "Content-Type: application/json" \
70 -d '{"agent_id":"'$AGENT_ID'","userid_list":"'$USER_ID'","msg":{"msgtype":"text","text":{"content":"测试工作通知"}}}')
med
No capability manifest declared
The skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.
rule: no-manifest
Scan another →Share
skillox.io/r/crawl-vhnnskrafd2v5pf03cihp940