T08 · Insecure Dependencies
- Location
scripts/frontend_scaffolder.py:642- Finding
Generated Feature Dependencies Use the Mutable latest Version
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a frontend scaffolding and guidance skill with some examples users should review carefully, but I found no hidden exfiltration, persistence, or deceptive behavior.
Use this skill in a normal project workspace, review generated files before keeping them, and use dry-run when possible. Before running npm install, pin or review dependency versions instead of accepting generated "latest" entries. Do not copy the documented auth-token localStorage pattern into production; prefer server-managed HttpOnly secure cookies or keep sensitive tokens out of persistent browser storage.
scripts/frontend_scaffolder.py:642Generated Feature Dependencies Use the Mutable latest Version
references/react_patterns.md:403Authentication Token Is Persisted in Browser-Accessible Storage
The code clearly supports one subset of the declared description: scaffolding frontend projects for Next.js or React with TypeScript/Tailwind and optional modules. However, the declared purpose is materially broader, claiming optimization, review, bundle analysis, accessibility work, and performance-focused Next.js guidance. None of those capabilities are present in the supplied code chunk. The actual primary purpose is a filesystem-based project generator, not a multifunction frontend optimization/review skill. There is no evidence of source analysis, bundle inspection, accessibility auditing, or code review behavior.
The snippet uses dangerouslySetInnerHTML, which is inherently risky because any sanitization misconfiguration, library bypass, or future relaxation of the allow-list could reintroduce XSS. Although DOMPurify is used and the example is clearly intended as a safe pattern, this still teaches a hazardous API and could become exploitable if copied without strict controls.
ALLOWED_ATTR: ['href'], });
return <div dangerouslySetInnerHTML={{ __html: sanitized }} />; }
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
build/
# Environment
.env
.env.local
.env.*.local
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Environment
.env
.env.local
.env.*.local
# IDE
The skill instructs the agent to read references and run local Python scripts, which implies file access and execution-related capability, but it does not declare any explicit tool scope such as allowed tools or permissions. That creates an authorization ambiguity where an agent may use broader file/environment access than reviewers or policy expect, increasing the chance of overreach into unintended files or contexts.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Cache indefinitely (default for static)
fetch('https://api.example.com/data');
// No cache - always fresh
fetch('https://api.example.com/data', { cache: 'no-store' });
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Cache indefinitely (default for static)
fetch('https://api.example.com/data');
// No cache - always fresh
fetch('https://api.example.com/data', { cache: 'no-store' });
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Cache indefinitely (default for static)
fetch('https://api.example.com/data');
// No cache - always fresh
fetch('https://api.example.com/data', { cache: 'no-store' });
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Cache indefinitely (default for static)
fetch('https://api.example.com/data');
// No cache - always fresh
fetch('https://api.example.com/data', { cache: 'no-store' });
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Cache indefinitely (default for static)
fetch('https://api.example.com/data');
// No cache - always fresh
fetch('https://api.example.com/data', { cache: 'no-store' });
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
{/* Load analytics after page is interactive */}
<Script
src="https://analytics.example.com/script.js"
strategy="afterInteractive"
/>
The Zustand example persists an authentication store containing a user object and token via the persist middleware to browser storage without any warning or safer storage guidance. In a frontend reference used for scaffolding, this can lead developers to store bearer tokens in localStorage, increasing exposure to token theft through XSS, browser extensions, shared-device access, or other client-side compromise.
The example sets <html lang="en">, which enforces a specific language/locale in the rendered document. The guide does not mention that this is only illustrative, provide alternatives, or note when a different locale should be used, so it can normalize a fixed-language default without user opt-in.
This code performs multiple filesystem writes via write_text() and creates directories via mkdir(), but it does not present any confirmation prompt or explicit caution that existing files may be created or overwritten. Although the script's purpose is generation, the user-facing help text and module docstring do not clearly warn that running it will directly modify files on disk.
This code embeds subsets: ['latin'] and <html lang="en"> into generated frontend files, which forces English/Latin defaults in the scaffolded output. The skill does not offer a language/locale option or document that this is intentionally limited to English-only projects.
The formatDate helper uses new Intl.DateTimeFormat('en-US', ...), which bakes a specific locale into all generated projects. This is a natural-language/locale policy issue because users are not given any choice or warning about the forced locale behavior.
Detected: suspicious.env_credential_access