Skip to content

Releases: projectdiscovery/nuclei

v3.11.1

Choose a tag to compare

@ehsandeep ehsandeep released this 08 Aug 12:21
a8c88fe

What's Changed

🎉 New Features

🐞 Bug Fixes

🔨 Maintenance

  • chore(deps): bump the modules group with 5 updates by @dependabot[bot] in #7528
  • chore(deps): bump the modules group with 5 updates by @dependabot[bot] in #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 #7529
  • chore(deps): bump the modules group with 3 updates by @dependabot[bot] in #7554
  • chore(deps): bump the modules group with 5 updates by @dependabot[bot] in #7615
  • chore(deps): bump the modules group with 3 updates by @dependabot[bot] in #7634
  • chore(deps): bump actions/stale from 10 to 11 in the workflows group by @dependabot[bot] in #7635

Other Changes

New Contributors

Full Changelog: v3.11.0...v3.11.1

v3.11.0

Choose a tag to compare

@ehsandeep ehsandeep released this 06 Jul 07:00
57db383

What's Changed

⚠️ 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)) without javascript: 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.yaml

See the Template Signing documentation for key generation, verification, and signing templates that reference external JavaScript or code files.


🔒 Security

  • feat(templates): require signatures for javascript templates by @dwisiswant0 in #7514

Other Changes

Full Changelog: v3.10.0...v3.11.0

v3.10.0

Choose a tag to compare

@dogancanbakir dogancanbakir released this 30 Jun 11:21
f9cf234

What's Changed

Security Fixes

🎉 New Features

🐞 Bug Fixes

Other Changes

  • Updated govaluate dependency to prevent slice-bounds panic on invalid UTF-8 input by @XananasX7 in #7464
  • Updated dependencies to remove unused packages by @dwisiswant0 in #7457
  • Added fuzzing parser harnesses for raw requests and templates by @dwisiswant0 in #7459

New Contributors

Full Changelog: v3.9.0...v3.10.0

v3.9.0

Choose a tag to compare

@dogancanbakir dogancanbakir released this 10 Jun 10:17
ffbb05b

What's Changed

🎉 New Features

🐞 Bug Fixes

  • Fixed DNS variables resolving issue by @Mzack9999 in #7379
  • Fixed expressions to prefer exact placeholders over expressions by @dwisiswant0 in #7397
  • Fixed an issue in JS where runtimes that outlive the interrupt grace period are not abandoned, by @Mzack9999 in #7378
  • Fixed an issue in reporting/jira where status-not was not matched against the transition target status name by @knakul853 in #7361
  • Fixed runner to write unsigned-templates warning (WRN) to stderr by @ChrisJr404 in #7371
  • Fixed InternalEvent access serialization in interactsh by @dwisiswant0 in #7322
  • Fixed workflow to ensure context is properly propagated to child and race steps by @dwisiswant0 in #7383
  • Fixed reporting/gitlab by bumping client-go to v1.9.1 and widening IDs to int64 by @ShubhamRasal in #7398
  • Fixed memogen to skip context correctly and auto-push scope to upstream by @Mzack9999 in #7419
  • Fixed a slice-bounds panic in telnetmini's ParseNTLMResponse when handling truncated NTLM challenges by @tejgokani in #7425
  • Fixed SMBv1 probing in JS to occur after SMB2 negotiation by @dwisiswant0 in #7430
  • Fixed templates to reject unknown fields when loading JSON templates by @tejgokani in #7453
  • Fixed persistence of QueryAuthStrategy parameters in ApplyAuthStrategy by @akhilesharora in #7410
  • Fixed loader to warn when templates are excluded by .nuclei-ignore tags by @dogancanbakir in #7452

Other Changes

New Contributors

Full Changelog: v3.8.0...v3.9.0

v3.8.0

Choose a tag to compare

@ehsandeep ehsandeep released this 18 Apr 01:47
aa52d85

What's Changed

Security Fixes

Bug Fixes

New Features

Performance & Improvements

Tests & CI

Documentation

  • Update outdated documentation links across all translations by @Pitrat-wav (#7020)

New Contributors

Full Changelog: v3.7.1...v3.8.0

v3.7.1

Choose a tag to compare

@dogancanbakir dogancanbakir released this 05 Mar 11:00
d7dea30

What's Changed

🐞 Bug Fixes

  • Fixed panic by replacing it with error handling in template loader (#6674) by @umer12-12 in #7090
  • Fixed cluster failure handling by @bf-rbrown in #6843
  • Fixed by avoiding cross-test chrome teardown races in headless by @dwisiswant0 in #7053
  • Fixed data race in evaluateVarsWithInteractsh by @yusei-wy in #6828
  • Fixed panic by replacing it with error handling in template loader by @bimakw in #6825

Other Changes

New Contributors

Full Changelog: v3.7.0...v3.7.1

v3.7.0

Choose a tag to compare

@dogancanbakir dogancanbakir released this 28 Jan 09:52
4a8b83f

What's Changed

🎉 New Features

  • Added cdp-endpoint option to allow users to specify a WebSocket endpoint for control in headless mode by @dwisiswant0 in #5786
  • Added RSYNC module by @Mzack9999 in #6410

🐞 Bug Fixes

Other Changes

New Contributors

Full Changelog: v3.6.2...v3.7.0

v3.6.2

Choose a tag to compare

@dwisiswant0 dwisiswant0 released this 31 Dec 16:33
63aed75

What's Changed

✨ New Features

  • Enabled TLS session caching in the client pool to improve connection reuse and reduce handshake overhead (internal) by @dwisiswant0 in #6713
  • Added support for providing a custom Jira server URL (site-url) when using OAuth authentication by @Ice3man543 in #6716

🐞 Bug Fixes

  • Improved duplicate issue detection by properly paginating Gitea issue searches by @leonjza in #6707
  • Restored JavaScript template execution when the Port argument is not provided by @dwisiswant0 in #6709
  • Added pagination support when searching for duplicate issues in GitLab by @dwisiswant0 in #6712
  • Corrected an incorrect PostgreSQL execution call signature in the JavaScript engine by @Mzack9999 in #6731
  • Fixed a MySQL panic caused by a missing executionId in the execution context by @dwisiswant0 in #6735
  • Fixed a segmentation fault in flow execution related to hasMatchers by @dwisiswant0 in #6739

⚡ Performance Improvements

  • Optimized the MergeMaps generator to reduce memory allocations by @dwisiswant0 in #6718

🔧 Maintenance

  • Updated projectdiscovery/utils to v0.8.0 to fix a deadlock in httputil.ResponseChain by @dwisiswant0 in #6723
  • Introduced a PowerShell integration test to improve cross-platform test coverage by @Mzack9999 in #6724
  • Updated multiple Go module dependencies across two dependency refreshes by @dependabot[bot] in #6729 & #6741

Other Changes

  • Updated issue and pull request templates by @dwisiswant0 in #6673
  • Refactored CI workflows by @dwisiswant0 in #6728, this includes:
    • Shipping binaries with Green Tea GC enabled via GOEXPERIMENT
    • Shipping binaries built with profile-guided optimization (PGO)
    • Fixing an auto-merge workflow that never triggered
  • Switched release tests to use a stable Go version by @dwisiswant0 in #6737
  • Upgraded actions/download-artifact from v6 to v7 in GitHub workflows by @dependabot[bot] in #6742
  • Updated compatibility checks to use a stable Go version by @dwisiswant0 in #6743

Full Changelog: v3.6.1...v3.6.2

v3.6.1

Choose a tag to compare

@dwisiswant0 dwisiswant0 released this 16 Dec 08:54
b370607

What’s Changed

🐞 Bug Fixes

  • fix(config): template exclusion logic for paths with reserved names by @dwisiswant0 in #6663
  • fix(http): lost request body on retries & redirects by @dwisiswant0 in #6666
  • fix(http): pass dynamicValues to EvaluateWithInteractsh by @dwisiswant0 in #6685
  • fix(lib): segfault when initializing the engine with EnableHeadlessWithOpts by @dwisiswant0 in #6602
  • build: fix compilation on loong64 architecture by @dwisiswant0 in #6667
  • fix: enable all template types for template list and display by @dwisiswant0 in #6668
  • fix(http): cache response strings to reduce memory allocations by @dwisiswant0 in #6679
  • fix: body loss on retries/redirects in remaining paths by @dwisiswant0 in #6693
  • fix(headless): data race when reading page history by @dwisiswant0 in #6687
  • fix(update): handle empty folder edge case during template updates by @Mzack9999 in #6573

🔨 Maintenance

📚 Documentation

New Contributors

Full Changelog: v3.6.0...v3.6.1

v3.6.0

Choose a tag to compare

@dwisiswant0 dwisiswant0 released this 04 Dec 20:40
f181a69

What's Changed

✨ New Features

🐛 Fixed

⚙️ Changed / Improvements

🧹 Maintenance / Dependencies

🌱 New Contributors

Full Changelog: v3.5.1 → v3.6.0