T09 · Insecure Skill Coding Practices
- Location
scripts/skill.py:314- Finding
Arbitrary File Write Through Untrusted Decoded Metadata
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a file-to-text encoder, but it needs Review because it encourages restriction bypass, overstates weak custom encryption, and can write decoded files to attacker-chosen paths.
Review carefully before installing. Do not rely on scramble mode for sensitive encryption, do not use it to evade platform or security policies, decode only trusted files or always provide an explicit safe --output path, and protect any generated .key files as secrets. Prefer installing from the pinned requirements file rather than the unpinned pip command.
scripts/skill.py:314Arbitrary File Write Through Untrusted Decoded Metadata
scripts/skill.py:47Unauthenticated Deterministic Stream Encryption With Keystream Reuse
scripts/skill.py:305Unbounded Gzip Decompression of Attacker-Controlled Data
SKILL.md:20Installation Instructions Bypass the Project's Pinned Dependency Version
The skill makes strong cryptographic security claims, including resistance to known-plaintext and ciphertext-only attacks, despite describing only XOR-based protection over encoded text. Such claims can mislead users into trusting the tool for sensitive data protection when the scheme lacks authenticated modern cryptography and may fail catastrophically if keys are reused or handling is flawed.
Promoting the skill as a way to bypass upload restrictions materially increases misuse risk because it frames the tool around defeating external controls. In context, the combination of text-based file transformation, concealment language, and evasion-oriented use cases makes the skill more dangerous than a neutral encoding utility.
The skill opens localhost TCP listeners and makes client connections as part of key generation, which introduces unnecessary network-facing behavior for a file encoder/decoder. Even though it binds only to 127.0.0.1, this expands the attack surface, can interfere with local services or sandbox policies, and creates a stealthy capability inconsistent with the minimal privileges expected for such a tool.
Phrases like 'safely bypass platform file format restrictions' and 'prevent eavesdropping' overstate what the tool can guarantee. Users may incorrectly believe the transfer is inherently safe or private, leading them to send sensitive or prohibited content through channels that remain logged, inspected, or policy-restricted.
The README explicitly markets the tool as a way to bypass platform restrictions and transfer arbitrary binaries through text-only chat interfaces. In this skill context, that increases the risk of policy evasion, covert payload delivery, and movement of executables or archives through channels designed to block them.
The README makes strong cryptographic claims such as resistance to known-plaintext and ciphertext-only attacks without evidence of a standard, reviewed design or clear limitations. This can mislead users into trusting a homegrown XOR-based scheme for sensitive data, increasing the chance of confidentiality failure if the scheme is weaker than advertised.
The use-case section promotes concealment and embedding of encoded files in benign-looking carriers such as images or code comments, which is directly useful for covert exfiltration and payload smuggling. Given the skill's emphasis on arbitrary binary transfer and metadata concealment, this context makes the misuse potential materially higher.
The skill documents and invokes file read/write and shell execution behaviors but declares no explicit tool scope or permission boundaries. In an agent environment, missing scope declarations can cause overbroad execution or insufficient review of dangerous capabilities, increasing the chance of unintended filesystem or command access.
The documentation explicitly lists bypassing upload restrictions as a use case, which signals an intent to evade platform security controls rather than support a legitimate encoding workflow. A skill that helps users circumvent content or attachment controls can be abused for stealthy exfiltration, malware transfer, or policy evasion.
Suspicious Unicode normalization or mixed-script content
The documentation explicitly states that encryption keys are written directly to a .key file, but it does not prominently warn users that this creates sensitive key material on disk. Storing raw keys on disk increases exposure to backup leakage, malware, unintended sharing, and forensic recovery, and the claimed 0600 permissions do not eliminate those risks.
The manifest describes a Base65536 file encoding/decoding tool with optional XOR encryption, but does not state that the skill will create and manage additional plaintext key files on disk. The implementation auto-generates a key file, handles name collision logic, writes timestamps and key material, and changes file permissions, which is behavior materially beyond straightforward file transformation.
The document states that the tool establishes TCP connections to 127.0.0.1, binds ephemeral ports, and performs send/recv loops to collect timing jitter. Even though this is loopback-only, it affects system/network behavior and should be disclosed to users in the skill description as part of expected operational impact.
No suspicious patterns detected.