T08 · Insecure Dependencies
- Location
SKILL.md:26- Finding
Unpinned Runtime Dependencies Create a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a straightforward DogeCloud OSS uploader that does what it says, though users should treat uploads as potentially public.
Install and use this only when you intend to send the selected file to DogeCloud and potentially expose it through a public URL. Prefer a dedicated low-privilege DogeCloud key, keep OSS_UPLOAD with the default exact object scope, avoid OSS_FULL or wildcard scopes unless you understand the impact, and pin dependencies in a virtual environment for safer installation.
SKILL.md:26Unpinned Runtime Dependencies Create a Supply-Chain Risk
scripts/doge_upload_public_info.py:104Upload-Only Workflow Allows Unnecessary Full-Permission and Wildcard Temporary Tokens
The skill performs sensitive actions that involve reading environment variables and making network requests, but it does not declare any explicit tool scope or permission boundary. This can lead to overbroad execution in an agent environment, making it harder to enforce least privilege and increasing the risk of unintended secret access or outbound data transmission.
The trigger phrases are broad enough that the skill may activate for loosely related requests such as asking for a link or mentioning DogeCloud, causing an upload action when the user did not clearly intend file exfiltration to a remote service. In this context, unintended invocation is more dangerous because the skill can transmit local files and associated metadata over the network.
The skill description and workflow do not clearly warn users that local files, hashes, filenames, bucket information, and public URL metadata will be sent to an external cloud service and potentially made publicly accessible. Because the skill is specifically designed to upload local content and return public links, lack of a prominent disclosure materially increases the risk of accidental data exposure.
The call to upload_file transfers an arbitrary local file selected by path to remote cloud storage, which is a classic exfiltration primitive. Although this is the intended feature of the skill, in an agent setting it is security-relevant because it can be used to move sensitive local data off-host and immediately derive public access links.
upload_kwargs = {}
if args.content_type:
upload_kwargs["ExtraArgs"] = {"ContentType": args.content_type}
s3.upload_file(file_path, s3_bucket, object_key, **upload_kwargs)
candidates = build_public_candidates(object_key, s3_bucket, s3_endpoint, public_base_url)
notes = [
The script is explicitly designed to upload a local file and then return public URL candidates, but it does not require an explicit confirmation or present a strong warning that the uploaded content may become publicly accessible. In an agent skill context, this increases the risk of accidental disclosure of sensitive local files because a user may ask for an upload without fully understanding the exposure or the exact destination/path.
The activation description includes both English and Chinese trigger phrases, but it does not state whether the skill supports multiple languages by default or let the user opt into a preferred language/locale. This can be a mild language-policy concern when a skill implicitly enforces or assumes language handling without documenting user choice.
No suspicious patterns detected.