home / skills / sugarforever / 01coder-agent-skills / nextjs-security-scan

nextjs-security-scan skill

/skills/nextjs-security-scan

This skill performs a security scan for Next.js projects, identifying OWASP risks, secrets exposure, and dependency CVEs to deliver actionable findings.

npx playbooks add skill sugarforever/01coder-agent-skills --skill nextjs-security-scan

Review the files below or copy the command above to add this skill to your agents.

Files (10)
SKILL.md
5.3 KB
---
name: "Next.js Security Scan"
description: "Comprehensive security vulnerability scanner for Next.js and TypeScript/JavaScript projects. Detects OWASP Top 10 vulnerabilities, XSS, injection flaws, authentication issues, hardcoded secrets, and Next.js-specific security problems. Audits dependencies for known CVEs and generates actionable security reports."
---

# Next.js Security Scan Skill

This skill enables comprehensive security scanning of Next.js and TypeScript/JavaScript projects based on OWASP guidelines and industry best practices.

## When to Use This Skill

- Security audits of Next.js applications
- Code review for security vulnerabilities
- Pre-deployment security checks
- Dependency vulnerability assessment
- Detecting hardcoded secrets and credentials

## Scan Types

### 1. Quick Scan
Fast scan focusing on critical vulnerabilities:
- Hardcoded secrets and API keys
- Dangerous function usage (`dangerouslySetInnerHTML`, `eval`)
- Missing authentication in Server Actions
- Known vulnerable dependencies

### 2. Full Scan
Comprehensive security assessment covering:
- All OWASP Top 10:2025 categories
- XSS vulnerability patterns
- Injection vulnerabilities (SQL, NoSQL, Command)
- Authentication and authorization flaws
- Security misconfigurations
- Cryptographic failures
- Next.js-specific vulnerabilities
- Dependency audit (CVE check)
- Environment variable exposure

### 3. Targeted Scan
Focus on specific vulnerability categories:
- `--xss` - Cross-site scripting patterns
- `--injection` - SQL/NoSQL/Command injection
- `--auth` - Authentication/authorization issues
- `--secrets` - Hardcoded credentials
- `--deps` - Dependency vulnerabilities
- `--nextjs` - Next.js specific issues

## Scan Procedure

### Step 1: Project Discovery
1. Identify project type (Next.js App Router, Pages Router, or plain React)
2. Locate configuration files (`next.config.js`, `package.json`, `.env*`)
3. Map the codebase structure

### Step 2: Dependency Audit
Run the dependency audit script:
```bash
./scripts/dependency-audit.sh
```
Or manually:
```bash
npm audit --json
# or
yarn audit --json
```

### Step 3: Secret Scanning
Scan for hardcoded secrets:
```bash
python scripts/secret-scanner.py /path/to/project
```

**Important: Environment File Handling**
- By default, real `.env` files are **SKIPPED** (`.env`, `.env.local`, `.env.production`, etc.)
- These files contain actual secrets and should not be in version control
- Only `.env.example` and `.env.template` files are analyzed for documentation quality
- Use `--include-env-files` flag only if explicitly requested by user

The scanner will:
1. Scan source code for hardcoded secrets
2. Analyze `.env.example` templates to check:
   - Which sensitive variables are documented
   - Whether variables have descriptions (comments)
   - If placeholder values look like real secrets
   - Suggestions for missing common variables

### Step 4: Pattern Analysis
For each file in the codebase, check against patterns in:
- `references/xss-patterns.md` - XSS vulnerabilities
- `references/injection-patterns.md` - Injection flaws
- `references/auth-vulnerabilities.md` - Auth issues
- `references/nextjs-specific.md` - Next.js vulnerabilities

### Step 5: Report Generation
Generate a security report using:
- `assets/report-template.md` - Report structure

## Severity Classification

| Severity | Description | Action Required |
|----------|-------------|-----------------|
| CRITICAL | Exploitable vulnerability with severe impact | Immediate fix required |
| HIGH | Significant security risk | Fix before deployment |
| MEDIUM | Potential security issue | Fix in next release |
| LOW | Minor security concern | Consider fixing |
| INFO | Security best practice suggestion | Optional improvement |

## Key Files to Scan

### Always Check
- `**/*.ts`, `**/*.tsx`, `**/*.js`, `**/*.jsx` - Source code
- `next.config.js`, `next.config.mjs` - Next.js configuration
- `package.json`, `package-lock.json` - Dependencies
- `middleware.ts`, `middleware.js` - Middleware security

### Environment Files
- `.env.example`, `.env.template` - **SCAN** for template analysis
- `.env`, `.env.local`, `.env.production` - **SKIP** by default (contain real secrets)

**Note:** Real `.env` files should never be committed to version control. The scanner analyzes `.env.example` templates to ensure proper documentation of required variables.

### High Priority Locations
- `app/api/**/*` - API routes (App Router)
- `pages/api/**/*` - API routes (Pages Router)
- `**/actions.ts`, `**/*-actions.ts` - Server Actions
- `lib/auth*`, `utils/auth*` - Authentication code
- `**/middleware.*` - Middleware files

## Output Format

Findings should be reported as:

```
[SEVERITY] Category: Description
  File: path/to/file.ts:lineNumber
  Code: <relevant code snippet>
  Risk: <explanation of the security risk>
  Fix: <recommended remediation>
```

## Integration with CI/CD

This skill can generate output compatible with:
- GitHub Security Advisories
- SARIF format for GitHub Code Scanning
- JSON for custom integrations

## References

Load additional context as needed:
- `references/owasp-top-10.md` - OWASP Top 10:2025 quick reference
- `references/xss-patterns.md` - XSS detection patterns
- `references/injection-patterns.md` - Injection vulnerability patterns
- `references/auth-vulnerabilities.md` - Authentication security patterns
- `references/nextjs-specific.md` - Next.js specific vulnerabilities and CVEs

Overview

This skill performs comprehensive security scanning for Next.js and TypeScript/JavaScript projects, producing actionable findings prioritized by severity. It detects OWASP Top 10 issues, XSS and injection patterns, authentication flaws, hardcoded secrets, dependency CVEs, and Next.js-specific misconfigurations. Reports are formatted for CI/CD ingestion and developer remediation.

How this skill works

The scanner discovers project type and important files (Next.js config, package manifests, env templates, middleware, API routes) and maps the codebase. It runs a dependency audit, secret scanning (skipping real .env files by default), pattern analysis against curated vulnerability references, and classifies findings by severity. The tool outputs human-readable findings and machine-friendly formats (SARIF/JSON) with code snippets, risk explanations, and remediation steps.

When to use it

  • Pre-deployment security checks for Next.js applications
  • Code review or security audit of Next.js / React codebases
  • Dependency vulnerability and CVE assessments before releases
  • Detecting hardcoded secrets and poorly documented env templates
  • Targeted scans for XSS, injection, auth, or Next.js-specific issues

Best practices

  • Run a Quick Scan in CI for every PR and a Full Scan on main builds
  • Keep real .env files out of version control; scan only .env.example or templates by default
  • Use targeted flags (e.g., --xss, --deps) for focused assessments in code review
  • Prioritize CRITICAL and HIGH findings for immediate fixes; track MEDIUM/LOW in backlog
  • Integrate SARIF/JSON outputs into code scanning and ticketing workflows

Example use cases

  • Automated PR gate: block merge if Critical or High issues are found
  • Security review sprint: run Full Scan across monorepo to prioritize fixes
  • Secret hygiene check: scan for hardcoded keys and improve .env.example docs
  • Dependency sweep: detect known CVEs and generate upgrade suggestions
  • Targeted XSS audit: run --xss to find and remediate client-side rendering risks

FAQ

Does the scanner read real .env files by default?

No. Real .env files are skipped by default to avoid exposing secrets; only templates like .env.example are analyzed unless you explicitly enable env scanning.

What formats can the report be exported to?

Reports can be generated as human-readable markdown, SARIF for GitHub Code Scanning, or JSON for custom CI/CD integrations.