T09 · Insecure Skill Coding Practices
- Location
scripts/tcloud_api.py:42- Finding
TLS Certificate Verification Is Silently Disabled
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Tencent Cloud advisor skill is partly coherent, but it asks for durable cloud credentials and includes broad IAM, console-login, cleanup, and unsafe network behaviors that need careful review.
Install only if you are comfortable granting Tencent Cloud credentials to this skill. Use a tightly scoped sub-account or short-lived credentials, avoid storing AK/SK in shell startup files, review any CAM role and policy creation before approving it, do not share generated console login links, and avoid running cloud cleanup unless you have verified the target role is safe to delete.
scripts/tcloud_api.py:42TLS Certificate Verification Is Silently Disabled
scripts/tcloud_api.py:82Generic API Client Sends Authentication Material to Caller-Controlled Hosts
scripts/create_role.py:35Console Role Is Granted Permissions Beyond the Skill's Minimum Requirements
SKILL.md:24Instructions Require Persistent Plaintext Storage of Long-Term Cloud Credentials
check_env.py:343Mandatory Read-Only Environment Check Performs Writes and Assumes a Cloud Role
scripts/cleanup.py:272Cloud Cleanup Can Delete an Unrelated Pre-Existing CAM Role
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
)
ctx = _get_ssl_context()
with urlopen(req, context=ctx) as resp:
result = json.loads(resp.read().decode("utf-8"))
response_body = result.get("Response", {})
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
try:
ctx = _get_ssl_context()
with urlopen(req, context=ctx, timeout=30) as resp:
response_body = resp.read().decode("utf-8")
except HTTPError as e:
try:
This guide is materially inconsistent with the declared purpose of an architecture-governance assessment skill and instead documents bulk publication tactics, including pacing, batching, and anti-spam avoidance. In the context of a skill package, this can facilitate platform abuse or mass deployment of skills while normalizing behavior designed to work around defensive controls.
The document explicitly recommends token rotation and content variation to avoid anti-spam checks, which are classic evasion techniques rather than legitimate operational guidance. For a skill unrelated to publishing automation, these instructions are especially dangerous because they enable circumvention of platform abuse protections and can support large-scale spam or supply-chain distribution activity.
The security statement is internally inconsistent: AK/SK-authenticated API calls necessarily use secrets or secret-derived signatures in network requests, so claiming secrets are not transmitted over the network is misleading. Misstating secret-handling properties can cause users to underestimate the exposure model and make unsafe trust decisions.
The documented generic API invocation pattern suggests the underlying helper can call arbitrary Tencent Cloud service/actions beyond the narrowly described architecture assessment use case. In context, a generic cloud API caller paired with account credentials materially increases misuse potential and weakens the safety boundary implied by the skill description.
The documented generic API invocation pattern suggests the underlying helper can call arbitrary Tencent Cloud service/actions beyond the narrowly described architecture assessment use case. In context, a generic cloud API caller paired with account credentials materially increases misuse potential and weakens the safety boundary implied by the skill description.
The documented generic API invocation pattern suggests the underlying helper can call arbitrary Tencent Cloud service/actions beyond the narrowly described architecture assessment use case. In context, a generic cloud API caller paired with account credentials materially increases misuse potential and weakens the safety boundary implied by the skill description.
The documented generic API invocation pattern suggests the underlying helper can call arbitrary Tencent Cloud service/actions beyond the narrowly described architecture assessment use case. In context, a generic cloud API caller paired with account credentials materially increases misuse potential and weakens the safety boundary implied by the skill description.
The documented generic API invocation pattern suggests the underlying helper can call arbitrary Tencent Cloud service/actions beyond the narrowly described architecture assessment use case. In context, a generic cloud API caller paired with account credentials materially increases misuse potential and weakens the safety boundary implied by the skill description.
The documented generic API invocation pattern suggests the underlying helper can call arbitrary Tencent Cloud service/actions beyond the narrowly described architecture assessment use case. In context, a generic cloud API caller paired with account credentials materially increases misuse potential and weakens the safety boundary implied by the skill description.
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
��变量配置密钥:
TENCENTCLOUD_SECRET_ID — 腾讯云 SecretId(必填)TENCENTCLOUD_SECRET_KEY — 腾讯云 SecretKey(必填)密钥获取地址:https://console.cloud.tencent.com/cam/capi
环境变量必须永久写入 shell 配置文件,确保新会话中仍然生效:
Linux / macOS(写入 ~/.bashrc 或 ~/.zshrc):
echo 'export TENCENTCLOUD_SECRET_ID="your-secret-id"' >> ~/.bashrc
echo 'export TENCENTCLOUD_SECRET_KEY="your-secret-key"' >> ~/.bashrc
source ~/.bashrc
Windows PowerShell(写入用户级环境变量):
[Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_ID", "your-secret-id", "User")
[Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_KEY", "your-secret-key", "User")
为生成控制台免密登录链接,需要配置 CAM 角色。角色配置分为 检测 和 创建 两个独立步骤,角色创
Referenced artifact was not completely inspected
- 插件必须包含 `SKILL.md` 文件,描述插件的功能、调用方式和输出格式
This file is functionally unrelated to the declared architecture-governance assessment skill and instead provides end-to-end Tencent Cloud API signing and request-construction guidance. In a skill context, that represents capability expansion into authenticated cloud API access, which increases the chance the agent can be repurposed to enumerate or interact with cloud resources outside its stated role.
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
nd("TENCENTCLOUD_SECRET_ID")
if not secret_key:
missing.append("TENCENTCLOUD_SECRET_KEY")
log_fail(f"未配置以下环境变量: {', '.join(missing)}")
log_info("")
log_info(" 请将腾讯云 API 密钥永久写入 shell 配置文件:")
log_info("")
log_info(" Linux / macOS(写入 ~/.bashrc 或 ~/.zshrc):")
log_info(' echo \'export TENCENTCLOUD_SECRET_ID="your-secret-id"\' >> ~/.bashrc')
log_info(' echo \'export TENCENTCLOUD_SECRET_KEY="your-secret-key"\' >> ~/.bashrc')
log_info(" source ~/.bashrc")
log_info("")
log_info(" Windows PowerShell(写入用户级环境变量):")
log_info(' [Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_ID", "your-secret-id", "User")')
log_info(' [Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_KEY", "your-secret-key", "User")')
log_info("")
log_info(" 密钥获取地址: https:
The file is a destructive cleanup utility that deletes local configuration, generates environment-variable removal scripts, and can optionally delete a remote Tencent Cloud CAM role. That behavior materially exceeds and conflicts with the stated purpose of an architecture governance/assessment skill, which should be read-only or minimally invasive. In this skill context, the mismatch increases risk because users may invoke the skill expecting assessment/reporting, not local and cloud-side deletion.
The script can delete a remote CAM role using available AK/SK credentials, which is a destructive cloud action unrelated to architecture assessment or reporting. If invoked in the wrong context or by a misled user, it can remove IAM functionality and disrupt dependent workloads or access patterns; the skill context makes this especially dangerous because users would not reasonably expect an assessment tool to perform remote deletion.
This code creates a CAM role, enables console login, attaches broad policies, and writes persistent local configuration, which materially differs from the declared purpose of architecture assessment and report generation. That mismatch is dangerous because users or orchestrating agents may grant trust to a supposedly analytical tool that actually performs identity and access management changes, leading to unauthorized privilege establishment or persistence.
If certifi is unavailable, the fallback SSL context disables hostname verification and certificate validation entirely before sending signed cloud API requests. This permits man-in-the-middle interception or modification of STS traffic, potentially exposing secrets or returning attacker-controlled temporary credentials or responses.
The script generates direct Tencent Cloud console SSO URLs from temporary credentials, enabling interactive console access rather than merely producing architecture findings. In the context of an assessment-only skill, this is dangerous because it creates a path to privileged console access that is out of scope and could be used to pivot into manual or automated account actions.
The code reads long-lived cloud credentials from environment variables and uses them to assume IAM/CAM roles, despite the skill being presented as an assessment/reporting tool. This creates an unnecessary privileged execution path that could be abused by the skill or by downstream changes to access cloud resources beyond assessment scope.
os.system() and os exec-family calls run shell commands with the process's full privileges, enabling arbitrary command execution.
if platform.system() == "Windows":
# Windows 10+ 的 cmd/PowerShell 支持 ANSI(需 VT100)
try:
os.system("") # 激活 VT100 模式
return True
except Exception:
return False
This setup script goes beyond passive architecture assessment and actively creates a CAM role and attaches broad policies, materially changing the user's cloud IAM posture. Even with an interactive prompt, this is dangerous in a skill described as an assessment/reporting tool because users may not expect privileged identity modifications or understand the security consequences of granting QcloudTAGFullAccess and QcloudAdvisorFullAccess.
When certifi is unavailable, the fallback SSL context disables hostname checking and certificate verification entirely, allowing man-in-the-middle interception of requests and responses. Because this script transmits signed cloud API requests and potentially sensitive response data, disabling TLS verification materially undermines confidentiality and integrity.
The instruction '请严格按照' is written in Chinese and directs contributors to follow contribution rules, effectively imposing a specific language/locale context without any opt-in or documented justification. The policy explicitly flags language or locale requirements when a skill forces a specific language without offering user choice.
Detected: suspicious.exposed_secret_literal, suspicious.insecure_tls_verification