Before you contribute
Check existing templates
Search the nuclei-templates repository to avoid duplicates:
Verify detection accuracy
Test your template against:
- Known vulnerable targets (true positives)
- Safe targets (no false positives)
- Edge cases (redirects, errors, etc.)
Review contribution guidelines
Read the project’s CONTRIBUTING.md:
Contribution requirements
Mandatory elements
All contributed templates must include:- Template metadata
- References
- Classification
- Metadata
Complete
info section with all required fields:Quality standards
✓ Template validates successfully (
nuclei -validate -t template.yaml)✓ Follows best practices for accuracy✓ Uses multiple matchers to reduce false positives✓ Includes negative matchers for common error patterns✓ Has descriptive template ID and name✓ Contains comprehensive description✓ Uses appropriate severity level✓ Minimizes number of requests (documented in max-request)✓ Includes relevant tags for categorization✓ Has been tested against real targetsContribution workflow
1. Fork and clone
2. Create a branch
As noted inCONTRIBUTING.md, always work from the main branch:
For Nuclei core contributions (not templates), use the
dev branch as the base.3. Add your template
Place templates in the appropriate directory:- CVE templates
- Generic vulnerabilities
- Exposures
- Misconfigurations
Place in
cves/YEAR/CVE-YEAR-NUMBER.yaml:4. Validate template
Before committing, validate your template:5. Commit changes
Follow good commit message practices:6. Push and create pull request
Navigate to repository
Pull request guidelines
PR description template
Your pull request should include:Required PR elements
FromCONTRIBUTING.md:
✓ Link to corresponding issue (create one if it doesn’t exist)✓ Context in PR description for reviewers✓ Example of running the template (before/after if applicable)✓ Steps for functional testing or replication✓ Unit tests for new features (if contributing code)
Example PR description
Additional Context
Uses interactsh for OOB verification to confirm exploitation rather than just detecting vulnerable versions.pkg/templates/template_sign.go:59-88:
- Code templates are parsed with file imports resolved
- Signatures include content of referenced files
- Re-signing requires original signer’s certificate
Sensitive information
Use variables and extractors appropriately:Rate limiting and ethics
Templates should respect target systems and follow responsible disclosure principles.
- Minimize number of requests
- Use appropriate delays for sensitive systems
- Don’t perform destructive operations
- Follow responsible disclosure timelines
Code style and standards
FromCONTRIBUTING.md:
YAML formatting
- Use 2-space indentation (no tabs)
- Use lowercase for template IDs
- Use hyphens in multi-word IDs
- Keep lines under 120 characters when possible
Naming conventions
Tag conventions
Use consistent tags for categorization:- Technology:
apache,nginx,wordpress,jenkins - Vulnerability type:
sqli,xss,rce,lfi,ssrf - Category:
exposure,misconfiguration,takeover - Impact:
disclosure,injection,auth-bypass
Development workflow
Running tests
Before submitting, run validation checks:CONTRIBUTING.md):
Integration testing
Test templates in realistic scenarios:Review process
What reviewers look for
Accuracy
Accuracy
- No false positives on safe targets
- Correctly identifies vulnerable instances
- Matchers are specific and accurate
Completeness
Completeness
- All required metadata present
- Proper references and classification
- Clear description of detection logic
Quality
Quality
- Follows best practices
- Minimal requests required
- Proper error handling
Security
Security
- No destructive operations
- Respects responsible disclosure
- No sensitive data exposed
Style
Style
- Consistent formatting
- Follows naming conventions
- Proper indentation and syntax
Responding to feedback
When reviewers request changes:After merge
Once your template is merged:Getting help
If you need assistance:Discord community
Join the ProjectDiscovery Discord for real-time help
GitHub discussions
Ask questions in GitHub Discussions
Template examples
Browse existing templates for reference
Documentation
Review comprehensive template documentation
Recognition
Contributors are recognized in:- Template author field
- GitHub contribution graphs
- ProjectDiscovery Hall of Fame
- Community acknowledgments
Your contributions help secure thousands of applications and infrastructure worldwide.
Next steps
Best practices
Master template writing best practices
Template signing
Learn about signing code protocol templates
Validation
Understand template validation
Protocol reference
Explore protocol-specific features