T09 · Insecure Skill Coding Practices
- Location
SKILL.md:99- Finding
Malformed step and weekday fields can terminate cron parsing
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a simple cron parsing helper with robustness flaws, but no hidden access, persistence, exfiltration, or privilege-seeking behavior.
This skill is reasonable to install for lightweight cron-expression assistance. Do not rely on its embedded parser as-is for production scheduling, policy enforcement, or untrusted public input until validation is hardened, invalid inputs are handled safely, and the supported cron syntax is documented accurately.
SKILL.md:99Malformed step and weekday fields can terminate cron parsing
SKILL.md:102Unbounded range endpoints permit invalid schedules and computational denial of service
The manifest description says the skill supports both standard and extended syntax, which implies broader cron compatibility. However, the code explicitly rejects anything other than 5 fields at L057-L059 and only implements limited matching/translation logic for simple wildcards, ranges, lists, and steps, with no support for common extended forms such as seconds/year fields or special operators like L, W, #, or ?.
The listed trigger phrases "cron / 解析cron / 定时表达式" are not scoped with clear invocation constraints or negative examples. In particular, "定时表达式" is a generic phrase that could overlap with ordinary discussion of schedules or expressions, increasing the chance of unintended skill activation.
The validator accepts malformed ranges and step expressions without enforcing bounds or semantic correctness, so invalid schedules may be treated as valid. In scheduling or automation contexts, this can cause missed jobs, unexpected execution times, or bypass of policy checks that rely on this validator as a gatekeeper.
The skill metadata and headings indicate a Chinese-facing skill, but the embedded implementation returns English weekday names and natural-language descriptions such as "Every minute" and "At HH:MM". This creates an implicit language policy inconsistency without stating whether output language is configurable or chosen by the user.