T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/youtube_upload.py:36- Finding
OAuth Authorization Requests Excessive YouTube Account Privileges
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent YouTube uploader, but it needs Review because it requests broad YouTube OAuth authority and stores a refreshable account token locally without enforcing restrictive file permissions.
Install only if you are comfortable granting this skill meaningful YouTube account access. Before use, review the Google OAuth consent scopes, run dependencies in a virtual environment, keep client_secret.json and token.json private with restrictive permissions, explicitly confirm channel/account and privacy setting before each upload, and revoke the Google OAuth grant if you stop using the skill or suspect token exposure.
scripts/youtube_upload.py:36OAuth Authorization Requests Excessive YouTube Account Privileges
scripts/youtube_upload.py:106Refreshable OAuth Token Is Written Without Enforced Restrictive Permissions
SKILL.md:66Third-Party Python Dependencies Are Installed Without Version or Integrity Pinning
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
脚本会自动刷新 Token。如果持续失败,删除 token.json 重新授权:
rm ~/.openclaw/workspace/skills/youtube-publisher/token.json
python3 {baseDir}/scripts/youtube_upload.py auth
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
前提:
1. pip3 install google-api-python-client google-auth-oauthlib
2. 从 Google Cloud Console 下载 OAuth 凭证文件 (client_secret.json)
3. 放置到 ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
前提:
1. pip3 install google-api-python-client google-auth-oauthlib
2. 从 Google Cloud Console 下载 OAuth 凭证文件 (client_secret.json)
3. 放置到 ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
前提:
1. pip3 install google-api-python-client google-auth-oauthlib
2. 从 Google Cloud Console 下载 OAuth 凭证文件 (client_secret.json)
3. 放置到 ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
前提:
1. pip3 install google-api-python-client google-auth-oauthlib
2. 从 Google Cloud Console 下载 OAuth 凭证文件 (client_secret.json)
3. 放置到 ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
前提:
1. pip3 install google-api-python-client google-auth-oauthlib
2. 从 Google Cloud Console 下载 OAuth 凭证文件 (client_secret.json)
3. 放置到 ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
前提:
1. pip3 install google-api-python-client google-auth-oauthlib
2. 从 Google Cloud Console 下载 OAuth 凭证文件 (client_secret.json)
3. 放置到 ~/.openclaw/workspace/skills/youtube-publisher/client_secret.json
"""
The skill documents capabilities that require network access and local file writes, but it does not declare any explicit tool scope or permission boundaries. In an agent environment, this increases the chance that the skill can be invoked with broader-than-expected authority, reducing reviewability and user awareness of what the skill may access or modify.
The skill describes upload functionality but does not prominently warn that video files and metadata are sent to YouTube using OAuth-authenticated API calls and may be published publicly if the privacy flag is set accordingly. This weakens informed consent and increases the risk of users unintentionally disclosing sensitive media or metadata.
The invocation example uses broad natural-language phrasing like '帮我把 ... 上传到 YouTube' without requiring confirmation of privacy state, destination account, or publication intent. In agentic use, this can trigger high-impact actions from casual prompts and lead to accidental uploads or public disclosure of media.
The upload function hard-codes the default language parameter to "zh-Hans", which causes uploads to be tagged with a specific language unless the user explicitly overrides it. This is a natural-language locale policy concern because the script imposes a language default rather than making language selection neutral or opt-in.
The command-line interface sets --language to zh-Hans by default, so users who do not notice or supply the flag will have their content labeled as Chinese. This enforces a specific locale without opt-in and matches the policy-violation category for language or locale constraints.
No suspicious patterns detected.