1{ lib
2, buildGoModule
3, fetchFromGitHub
4}:
5
6buildGoModule rec {
7 pname = "nuclei";
8 version = "2.9.5";
9
10 src = fetchFromGitHub {
11 owner = "projectdiscovery";
12 repo = pname;
13 rev = "v${version}";
14 hash = "sha256-+ndLh4T9Kznzx6Qgh2EQm/cSvRb6+1goOMELS8sUHPc=";
15 };
16
17 vendorHash = "sha256-vAzyqFUluqEKeYw8unUjmyuw/c7yQYTGjLpHdYI5es8=";
18
19 modRoot = "./v2";
20 subPackages = [
21 "cmd/nuclei/"
22 ];
23
24 # Test files are not part of the release tarball
25 doCheck = false;
26
27 meta = with lib; {
28 description = "Tool for configurable targeted scanning";
29 longDescription = ''
30 Nuclei is used to send requests across targets based on a template
31 leading to zero false positives and providing effective scanning
32 for known paths. Main use cases for nuclei are during initial
33 reconnaissance phase to quickly check for low hanging fruits or
34 CVEs across targets that are known and easily detectable.
35 '';
36 homepage = "https://github.com/projectdiscovery/nuclei";
37 changelog = "https://github.com/projectdiscovery/nuclei/releases/tag/v${version}";
38 license = licenses.mit;
39 maintainers = with maintainers; [ fab ];
40 };
41}