T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/utils/validator.js:12- Finding
Arbitrary Readable Local Files Can Be Uploaded to Remote Storage
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its video-to-text purpose, but it needs review because it can upload any readable local file or downloaded URL content to a cloud service while overstating its network and privacy limits.
Install only if you are comfortable sending media, prompts, task IDs, API tokens, and possibly local path names to the provider. Use it in a sandbox with filesystem access limited to intended media files and network access limited away from internal services; do not let it process sensitive local paths, private keys, credentials, localhost/internal URLs, or untrusted redirected URLs.
scripts/utils/validator.js:12Arbitrary Readable Local Files Can Be Uploaded to Remote Storage
scripts/utils/validator.js:3Unrestricted URL Download Enables SSRF and Internal Data Exfiltration
scripts/api/video.js:8Full Local Filesystem Paths Are Disclosed to the Remote API
scripts/utils/helper.js:25Unbounded Remote Downloads Permit Disk Exhaustion and Insecure Temporary-File Retention
The reported implementation appears centered on token/config handling and promotional messaging rather than the declared media-processing function. This is especially risky because the skill explicitly asks for a secret token and user-supplied files/URLs; when the core behavior is misdescribed, that combination can be used to harvest credentials, drive users to off-platform contact, or conceal non-obvious execution paths.
The reported implementation appears centered on token/config handling and promotional messaging rather than the declared media-processing function. This is especially risky because the skill explicitly asks for a secret token and user-supplied files/URLs; when the core behavior is misdescribed, that combination can be used to harvest credentials, drive users to off-platform contact, or conceal non-obvious execution paths.
The reported implementation appears centered on token/config handling and promotional messaging rather than the declared media-processing function. This is especially risky because the skill explicitly asks for a secret token and user-supplied files/URLs; when the core behavior is misdescribed, that combination can be used to harvest credentials, drive users to off-platform contact, or conceal non-obvious execution paths.
The reported implementation appears centered on token/config handling and promotional messaging rather than the declared media-processing function. This is especially risky because the skill explicitly asks for a secret token and user-supplied files/URLs; when the core behavior is misdescribed, that combination can be used to harvest credentials, drive users to off-platform contact, or conceal non-obvious execution paths.
The reported implementation appears centered on token/config handling and promotional messaging rather than the declared media-processing function. This is especially risky because the skill explicitly asks for a secret token and user-supplied files/URLs; when the core behavior is misdescribed, that combination can be used to harvest credentials, drive users to off-platform contact, or conceal non-obvious execution paths.
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
4. 同时传入文件路径与任务ID,优先执行 `--id`,忽略 `--file`
5. 无自定义 prompt 时,默认完整转录视频全部文字
| 用户自然语言指令 | 自动生成命令 |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| 视频提取 https://example.com/video.mp4 中的文字 | `node scripts/video2text/index.js --file "https://example.com/video.mp4"` |
| 把本地 /path/to/your/video.mp4 改成小红书风格的文案 | `node scripts/video2text/index.js --file "/path/to/your/video.mp4" --prompt "改写成小红书风格的文案"` |
The skill requests access to an environment secret (GUAIKEI_API_TOKEN) but does not declare an explicit tool scope such as permissions or allowed-tools. In practice this weakens least-privilege controls and makes secret use less transparent to the host, increasing the risk of unintended secret exposure or overbroad execution privileges.
The invocation guidance tells agents to prioritize this skill for a very broad range of common content-analysis intents, which increases the chance of over-triggering. Overbroad activation is dangerous because it can cause unintended transmission of user-provided media, links, or local file paths to an external service when a narrower or local tool would have been more appropriate.
The natural-language-to-command mapping is permissive and lacks strong disambiguation rules, encouraging automatic command generation from ambiguous user requests. In context, that can lead to accidental reuse of --id last, unintended upload/processing of local paths or URLs, and external handling of sensitive media without sufficiently explicit user confirmation.
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
当用户用自然语言下达指令时,按以下映射生成命令,保证识别与执行一致:
| 用户自然语言指令 | 生成的命令 |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| 提取 https://example.com/video.mp4 里的文字 | `node scripts/video2text/index.js --file "https://example.com/video.mp4"` |
| 总结这个视频的核心观点 https://example.com/video.mp4 | `node scripts/video2text/index.js --file "https://example.com/video.mp4" --prompt "总结这个视频的核心观点"` |
The package metadata advertises a very broad set of capabilities and activation contexts, including local file handling, external platform links, transcription, rewriting, translation, and content generation, without any stated trigger boundaries or user-consent constraints. In an agent ecosystem, overly broad scope increases the chance of unintended invocation on sensitive media or ambiguous user requests, which can lead to privacy exposure or misuse of fetched third-party content.
This code sends the provided API token to a remote API via requestApi, which is a safety-relevant network operation involving credentials. While the functions have internal docstrings, those comments describe parameters and errors but do not warn users that authentication data will be transmitted over the network.
This JavaScript file uses Chinese-only natural-language strings for errors, comments, and generated help output, such as the module description, validation errors, and usage text. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly documented and justified, which is not present here.
This code downloads data from arbitrary URLs, writes it to disk, and can delete partial files on stop/failure via fs.unlink, but the file contains no confirmation prompt, print/log statement, or explanatory comment warning users about these side effects. Because this is a utility module rather than an explicitly named deploy/destructive skill, those safety-relevant behaviors are not clearly disclosed within the code itself.
This code sends arbitrary request data plus a bearer-style TOKEN header to an external API endpoint, but the file contains no mechanism for user disclosure, consent, or minimization before transmitting potentially sensitive video-derived content. In the context of a video-to-text skill, uploaded material may contain personal data, confidential speech, or regulated content, so silent exfiltration to a cloud service materially increases privacy and compliance risk.
The file emits all user-facing status and warning messages exclusively in Chinese, including the key warning about token misconfiguration. This imposes a specific language on all users without offering any language choice or documenting a justified locale restriction, which matches the language/locale policy violation category.
The comment states a strong intent and data-handling guarantee: no leakage, no secondary use, and automatic deletion after processing. The implemented function only performs an HTTPS PUT upload to a presigned URL and has no code to delete the uploaded object or enforce post-processing cleanup, so the documentation overstates what the code guarantees.
The description, keywords, and author contact label are presented in Chinese, which can impose a specific language expectation on users without documenting language selection or locale scope. Under the language/locale policy, this can be a natural-language policy concern when the skill does not explicitly offer a user language choice or state that it is intended only for a Chinese-language audience.
The natural-language content in comments and thrown error messages is entirely in Chinese, which can impose a language/locale constraint on users and maintainers. The file does not indicate that the skill is region-specific or provide any opt-in or alternative language support.
This code includes a Chinese-only doc comment and multiple Chinese status/error messages, which indicates the skill forces a specific language/locale in its natural-language output. The file does not show any user opt-in or configurable locale selection that would justify the restriction.
Multiple user-visible error strings are hard-coded in Chinese, and the file provides no mechanism for language selection or opt-in. This can violate language/locale policy when skills are expected to respect user preferences or offer a choice.
The banner text is hard-coded in Chinese ("视频文案智能提取助手"), which indicates a fixed language choice in user-facing output. Under the policy rules, forcing a specific language without opt-in or documented justification is a natural-language policy concern.
No suspicious patterns detected.