Back to skill

Security audit

cn-time-parser

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Chinese date and lunar-calendar parser with ordinary npm dependency risk but no evidence of hidden access, persistence, exfiltration, or destructive behavior.

Install only if you want Chinese natural-language and lunar-calendar date parsing. Review the npm dependencies and prefer lockfile-based installs for reproducibility, especially because date and holiday results depend on third-party packages.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (9)

Natural-Language Policy Violations

Medium
Confidence
83% confidence
Finding
The natural-language description states the skill recognizes Chinese time keywords and all examples are framed as Chinese-only behavior, but there is no explicit user opt-in or documented policy reason for restricting locale/language. Under the stated policy, forcing a specific language without user choice can be a locale-policy issue.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The trigger condition is broad enough to activate on many ordinary time-related requests, which can cause unnecessary tool invocation and over-collection of user input into the parsing script. In this skill, the script appears focused on local time parsing rather than privileged actions, so the main risk is scope creep, misrouting, and reliability degradation rather than direct compromise.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The user-facing natural-language strings describe the tool exclusively in Chinese and specify that it parses Chinese time keywords, but there is no opt-in, alternative locale, or explicit justification that the skill is intended only for a Chinese-language context. Under the stated policy, forcing a specific language without user choice is a natural-language policy concern.

Natural-Language Policy Violations

Low
Confidence
87% confidence
Finding
The package description states that the skill identifies Chinese time keywords, which constrains operation to a specific language/locale. There is no accompanying text indicating user choice, opt-in, or a documented justification for the locale restriction in this file.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"test": "node scripts/parse-time.js --query '今天'"
  },
  "dependencies": {
    "dayjs": "^1.11.10",
    "lunisolar": "^2.0.2",
    "argparse": "^2.0.1",
    "chinese-workday": "^1.11.0"
Confidence
88% confidence
Finding
Using caret ranges for dependencies allows npm to install newer compatible versions automatically, which can introduce vulnerable or malicious upstream releases through the supply chain. In a skill that relies entirely on third-party date and calendar libraries, this increases exposure because core functionality depends on external packages being trustworthy and stable.

Unpinned Dependencies

Low
Category
Supply Chain
Content
},
  "dependencies": {
    "dayjs": "^1.11.10",
    "lunisolar": "^2.0.2",
    "argparse": "^2.0.1",
    "chinese-workday": "^1.11.0"
  },
Confidence
88% confidence
Finding
The lunisolar dependency is version-ranged with a caret, so future installs may resolve to different package contents without code changes in this repository. That creates a software supply-chain risk if an upstream release is compromised or introduces unsafe behavior, especially since lunar-date logic is central to the skill's functionality.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"dependencies": {
    "dayjs": "^1.11.10",
    "lunisolar": "^2.0.2",
    "argparse": "^2.0.1",
    "chinese-workday": "^1.11.0"
  },
  "keywords": ["time", "parser", "chinese", "lunar"],
Confidence
88% confidence
Finding
An unpinned argparse dependency permits silently changing transitive code at install time, which is a classic supply-chain weakness even if the package is common and low risk. While package.json alone does not show active exploitation, reproducibility and trust are weakened because installs are not deterministic.

Unpinned Dependencies

Low
Category
Supply Chain
Content
"dayjs": "^1.11.10",
    "lunisolar": "^2.0.2",
    "argparse": "^2.0.1",
    "chinese-workday": "^1.11.0"
  },
  "keywords": ["time", "parser", "chinese", "lunar"],
  "author": "",
Confidence
88% confidence
Finding
The chinese-workday package is unpinned, so future installs may consume altered upstream code unexpectedly. Because this skill uses the library for holiday and workday decisions, compromise or regression in that dependency could directly affect output integrity or introduce malicious install/runtime behavior.

Natural-Language Policy Violations

Low
Confidence
85% confidence
Finding
This markdown file presents all instructions, examples, and output descriptions exclusively in Chinese. Under the stated policy, forcing a specific language without user opt-in can be a natural-language policy violation unless the locale restriction is clearly documented and justified.

Static analysis

No suspicious patterns detected.