T09 · Insecure Skill Coding Practices
- Location
TECH-REQ.md:509- Finding
Unmasked Session Replay Can Transmit Sensitive User Data to Sentry
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent development workflow skill, but its bundled project guidance can lead agents to implement session replay and error analytics that expose user data without enough privacy controls.
Review before installing or using this skill in automated builds. Pin all CLI and dependency versions, run generators in a restricted environment without production secrets, and change the bundled telemetry guidance to disable or tightly mask session replay, avoid sending email or full domain objects to Sentry/PostHog, and add consent, opt-out, retention, and redaction requirements.
TECH-REQ.md:509Unmasked Session Replay Can Transmit Sensitive User Data to Sentry
CODING-STANDARDS.md:1390Sentry Examples Transmit User Email and Shopping-Cart Data Without Redaction
TECH-REQ.md:423Unpinned Latest Package Is Downloaded and Executed During Project Setup
Referenced artifact was not completely inspected
- [CODING-STANDARDS.md](./CODING-STANDARDS.md) — TypeScript/React/Convex patterns
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# .env.local
# ─────────────────────────────────────────────────────────────
# Core Application
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# .env.local
# ─────────────────────────────────────────────────────────────
# Core Application
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# .env.local
# ─────────────────────────────────────────────────────────────
# Core Application
The skill instructs users to run npx convex dev --once without pinning a specific package version. Unpinned npx execution can fetch and run whatever version is current at execution time, which creates supply-chain and reproducibility risk if a compromised or incompatible release is published.
This command again directs execution of npx convex dev without a pinned version. In a multi-agent workflow skill, such commands may be copied and executed automatically or semi-automatically, increasing the chance of running an unexpected upstream package version.
The deliverables section depends on generated artifacts from an unpinned npx convex workflow, which implicitly normalizes running a remote package without version control. That exposes users to upstream compromise, breaking changes, or environment-dependent behavior.
The QA phase includes npx convex dev --once without version pinning, repeating the same supply-chain risk later in the lifecycle. Because this appears in a final verification step, it is especially likely to be executed routinely by operators or agents, magnifying exposure.
The document requires PostHog analytics and session replay, including user identification via Clerk ID, but does not require any user-facing notice, consent flow, or privacy control. Session replay can capture sensitive user interactions and personal data, so omitting disclosure and consent requirements creates a real privacy and compliance risk, especially under GDPR/CCPA.
The Sentry replay configuration explicitly sets maskAllText: false and blockAllMedia: false, which increases the chance that user-entered content and on-screen sensitive data will be recorded during session/error replay. Because the specification does not pair this with disclosure, consent, or strict masking requirements, it meaningfully raises privacy exposure.
The example root layout sets lang="en", which is natural-language guidance prescribing an English locale. Under the policy, forcing a specific language/locale without user opt-in can be a violation, and the document does not note that this is optional or limited to an English-only product.
No suspicious patterns detected.