T09 · Insecure Skill Coding Practices
- Location
src/__init__.py:8- Finding
API Credentials Transmitted over Plaintext HTTP
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a straightforward GS Data search client, but it sends API signatures and search terms to a hardcoded plaintext HTTP endpoint.
Review this skill before installing. Use it only if you are comfortable sending the project ID, API signature, keywords, and time filters to the GS Data service, and avoid using sensitive credentials while the endpoint remains plaintext HTTP. Prefer a version that uses HTTPS, avoids passing secrets on the command line, and pins Python dependencies reproducibly.
src/__init__.py:8API Credentials Transmitted over Plaintext HTTP
src/__init__.py:61Sensitive API Signature Exposed through Command-Line Arguments
package.json:8Ambiguous and Insufficiently Constrained Dependency Declarations
The skill documentation instructs users to provide a project_id, signature, and search parameters for an external API but does not clearly warn that these values will be transmitted off-system to projects-databus.gsdata.cn. This can lead users to disclose sensitive credentials or sensitive search terms without informed consent, which is especially relevant because API signatures are authentication material and search queries may contain proprietary or regulated data.
The client sends the project_id, signature, and search parameters to a hardcoded HTTP endpoint, which provides no transport-layer confidentiality or integrity. An attacker on the network path could intercept or modify the request or response, exposing credentials/signatures and search data or tampering with returned results.
The dependency is specified with a caret range (^2.31.0), which allows automatic installation of newer minor/patch releases rather than a single exact version. This can introduce supply-chain risk through unexpected upstream changes or compromised releases, though the impact here is limited because it affects only one common dependency and there is no additional evidence of malicious package manipulation in this file.
"author": "Your Name",
"license": "MIT",
"dependencies": {
"requests": "^2.31.0"
}
}
The dependency is specified as requests>=2.25.1, which allows any newer version to be installed and does not guarantee reproducible or reviewed builds. This can unintentionally pull in vulnerable or breaking releases over time, making supply-chain risk harder to control and audit.
requests>=2.25.1
requests has multiple known advisories, and because the manifest does not pin the package version, it is not possible to verify whether the installed version is affected or safe. In security-sensitive agent skills, this uncertainty increases supply-chain exposure because deployments may resolve to different versions across environments.
Natural-language strings such as the module docstring, function docstring, and CLI help are presented in Chinese, which can effectively force a specific language for users who invoke or read the tool. The file does not indicate that this is a region-specific tool or provide any opt-in or alternative language support.