Back to skill

Security audit

PulseFlow

Security checks for vulnerabilities and agentic risk

Overview

PulseFlow is a disclosed local worklog/dashboard skill whose file writes, agent logging rules, usage queries, and optional summary crons fit its stated purpose.

Install only in a workspace where you are comfortable keeping AI work summaries and task details in local logs/history. Before enabling AGENTS.md rule installation or summary crons, review the generated dry run, use trusted internal delivery targets, and set your own timezone, paths, agent names, and retention expectations.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (39)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 51)May include surrounding context.

md
11. If the installation explicitly wants scheduled summaries, fill `notifications.summaryCrons` in config and run `scripts/install_summary_crons.js`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 138)May include surrounding context.

md
11. If the installation explicitly wants scheduled summaries, fill `notifications.summaryCrons` in config and run `scripts/install_summary_crons.js`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 136)May include surrounding context.

md
- `scripts/append_ai_log.js` — appends one JSONL AI work record to today's per-agent log

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 137)May include surrounding context.

md
- `scripts/install_agent_log_rules.js` — installs or updates managed AI log rule blocks in configured `AGENTS.md` files

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 139)May include surrounding context.

md
- `scripts/init_system.js` — creates missing dashboard, history, config, state files, today's empty AI logs, and installs managed agent log rules when configure

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 140)May include surrounding context.

md
- `scripts/repair_system.js` — repairs missing runtime files without overwriting healthy ones

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 141)May include surrounding context.

md
- `scripts/rollover_now.js` — daily rollover script; archives yesterday's human done + AI snapshot into a week-grouped month file, updates that week's `AI Usage

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 142)May include surrounding context.

md
- `scripts/sync_ai_done.js` — deterministic sync script for heartbeat or manual refresh; reads config, queries weekly usage, scans today's agent JSONL logs, reb

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 143)May include surrounding context.

md
- `scripts/validate_system.js` — runs a local end-to-end validation covering init, sync, repair, rollover, and rollover idempotency

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The README encourages installation of cron-based summaries and previous-day reports that may send or expose work summaries to deployment-specific delivery targets, but it does not explicitly warn that NOW.md content, task details, and AI activity summaries can contain sensitive business or personal information. In a work-tracking skill, that omission increases the chance of accidental data disclosure through email, chat, webhooks, or other notification channels configured by operators.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The only concrete task example uses Chinese text, and the document also recommends an Asia/Shanghai scheduler, which together suggest a locale-specific operating assumption. The skill does not explicitly offer a language choice or explain that it is intended only for a China-specific environment, so this can conflict with organizational language/locale policy requirements.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The example/schema text specifies the task field as "一句话描述本次完成的工作," which requires a one-sentence description in Chinese. This imposes a specific language expectation without user opt-in or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The configuration sets the top-level timezone to "Asia/Shanghai" and repeats the same locale under notifications, but the file provides no natural-language indication that this region-specific setting is optional, user-selected, or justified by a region-specific use case. This can violate language/locale policy by implicitly forcing one locale on all users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The notifications.summaryCrons.timezone field again fixes behavior to "Asia/Shanghai" with no indication that users can or should select another timezone. Repeating the locale-specific setting in scheduling logic increases the chance that the skill operates under an unintended regional assumption.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The template begins in Chinese and all section labels and style instructions are written as Chinese output requirements, but it does not provide a user opt-in or alternative language option. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless the locale limitation is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill instructions are entirely in Chinese and specify the template/output structure in that language, with no indication that users can choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The checklist expects AI DONE TODAY to show only - 暂无, which imposes a specific language output requirement. There is no indication that the user can choose the language or that the locale is intentionally constrained for a region-specific use case.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The instruction hard-codes execution at 00:05 Asia/Shanghai, which imposes a specific locale/time-zone policy in natural language. The file does not offer a user opt-in or explain that the skill is limited to a China-specific context, so this appears to violate the language/locale policy requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The managed block inserted into AGENTS.md is written entirely in Chinese and includes required task text such as '一句话描述本次完成的工作', which imposes a specific language on downstream agent behavior. There is no indication of user choice or documented reason for this locale constraint in the file.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The file sets a default timezone of 'Asia/Shanghai', which imposes a specific locale setting unless the user overrides it via environment configuration. Under the stated policy, forcing a language or locale without explicit user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The generated default markdown ends with the Chinese text '暂无', which forces a specific language in skill-produced user-facing content. The file does not indicate that the user can choose the output language or that the Chinese text is limited to a justified regional context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The fallback table row uses the literal Chinese text '暂无', which imposes a specific language in generated output regardless of user preference or locale. This is a natural-language policy issue because the file provides no option to choose language or justify a fixed locale.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script defaults to the Asia/Shanghai locale setting when no timezone argument or environment variable is provided. This imposes a specific locale choice on all users without opt-in, which matches the policy category for language/locale constraints.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This code creates and writes history files via writeText, and later also rewrites the dashboard and rollover state. In this file there is no confirmation prompt, warning comment, or docstring explaining that running the script will modify user worklog files, so the write behavior is not disclosed here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
61% confidence
Finding

The document explicitly exposes English and Chinese sections via the language switch, which can be read as constraining the skill documentation to specific languages without explaining the limitation. Under the language/locale policy rule, fixed language choices should either be optionalized or clearly documented as an intentional scope decision.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/install_summary_crons.js:120

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/validate_system.js:12