T09 · Insecure Skill Coding Practices
- Location
scripts/fetch_news.py:143- Finding
TLS Certificate Validation Disabled for News Retrieval
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This weather and e-commerce news skill mostly matches its stated purpose, but it includes an undocumented cleanup script that deletes a local skill file and fetches news with TLS verification disabled before AI summarization.
Review this skill before installing. The main weather/news behavior is recognizable, but remove or ignore the undocumented cleanup.py and check_files.py scripts, restore TLS certificate verification before fetching news, and only summarize llm_input files with a constrained agent that treats article text as untrusted source material. Expect Chinese-language reports and local output-file writes under the skill output directory.
scripts/fetch_news.py:143TLS Certificate Validation Disabled for News Retrieval
scripts/run.py:98Untrusted Remote Article Content Is Passed to an AI Agent Without an Instruction Boundary
If the underlying skill actually deletes a local configuration file and modifies local files while claiming only to fetch weather/news and generate reports, that is a significant transparency and safety issue. Undeclared destructive filesystem actions can lead to loss of secrets, broken configuration, or user data corruption, especially in agentic systems where users rely on the manifest to understand risk.
If the underlying skill actually deletes a local configuration file and modifies local files while claiming only to fetch weather/news and generate reports, that is a significant transparency and safety issue. Undeclared destructive filesystem actions can lead to loss of secrets, broken configuration, or user data corruption, especially in agentic systems where users rely on the manifest to understand risk.
If the underlying skill actually deletes a local configuration file and modifies local files while claiming only to fetch weather/news and generate reports, that is a significant transparency and safety issue. Undeclared destructive filesystem actions can lead to loss of secrets, broken configuration, or user data corruption, especially in agentic systems where users rely on the manifest to understand risk.
If the underlying skill actually deletes a local configuration file and modifies local files while claiming only to fetch weather/news and generate reports, that is a significant transparency and safety issue. Undeclared destructive filesystem actions can lead to loss of secrets, broken configuration, or user data corruption, especially in agentic systems where users rely on the manifest to understand risk.
If the underlying skill actually deletes a local configuration file and modifies local files while claiming only to fetch weather/news and generate reports, that is a significant transparency and safety issue. Undeclared destructive filesystem actions can lead to loss of secrets, broken configuration, or user data corruption, especially in agentic systems where users rely on the manifest to understand risk.
If the underlying skill actually deletes a local configuration file and modifies local files while claiming only to fetch weather/news and generate reports, that is a significant transparency and safety issue. Undeclared destructive filesystem actions can lead to loss of secrets, broken configuration, or user data corruption, especially in agentic systems where users rely on the manifest to understand risk.
This script deletes a local configuration-related file and lists directory contents, behavior that is unrelated to the stated purpose of a weather and cross-border e-commerce information skill. Even though it targets a specific file path, unauthorized file manipulation and filesystem enumeration expand the skill's capability unnecessarily and can damage local state or expose environment details.
The code performs direct local file deletion via os.remove on a file inside the skill directory without any user confirmation or runtime justification tied to the skill's advertised functionality. In the context of an informational weather/news skill, this is especially suspicious because destructive filesystem access is unnecessary and could be repurposed or normalized as a precedent for tampering with local files.
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).
{
"date": "20260407",
"generated_at": "2026-04-07 23:15:38",
"type": "news",
"source": "ennews / cifnews",
"data": [
{
"title": "彻底终结灰色玩法?亚马逊新规落地",
"description": "亚马逊新规收紧定价管理,虚标划线价被终结,4月下旬至5月中旬分阶段生效,跨境电商竞争转向品牌化运营。",
"source": "cifnews",
"url": "https://www.cifnews.com/article/184913",
"published_at": "2026-04-07T00:00:00Z",
"source_tier": "unrated",
"impact_score": 60.0,
"core_keywords": [
"亚马逊"
],
"summary_type": "llm"
},
{
"title": "卖家故事:深圳亚马逊大卖星商创新如何攻破欧洲难题?",
"description": "星商创新以数据�
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
**链接**: https://www.cifnews.com/article/184908
**权重分**: 60.0
### 3. 一键诊断:四步提升亚马逊商品当日达比例,销量增长20%不是空谈
**发布时间**: 2026-04-07T00:00:00Z
**来源**: cifnews
**概要**: 通过优化库存水平、补货频次、入库方式、送达追踪四个维度提升FBA配送速度,拉动销量增长20%。
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
**链接**: https://www.cifnews.com/article/184908
**权重分**: 60.0
### 3. 一键诊断:四步提升亚马逊商品当日达比例,销量增长20%不是空谈
**发布时间**: 2026-04-07T00:00:00Z
**来源**: cifnews
**概要**: 通过优化库存水平、补货频次、入库方式、送达追踪四个维度提升FBA配送速度,拉动销量增长20%。
The file-level documentation and all implemented steps are exclusively about fetching, preparing, summarizing, and exporting cross-border e-commerce news. There is no code here for querying weather data, handling city/continent weather inputs, or generating weather outputs, creating a clear mismatch with the manifest description.
The skill advertises and documents capabilities that involve filesystem access, file generation, networking, and shell execution, but it declares no explicit tool scope or permission boundaries. In an agent environment, missing scope declarations can cause overbroad invocation privileges and make it harder to enforce least privilege or review what the skill is allowed to do.
The trigger text is broad enough to match generic requests for reports, weather, or e-commerce information, which increases the chance of unintended activation. In an agent setting, overbroad triggers can cause the skill to run in contexts the user did not intend, exposing local files, making network calls, or generating outputs outside the proper scope.
This markdown file presents all headings, metadata, and article summaries in Chinese and does not offer any language selection, opt-in, or justification for the locale restriction. Under the policy, forcing a specific language without user choice is a natural-language policy violation.
The manifest describes a skill for weather forecasts and cross-border e-commerce hotspot news, but this output includes multiple general business, automotive, trade, and cloud-product news items that are not clearly cross-border e-commerce hotspots. Examples include Amazon DevOps Agent, Tesla and BYD UK car sales, and general trade statistics, indicating broader news aggregation than the declared purpose.
The title and entire report are presented exclusively in Chinese, with no indication that language selection is optional or limited to a documented region-specific audience. Under the policy, forcing a specific language without user opt-in is a natural-language locale violation.
This JSON weather report uses Chinese locale-specific keys and labels throughout, such as continent names, city names, and day labels like "今天/明天/后天", while weather conditions remain partly in English. For a general weather data file, this imposes a specific language/locale without any visible opt-in or justification, which matches the language/locale policy violation criteria.
This codebase's user-facing natural language is fixed to Chinese in the module description and later output strings, with no indication that the user can opt into another language. The policy specifically flags language or locale constraints when a skill forces a specific language without user choice or documented justification.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
print("=" * 50)
print("Step 1: Python 抓取 enews + cifnews")
print("=" * 50)
result = subprocess.run(
[sys.executable, os.path.join(SCRIPT_DIR, "fetch_news.py")],
cwd=SCRIPT_DIR
)
TLS certificate validation is explicitly disabled by turning off hostname checks and setting verify_mode to CERT_NONE before fetching article content. This allows a man-in-the-middle attacker to spoof cifnews pages and feed tampered content into the LLM input and generated reports, undermining data integrity and potentially enabling prompt/content injection into downstream agent processing.
The printed instructions say the agent should read llm_input_*.json and then call update_json_with_llm_summaries(), and later the CLI example passes that same llm_input_path to --update-summaries. However, the actual handler expects a file shaped like {"date": "...", "summaries": {"url": "summary", ...}}, not the intermediate article-content input file, so the documentation actively misstates how the code should be used.
The instructions explicitly state that the AI Agent must generate summaries in Chinese ("50 字以内中文摘要"). This is a natural-language locale policy constraint, and the file does not provide an opt-in, alternative language option, or clear region-specific justification for forcing Chinese output.
The config uses Chinese region and city names throughout the user-facing data structure, such as continent keys and city labels, with no indication that the locale is optional or region-specific. This can violate the language/locale policy when a skill effectively forces a specific language without user opt-in.
This markdown file presents all headings, metadata, and content in Chinese only, with no indication that the skill is limited to Chinese-speaking users or that users can opt into that language. Under the policy, forcing a specific language without user choice can be a natural-language policy violation.
No suspicious patterns detected.