Skill Trust Decision

bitable_to_feishu_webhook

Skill has undeclared network exfiltration capability through user-controlled webhook_url that can send data to any external endpoint, and uses eval() with potential code execution vectors not declared in permissions.

Install decision first Source: Manual upload Scanned: Apr 3, 2026
Files 6
Artifacts 4
Violations 1
Findings 4
Most direct threat evidence
01
Attacker provides malicious webhook_url pointing to controlled server reconnaissance · SKILL.md inputs
02
User configures skill with attacker-provided webhook delivery · SKILL.md inputs
03
Skill POSTs bitable record data (including sensitive fields) to attacker-controlled URL Exfiltration · scripts/push_skill.py

Why this conclusion was reached

2/4 dimensions flagged
Block
Declared vs actual capability

1 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

4 lower-risk artifacts were extracted and still need context.

Block
Attack chain and severe findings

The report includes 3 attack-chain steps and 1 severe findings.

Review
Dependencies and supply chain hygiene

2 dependency or supply-chain issues need attention.

Attack Chain

01
Attacker provides malicious webhook_url pointing to controlled server

reconnaissance · SKILL.md inputs:17

02
User configures skill with attacker-provided webhook

delivery · SKILL.md inputs:17

03
Skill POSTs bitable record data (including sensitive fields) to attacker-controlled URL

Exfiltration · scripts/push_skill.py:175

What drove the risk score up

Undeclared webhook exfiltration +25

webhook_url accepts any URL, enabling data exfiltration to arbitrary endpoints not declared in network permissions

eval() with restricted but not sandboxed globals +15

eval() with __builtins__:{} still allows object construction attacks (type, __import__, etc.) - not declared in permissions

Duplicate undocumented script +5

scripts/push.py exists but is not referenced in SKILL.md entrypoint

Most important evidence

High

Data exfiltration via undeclared webhook URL

The skill accepts a user-provided webhook_url parameter and sends formatted message data (including potentially sensitive fields from bitable records) to this URL. SKILL.md only declares network access to 'https://open.feishu.cn', but webhook_url can point to any external endpoint, enabling data exfiltration.

scripts/push_skill.py:175
Either whitelist webhook domains or explicitly declare the capability to send data to arbitrary URLs in SKILL.md permissions.
Medium

eval() with potential code execution escape

eval_rule() uses eval() with __builtins__={}. While this removes direct builtins, it may still allow dangerous operations through object construction (type(), __import__ via getattr on builtins, etc.). Not declared in SKILL.md.

scripts/push_skill.py:103
Replace eval() with a safer expression parser (e.g., ast.literal_eval with restricted grammar) or explicitly declare the capability.
Low

Undocumented secondary script

scripts/push.py exists with similar functionality to push_skill.py but is not referenced in SKILL.md entrypoint.

scripts/push.py:1
Remove or document scripts/push.py if it's intentionally a separate entry point.
Info

Credentials handling appears safe

app_id and app_secret are used only for Feishu API authentication and are not exfiltrated. No access to ~/.ssh, ~/.aws, or .env files.

scripts/push_skill.py:68
No action needed.

Declared capability vs actual capability

Network Block
Declared READ (https://open.feishu.cn only)
→
Inferred WRITE (arbitrary URL via webhook_url)
scripts/push_skill.py:175-183 - send_to_webhook() POSTs to user-provided webhook_url without domain restriction
Filesystem Pass
Declared NONE
→
Inferred NONE
No file system operations found
Shell Pass
Declared NONE
→
Inferred NONE
No shell execution found
Environment Pass
Declared NONE
→
Inferred READ (INPUT_* vars)
Uses os.getenv() to read INPUT_* environment variables - expected but undocumented

Suspicious artifacts and egress

Medium External URL
https://open.feishu.cn/open-apis/bot/v2/hook/xxx)

SKILL.md:36

Medium External URL
https://open.feishu.cn

SKILL.md:66

Medium External URL
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal

push_skill.py:59

Medium External URL
https://open.feishu.cn/open-apis/bitable/v1/apps/

push_skill.py:71

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
requests >=2.25.0 pip No Version pinned at lower bound only
urllib3 >=1.26.0 pip No Version pinned at lower bound only

File composition

6 files · 805 lines
Python 2 files · 672 linesMarkdown 2 files · 125 linesJSON 1 files · 5 linesText 1 files · 3 lines
Files of concern · 3
push_skill.py Python · 594 lines
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal · https://open.feishu.cn/open-apis/bitable/v1/apps/
scripts/push.py Python · 78 lines
Undocumented secondary script
SKILL.md Markdown · 67 lines
https://open.feishu.cn/open-apis/bot/v2/hook/xxx) · https://open.feishu.cn
Other files · README.md · _meta.json · requirements.txt

Security positives

No shell execution (subprocess, os.system, etc.)
No file system write operations
No credential harvesting from sensitive paths
No base64 decoding or obfuscated code execution
No hidden HTML/JS payloads
No clipboard access
Credentials (app_id, app_secret) are used only for intended Feishu API auth and not exfiltrated
HTTP requests are limited to defined Feishu API endpoints except for the user-controlled webhook_url