nuclei
v3.11.1Nuclei is a fast, customizable vulnerability scanner powered by the global security community and built on a simple YAML-based DSL, enabling collaboration to tackle trending vulnerabilities on the internet. It helps you find vulnerabilities in your applications, APIs, networks, DNS, and cloud configurations.
- Maintenance
- Active448 commits in 3 months · bus factor 3
- License
- MITPermissive · OSI-approved
- Security
- 11 advisories4 high, 7 medium · Scorecard 6.4/10
- Supported versions
- No scheduleendoflife.date does not track this project
32.9k stars · 4k forks · 106 open issues · last release 3 months ago · data checked 4 hours ago
Breaking changes
What to check before upgrading, taken from the notes of the last 30 releases.
- v3.11.0Jul 6, 2026
⚠️ Breaking Change: Signed templates required for JavaScript protocol
Starting with v3.11.0, custom templates that use the
javascript:protocol must be digitally signed before Nuclei will load or execute them. Unsigned JavaScript templates are now skipped during template loading and when referenced from workflows.Why this change
This release continues the security hardening started in v3.10.0 (sandbox enforcement, network policy checks, stricter code-template handling, YAML include protections, and related fixes in #7469). The JavaScript protocol exposes Go-backed modules through Nuclei's JS runtime, which significantly increases attack surface compared with request-only templates. Requiring signatures brings JavaScript templates in line with the existing protections for code-protocol templates.
Who is affected
| Scenario | Impact |
|----------|--------|
| Default scans using nuclei-templates | No action needed - official templates are pre-signed and verified with ProjectDiscovery's public key |
| Custom/private templates using
javascript:| Action required - sign templates before use || Templates using only
flow:(e.g.flow: http(1)) withoutjavascript:| No change || Workflows referencing unsigned JavaScript sub-templates | Those sub-templates are skipped |
What to do
Sign your custom templates with:
nuclei -sign -t /path/to/your-template.yamlSee the Template Signing documentation for key generation, verification, and signing templates that reference external JavaScript or code files.
---
- v3.3.6Nov 21, 2024
⚠️ Breaking Changes:
- The
-enable-self-containedor-escflag is now required to load self-contained templates. - The
-fileflag must be used to enable loading file templates.
- The
Release history
All releases on GitHubWhat's Changed
🎉 New Features
- Improving lua script with args and values by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/6561
🐞 Bug Fixes
- feat(lib): reuse metadata cache across thread-safe scans by @dwisiswant0 in https://github.com/projectdiscovery/nuclei/pull/7608
🔨 Maintenance
- chore(deps): bump the modules group with 5 updates by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7528
- chore(deps): bump the modules group with 5 updates by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7532
- chore(deps): bump crate-ci/typos from 1.47.2 to 1.48.0 in the workflows group across 1 directory by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7529
- chore(deps): bump the modules group with 3 updates by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7554
- chore(deps): bump the modules group with 5 updates by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7615
- chore(deps): bump the modules group with 3 updates by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7634
- chore(deps): bump actions/stale from 10 to 11 in the workflows group by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7635
Other Changes
- gRPC JavaScript library by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7527
- chore(deps): bump the go_modules group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7533
- fix(signer): avoid deprecated ECDSA coordinate access by @dwisiswant0 in https://github.com/projectdiscovery/nuclei/pull/7537
- feat(headless): render element locators before lookup by @dwisiswant0 in https://github.com/projectdiscovery/nuclei/pull/7549
- Guard against a negative regex extractor group to avoid an index-out-of-range panic by @arpitjain099 in https://github.com/projectdiscovery/nuclei/pull/7531
- fix(fuzz): preserve form parameters with shared prefixes by @james-yusuke in https://github.com/projectdiscovery/nuclei/pull/7515
- Fix raw HTTP parser panic on single-LF request body by @zainnadeem786 in https://github.com/projectdiscovery/nuclei/pull/7525
- chore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7555
- fix(progress): avoid panic for disabled stats interval by @james-yusuke in https://github.com/projectdiscovery/nuclei/pull/7557
- Fix case-insensitive
wordmatcher missing dynamic (rendered) values by @Synvoya in https://github.com/projectdiscovery/nuclei/pull/7523 - fix: stop busy-spinning hang monitor by @james-yusuke in https://github.com/projectdiscovery/nuclei/pull/7559
- feat(protocols): add duration fields to other events by @dwisiswant0 in https://github.com/projectdiscovery/nuclei/pull/7428
- refactor: replace Split in loops with more efficient SplitSeq by @stringsbuilder in https://github.com/projectdiscovery/nuclei/pull/7278
- fix(index): limit include-tags to matching tag exclusions by @dwisiswant0 in https://github.com/projectdiscovery/nuclei/pull/7536
- Add DNSSEC DNS record types by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7564
- chore(deps): bump google.golang.org/grpc from 1.79.3 to 1.82.1 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7594
- sdk: per-execution result callback for thread-safe engine by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7587
- docs: missing CLI flags in README by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7596
- cli: wire -max-time soft termination via goflags by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7589
- http tlsmeta by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7586
- chore(deps): bump github.com/getkin/kin-openapi from 0.132.0 to 0.144.0 in the go_modules group across 1 directory by @dependabot[bot] in https://github.com/projectdiscovery/nuclei/pull/7609
- fix: avoid panic in BuildRequest when request response has no request by @DPS0340 in https://github.com/projectdiscovery/nuclei/pull/7601
- Add CLI runner goroutine leak test by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7582
- Print config directories in -hc and verbose modes by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7578
- extend js smb for #4707 by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7565
- Improve MySQL JS fingerprint with native handshake parsing by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7575
- Improve MSSQL JS fingerprint via TDS prelogin by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7577
- rawhttp bump by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7593
- add nuclei/http js client by @Mzack9999 in https://github.com/projectdiscovery/nuclei/pull/7568
- fix(loader): compile requests during validation by @dwisiswant0 in https://github.com/projectdiscovery/nuclei/pull/7616
- chore(deps): bump modules with known advisories by @dogancanbakir in https://github.com/projectdiscovery/nuclei/pull/7632
- feat(templates): bind js execution to verified content by @dwisiswant0 in https://github.com/projectdiscovery/nuclei/pull/7636
- release prep by @ehsandeep in https://github.com/projectdiscovery/nuclei/pull/7641
New Contributors
- @arpitjain099 made their first contribution in https://github.com/projectdiscovery/nuclei/pull/7531
- @james-yusuke made their first contribution in https://github.com/projectdiscovery/nuclei/pull/7515
- @zainnadeem786 made their first contribution in https://github.com/projectdiscovery/nuclei/pull/7525
- @Synvoya made their first contribution in https://github.com/projectdiscovery/nuclei/pull/7523
- @stringsbuilder made their first contribution in https://github.com/projectdiscovery/nuclei/pull/7278
- @DPS0340 made their first contribution in https://github.com/projectdiscovery/nuclei/pull/7601
Full Changelog: https://github.com/projectdiscovery/nuclei/compare/v3.11.0...v3.11.1