T09 · Insecure Skill Coding Practices
- Location
generator.py:119- Finding
Plaintext arXiv Metadata Retrieval Enables Generated Markdown Content Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill coherently fetches public paper metadata and generates Chinese OFR paper reports, with disclosed optional Telegram sending and no evidence of hidden persistence, credential theft, destructive behavior, or agent hijacking.
Install only if you want a Chinese OFR-focused paper digest that contacts Hugging Face and arXiv. Configure TELEGRAM_TARGET deliberately before using run_and_send.sh or any cron job, because it can post generated report content to that Telegram target without an interactive confirmation. Review generated Markdown links if report integrity matters, since arXiv metadata is fetched over HTTP and titles are not escaped before rendering.
generator.py:119Plaintext arXiv Metadata Retrieval Enables Generated Markdown Content Injection
The skill's natural-language instructions and operational guidance are presented entirely in Chinese, which effectively forces a specific language on users. The policy allows locale constraints only when users are given a choice or the restriction is clearly documented and justified, neither of which appears here.
The module description and all user-facing output strings indicate the skill is tailored to Chinese-language reporting ('OFR 定制版', '科研日报', Chinese status messages) with no option for users to select another language. This is a natural-language locale constraint that is not presented as opt-in or justified as a region-specific compliance requirement.
The script automatically transmits generated content to an external Telegram recipient specified by environment variable, with no interactive confirmation, disclosure at send time, or restriction on destination. Even though the message content is derived from local markdown rather than obvious secrets, this creates an exfiltration/channel-abuse risk because the skill can send data off-host to any configured target.
The header comment describes the script as automatically generating a PDF recommendation report. In reality, the script defaults to fetching Hugging Face papers, extracting metadata, sorting it, and printing a Markdown output path; PDF generation only occurs conditionally when the --pdf flag is supplied and is delegated to another script.
The script reads HF_DAILY_PAPERS_PROXY and sets HTTP_PROXY/HTTPS_PROXY automatically, affecting how external requests are routed. There is no user-facing notice that proxy settings may be applied to network traffic, which is relevant to privacy and system behavior.
The function fetches data from huggingface.co over the network, which transmits system-originated requests externally. Although there are progress print statements, they only describe fetching activity and do not clearly warn users that the skill contacts third-party services and may disclose network metadata such as IP/proxy usage.
The inline comment # PDF (optional) and the --pdf flag handling imply that invoking this option will produce a PDF output. However, the implementation merely imports FPDF and then states that PDF generation is not implemented, which directly contradicts the advertised behavior of that code path.
This plain-text recommendation file uses Chinese headings and labels throughout, such as the title and section names, which can impose a specific language on users. Under the policy criteria, forcing a language without user opt-in or documented justification is a natural-language policy concern.
This shell script includes natural-language comments and console output in Chinese, such as the description on L03 and status message on L19, but provides no indication that the skill is intentionally region-specific or that users may choose another language. That creates a language/locale policy concern under the rule for forced language without opt-in.
No suspicious patterns detected.