T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:223- Finding
Cross-Project Context Disclosure Through Automatic Snapshot Fallback
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is mostly a disclosed project-context memory tool, but its documented fallback and project naming rules can expose or mix notes from unrelated projects.
Review before installing. Prefer project-local installation and project-local storage, avoid using init in empty directories until cross-project fallback is removed, and do not rely on basename-only project separation for sensitive work. Review any generated profile rules before keeping or exporting them to AGENTS.md, and inspect the optional hook before enabling it in Claude settings.
SKILL.md:223Cross-Project Context Disclosure Through Automatic Snapshot Fallback
hooks/wdp-hook.sh:11Project Basename Collisions Can Mix Context Between Unrelated Projects
SKILL.md:236Repository-Controlled Rules Can Be Persisted as Authoritative Agent Memory
Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
Plugin install (automatic): installing wdp-ai-skills as a plugin auto-registers hooks via hooks/hooks.json declared in .claude-plugin/plugin.json (defaults to the Chinese script skills/wdp-ctx/hooks/wdp-hook.sh; for English reminders, use the plain-skill install below).
Plain-skill install (manual): copy hooks/wdp-hook.sh to ~/.claude/skills/wdp-ctx-en/hooks/, then add four entries to the hooks block of ~/.claude/settings.json (or project .claude/settings.local.json):
{
Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
Plugin install (automatic): installing wdp-ai-skills as a plugin auto-registers hooks via hooks/hooks.json declared in .claude-plugin/plugin.json (defaults to the Chinese script skills/wdp-ctx/hooks/wdp-hook.sh; for English reminders, use the plain-skill install below).
Plain-skill install (manual): copy hooks/wdp-hook.sh to ~/.claude/skills/wdp-ctx-en/hooks/, then add four entries to the hooks block of ~/.claude/settings.json (or project .claude/settings.local.json):
{
The init flow instructs the agent to fall back to another project's latest snapshot when the target project directory is empty, then summarize that data into the current session. This can disclose sensitive architecture notes, work state, decisions, or operational details from an unrelated project without an explicit user request or authorization boundary.
The exception-handling section repeats the same cross-project fallback behavior, normalizing disclosure of another project's stored context as a recovery path. Because snapshots are meant to preserve rich project memory, exposing them across projects can leak proprietary plans, file paths, operational details, and other sensitive internal information.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Copy skills/wdp-ctx-en into ~/.claude/skills/:
mkdir -p ~/.claude/skills
cp -r skills/wdp-ctx-en ~/.claude/skills/
The README promotes user-level installation under ~/.claude/skills and describes cross-session persistence for all projects, which increases blast radius if the skill or its optional hooks are later modified maliciously or behave unexpectedly. Because the skill stores project context and can be active across sessions, persistence at the user scope makes mistakes or compromise more durable and broadly applicable.
Copy skills/wdp-ctx-en into ~/.claude/skills/:
mkdir -p ~/.claude/skills
cp -r skills/wdp-ctx-en ~/.claude/skills/
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
- User-level: `~/.claude/wdp/summaries/`
- Resolution: project-level first, user-level fallback.
> **v1.1 change**: the storage root moved out of the skill install dir (`.claude/skills/wdp-ctx-en/summaries/`) into the project's own `.claude/wdp/` — **reinstalling the skill no longer wipes data**. Skill code (`skills/`) and data (`.claude/wdp/`) are fully separated.
## Commit policy (git)
The description and heading state this is an "English variant" and the command name itself is /wdp-ctx-en, which imposes a language/locale constraint in the skill's natural-language interface. The file does not present this as an optional user choice within the skill or justify it as a region-specific requirement.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
## Storage root (shared with wdp-ctx)
**Data is separate from skill code**: skills install into `.claude/skills/`, data lives in the project-owned `.claude/wdp/` directory, so reinstalling/upgrading the skill never touches any snapshot.
1. Project-level: `<project path>/.claude/wdp/summaries/`
2. User-level: `~/.claude/wdp/summaries/`
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
# wdp session hooks (SessionStart / PreCompact)
# Usage: bash wdp-hook.sh <load|load-after-clear|load-after-compact|save-precompact>
# Behavior: emits a systemMessage reminder only when the current project already has wdp snapshots; otherwise exits silently (exit 0).
# Reminders only prompt, never auto-execute; there is no before-/clear hook (the CLI offers none), so the fallback is a reminder in the new session after the clear.
set -u
event="${1:-}"
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
# wdp session hooks (SessionStart / PreCompact)
# Usage: bash wdp-hook.sh <load|load-after-clear|load-after-compact|save-precompact>
# Behavior: emits a systemMessage reminder only when the current project already has wdp snapshots; otherwise exits silently (exit 0).
# Reminders only prompt, never auto-execute; there is no before-/clear hook (the CLI offers none), so the fallback is a reminder in the new session after the clear.
set -u
event="${1:-}"
The text states that this is the English variant and that Chinese users should install a different skill. This imposes a language-specific constraint without presenting user choice or documenting a compliance-based justification in this file.
The comments and emitted system messages repeatedly direct the user to use /wdp-ctx-en and present all guidance in English, which indicates a fixed language/locale assumption. The file does not offer user opt-in for language selection or explain why English is required, so this is a natural-language policy concern under the locale/language rule.