penthera 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +315 -0
  2. package/README.md +139 -76
  3. package/SECURITY.md +8 -6
  4. package/docs/examples/pr-dependency-review.yml +1 -1
  5. package/lib/adaptive-probes.js +3 -3
  6. package/lib/advisories/evidence.js +248 -0
  7. package/lib/advisories/index.js +228 -0
  8. package/lib/advisories/products.js +83 -0
  9. package/lib/advisories/versions.js +65 -0
  10. package/lib/agents/hidden-content.js +122 -11
  11. package/lib/agents/index.js +26 -6
  12. package/lib/agents/lock.js +33 -5
  13. package/lib/agents/rules.js +33 -4
  14. package/lib/compliance/index.js +4 -4
  15. package/lib/crawler.js +12 -15
  16. package/lib/deps/capabilities.js +21 -5
  17. package/lib/deps/findings.js +309 -0
  18. package/lib/deps/index.js +13 -272
  19. package/lib/deps/iocs.js +74 -0
  20. package/lib/deps/lockfile.js +3 -8
  21. package/lib/deps/online.js +8 -3
  22. package/lib/deps/popular-packages.json.gz +0 -0
  23. package/lib/deps/popular-pypi.json.gz +0 -0
  24. package/lib/deps/python/capabilities.js +16 -3
  25. package/lib/deps/python/index.js +5 -1
  26. package/lib/deps/python/lockfiles.js +11 -5
  27. package/lib/deps/python/source.js +75 -26
  28. package/lib/deps/python/toml.js +15 -3
  29. package/lib/deps/source.js +28 -9
  30. package/lib/deps/typosquat.js +30 -5
  31. package/lib/fix/apply.js +253 -34
  32. package/lib/fix/index.js +7 -4
  33. package/lib/fix/model.js +25 -5
  34. package/lib/fix/util.js +6 -2
  35. package/lib/fuzzer.js +3 -3
  36. package/lib/git.js +65 -0
  37. package/lib/hook/index.js +157 -73
  38. package/lib/hook/policy.js +10 -4
  39. package/lib/install/index.js +4 -7
  40. package/lib/machine.js +0 -13
  41. package/lib/memory/store.js +11 -4
  42. package/lib/nuclei-loader.js +0 -25
  43. package/lib/owasp-wstg.js +4 -0
  44. package/lib/plugins.js +1 -1
  45. package/lib/provenance.js +1 -0
  46. package/lib/recon.js +12 -31
  47. package/lib/references.json +224 -0
  48. package/lib/retirejs.js +4 -4
  49. package/lib/rules/advisories/advisories.json +186 -0
  50. package/lib/rules/advisories/eol.json +413 -0
  51. package/lib/rules/advisories/pack.json +20 -0
  52. package/lib/rules/advisories/pack.json.sig +6 -0
  53. package/lib/rules/allowed_signers +13 -0
  54. package/lib/rules/core/agent-exec.json +29 -0
  55. package/lib/rules/core/agent-instructions.json +17 -0
  56. package/lib/rules/core/pack.json +30 -0
  57. package/lib/rules/core/pack.json.sig +6 -0
  58. package/lib/rules/core/secrets.json +161 -0
  59. package/lib/rules/core/templates.json +52 -0
  60. package/lib/rules/index.js +107 -0
  61. package/lib/rules/ioc-2025-2026/files.json +43 -0
  62. package/lib/rules/ioc-2025-2026/hosts.json +35 -0
  63. package/lib/rules/ioc-2025-2026/pack.json +25 -0
  64. package/lib/rules/ioc-2025-2026/pack.json.sig +6 -0
  65. package/lib/rules/ioc-2025-2026/packages.json +1048 -0
  66. package/lib/rules/pack.js +452 -0
  67. package/lib/rules/regex-guard.js +81 -9
  68. package/lib/rules/sshsig.js +205 -0
  69. package/lib/templates.js +24 -20
  70. package/lib/tmp.js +21 -0
  71. package/lib/whitebox/frameworks.js +1 -1
  72. package/lib/whitebox/secrets.js +117 -41
  73. package/package.json +12 -4
  74. package/scripts/rules/build-pack.mjs +80 -0
  75. package/scripts/rules/check-bundled.mjs +30 -0
  76. package/scripts/rules/sign-pack.sh +32 -0
  77. package/skills/penthera/SKILL.md +16 -15
  78. package/src/agent/git.js +147 -14
  79. package/src/agent/loop.js +165 -46
  80. package/src/cli/agent.js +11 -5
  81. package/src/cli/deps.js +0 -2
  82. package/src/cli/detect.js +14 -7
  83. package/src/cli/fix.js +26 -8
  84. package/src/cli/hook.js +2 -1
  85. package/src/cli/onboarding.js +14 -6
  86. package/src/cli/report-outputs.js +1 -0
  87. package/src/cli/rules.js +144 -0
  88. package/src/cli/ui.js +43 -10
  89. package/src/cli.js +24 -1
  90. package/src/report/evidence.js +105 -21
  91. package/src/report/footer.js +1 -1
  92. package/src/report/md-escape.js +8 -0
  93. package/src/scan-repo.js +6 -0
  94. package/src/scan-url.js +11 -3
  95. package/src/ui/api/data.js +39 -6
  96. package/src/ui/api/routes.js +44 -11
  97. package/src/ui/api/runs.js +32 -7
  98. package/src/ui/security.js +20 -23
  99. package/src/ui/server.js +52 -27
  100. package/src/ui/static/app.css +583 -213
  101. package/src/ui/static/favicon.svg +1 -1
  102. package/src/ui/static/fonts/DepartureMono-LICENSE.txt +93 -0
  103. package/src/ui/static/fonts/DepartureMono-Regular.woff2 +0 -0
  104. package/src/ui/static/index.html +5 -4
  105. package/src/ui/static/js/api.js +114 -6
  106. package/src/ui/static/js/app.js +81 -42
  107. package/src/ui/static/js/center.js +246 -133
  108. package/src/ui/static/js/charts.js +99 -18
  109. package/src/ui/static/js/copy.js +68 -9
  110. package/src/ui/static/js/dialog.js +152 -0
  111. package/src/ui/static/js/left.js +23 -60
  112. package/src/ui/static/js/menubar.js +170 -0
  113. package/src/ui/static/js/onboarding.js +104 -0
  114. package/src/ui/static/js/panels.js +186 -0
  115. package/src/ui/static/js/right.js +69 -188
  116. package/src/ui/static/js/state.js +36 -5
  117. package/src/ui/static/logo.svg +10 -0
  118. package/src/ui/static/mark.svg +3 -0
  119. package/src/utils/http.js +162 -13
  120. package/docs/METHODOLOGY.md +0 -375
  121. package/docs/commands/README.md +0 -24
  122. package/docs/commands/action.md +0 -21
  123. package/docs/commands/agents.md +0 -38
  124. package/docs/commands/deps.md +0 -115
  125. package/docs/commands/fix.md +0 -53
  126. package/docs/commands/hook.md +0 -69
  127. package/docs/commands/init.md +0 -114
  128. package/docs/commands/install.md +0 -53
  129. package/docs/commands/scan.md +0 -100
  130. package/docs/commands/skill.md +0 -58
  131. package/docs/compare/README.md +0 -25
  132. package/docs/compare/github.md +0 -60
  133. package/docs/compare/semgrep.md +0 -54
  134. package/docs/compare/snyk.md +0 -62
  135. package/docs/compare/socket.md +0 -78
  136. package/docs/compare/zap.md +0 -59
  137. package/docs/compliance-cra.md +0 -141
  138. package/docs/compliance-nis2.md +0 -168
  139. package/docs/dashboard.md +0 -187
  140. package/docs/evidence.md +0 -162
  141. package/docs/funding/due-diligence-checklist.md +0 -79
  142. package/docs/funding/nlnet-ngi-zero-draft.md +0 -273
  143. package/docs/funding/partner-one-pager.md +0 -84
  144. package/docs/funding/sponsor-tiers.md +0 -81
  145. package/docs/index.md +0 -81
  146. package/docs/internal-audit.md +0 -83
  147. package/docs/local-loop.md +0 -276
  148. package/docs/marketing.md +0 -151
  149. package/docs/owasp-wstg-coverage.md +0 -79
  150. package/docs/plan.md +0 -102
  151. package/docs/privacy.md +0 -38
  152. package/docs/references.bib +0 -559
  153. package/docs/references.md +0 -119
  154. package/docs/release-plan.md +0 -228
  155. package/docs/research/socket-positioning-notes.md +0 -183
  156. package/docs/use-cases/README.md +0 -14
  157. package/docs/use-cases/agencies.md +0 -71
  158. package/docs/use-cases/ai-coding-teams.md +0 -81
  159. package/docs/use-cases/eu-sme-compliance.md +0 -68
  160. package/docs/use-cases/open-source-maintainers.md +0 -75
  161. package/docs/use-cases/solo-founder.md +0 -65
  162. package/lib/deps/popular-packages.json +0 -1
  163. package/lib/deps/popular-pypi.json +0 -1
@@ -1,559 +0,0 @@
1
- % Penthera bibliography, rendered in APA 7 style into references.md. Every entry verified 2026-10-19 against Crossref (publisher-deposited DOI metadata, including editors),
2
- % USENIX, NDSS, arXiv, RFC Editor, OWASP, MITRE, NIST, OASIS and the EU Publications Office.
3
-
4
- % ---------------------------------------------------------------- blackbox
5
- @inproceedings{bau2010state,
6
- author = {Bau, Jason and Bursztein, Elie and Gupta, Divij and Mitchell, John},
7
- title = {State of the Art: Automated Black-Box Web Application Vulnerability Testing},
8
- booktitle = {2010 IEEE Symposium on Security and Privacy},
9
- publisher = {IEEE},
10
- year = {2010},
11
- pages = {332--345},
12
- doi = {10.1109/SP.2010.27},
13
- note = {blackbox}
14
- }
15
-
16
- @inproceedings{doupe2010johnny,
17
- author = {Doup{\'e}, Adam and Cova, Marco and Vigna, Giovanni},
18
- title = {Why {Johnny} Can't Pentest: An Analysis of Black-Box Web Vulnerability Scanners},
19
- booktitle = {Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA 2010)},
20
- editor = {Kreibich, Christian and Jahnke, Marko},
21
- series = {Lecture Notes in Computer Science},
22
- publisher = {Springer},
23
- year = {2010},
24
- pages = {111--131},
25
- doi = {10.1007/978-3-642-14215-4_7},
26
- note = {blackbox}
27
- }
28
-
29
- @inproceedings{antunes2010benchmarking,
30
- author = {Antunes, Nuno and Vieira, Marco},
31
- title = {Benchmarking Vulnerability Detection Tools for Web Services},
32
- booktitle = {2010 IEEE International Conference on Web Services (ICWS)},
33
- publisher = {IEEE},
34
- year = {2010},
35
- pages = {203--210},
36
- doi = {10.1109/ICWS.2010.76},
37
- note = {blackbox}
38
- }
39
-
40
- @article{antunes2015assessing,
41
- author = {Antunes, Nuno and Vieira, Marco},
42
- title = {Assessing and Comparing Vulnerability Detection Tools for Web Services: Benchmarking Approach and Examples},
43
- journal = {IEEE Transactions on Services Computing},
44
- volume = {8},
45
- number = {2},
46
- year = {2015},
47
- pages = {269--283},
48
- doi = {10.1109/TSC.2014.2310221},
49
- note = {blackbox}
50
- }
51
-
52
- @misc{owaspbenchmark,
53
- shorthand = {OWASP Benchmark},
54
- author = {{OWASP Foundation}},
55
- title = {{OWASP Benchmark} Project},
56
- version = {1.2},
57
- annote = {OWASP project page; project leader Dave Wichers},
58
- url = {https://owasp.org/www-project-benchmark/},
59
- urldate = {2026-10-19},
60
- note = {blackbox}
61
- }
62
-
63
- @techreport{scarfone2008sp800115,
64
- shorthand = {NIST SP 800-115},
65
- author = {Scarfone, K. A. and Souppaya, M. P. and Cody, A. and Orebaugh, A. D.},
66
- title = {Technical Guide to Information Security Testing and Assessment},
67
- institution = {National Institute of Standards and Technology},
68
- type = {NIST Special Publication},
69
- number = {800-115},
70
- year = {2008},
71
- doi = {10.6028/NIST.SP.800-115},
72
- note = {standards}
73
- }
74
-
75
- % ---------------------------------------------------------------- design
76
- @article{saltzer1975protection,
77
- author = {Saltzer, J. H. and Schroeder, M. D.},
78
- title = {The Protection of Information in Computer Systems},
79
- journal = {Proceedings of the IEEE},
80
- volume = {63},
81
- number = {9},
82
- year = {1975},
83
- pages = {1278--1308},
84
- doi = {10.1109/PROC.1975.9939},
85
- note = {design}
86
- }
87
-
88
- % ---------------------------------------------------------------- threatmodel
89
- @book{shostack2014threat,
90
- author = {Shostack, Adam},
91
- title = {Threat Modeling: Designing for Security},
92
- publisher = {Wiley},
93
- year = {2014},
94
- isbn = {978-1-118-80999-0},
95
- url = {https://www.wiley-vch.de/de/fachgebiete/computer-und-informatik/threat-modeling-978-1-118-80999-0},
96
- note = {threatmodel}
97
- }
98
-
99
- @misc{kohnfelder1999threats,
100
- author = {Kohnfelder, Loren and Garg, Praerit},
101
- title = {The Threats to Our Products},
102
- titleaddon = {Internal publication},
103
- organization = {Microsoft},
104
- annote = {Microsoft internal \emph{Interface} journal, 1 April 1999; copy hosted by Adam Shostack},
105
- year = {1999},
106
- url = {https://shostack.org/files/microsoft/The-Threats-To-Our-Products.docx},
107
- urldate = {2026-10-19},
108
- note = {threatmodel}
109
- }
110
-
111
- % ---------------------------------------------------------------- supplychain
112
- @inproceedings{ladisa2023sok,
113
- author = {Ladisa, Piergiorgio and Plate, Henrik and Martinez, Matias and Barais, Olivier},
114
- title = {{SoK}: Taxonomy of Attacks on Open-Source Software Supply Chains},
115
- booktitle = {2023 IEEE Symposium on Security and Privacy (SP)},
116
- publisher = {IEEE},
117
- year = {2023},
118
- pages = {1509--1526},
119
- doi = {10.1109/SP46215.2023.10179304},
120
- note = {supplychain}
121
- }
122
-
123
- @inproceedings{ohm2020backstabber,
124
- author = {Ohm, Marc and Plate, Henrik and Sykosch, Arnold and Meier, Michael},
125
- title = {Backstabber's Knife Collection: A Review of Open Source Software Supply Chain Attacks},
126
- booktitle = {Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA 2020)},
127
- editor = {Maurice, Cl{\'e}mentine and Bilge, Leyla and Stringhini, Gianluca and Neves, Nuno},
128
- series = {Lecture Notes in Computer Science},
129
- publisher = {Springer},
130
- year = {2020},
131
- pages = {23--43},
132
- doi = {10.1007/978-3-030-52683-2_2},
133
- note = {supplychain}
134
- }
135
-
136
- @inproceedings{zimmermann2019small,
137
- author = {Zimmermann, Markus and Staicu, Cristian-Alexandru and Tenny, Cam and Pradel, Michael},
138
- title = {Small World with High Risks: A Study of Security Threats in the npm Ecosystem},
139
- booktitle = {28th USENIX Security Symposium (USENIX Security 19)},
140
- publisher = {USENIX Association},
141
- year = {2019},
142
- pages = {995--1010},
143
- isbn = {978-1-939133-06-9},
144
- url = {https://www.usenix.org/conference/usenixsecurity19/presentation/zimmerman},
145
- note = {supplychain}
146
- }
147
-
148
- @inproceedings{lauinger2017thou,
149
- author = {Lauinger, Tobias and Chaabane, Abdelberi and Arshad, Sajjad and Robertson, William and Wilson, Christo and Kirda, Engin},
150
- title = {Thou Shalt Not Depend on Me: Analysing the Use of Outdated {JavaScript} Libraries on the Web},
151
- booktitle = {Proceedings 2017 Network and Distributed System Security Symposium},
152
- publisher = {Internet Society},
153
- year = {2017},
154
- doi = {10.14722/ndss.2017.23414},
155
- note = {supplychain}
156
- }
157
-
158
- @article{thompson1984reflections,
159
- author = {Thompson, Ken},
160
- title = {Reflections on Trusting Trust},
161
- journal = {Communications of the ACM},
162
- volume = {27},
163
- number = {8},
164
- year = {1984},
165
- pages = {761--763},
166
- doi = {10.1145/358198.358210},
167
- note = {supplychain}
168
- }
169
-
170
- @inproceedings{torresarias2019intoto,
171
- author = {Torres-Arias, Santiago and Afzali, Hammad and Kuppusamy, Trishank Karthik and Curtmola, Reza and Cappos, Justin},
172
- title = {{in-toto}: Providing farm-to-table guarantees for bits and bytes},
173
- booktitle = {28th USENIX Security Symposium (USENIX Security 19)},
174
- publisher = {USENIX Association},
175
- year = {2019},
176
- pages = {1393--1410},
177
- isbn = {978-1-939133-06-9},
178
- url = {https://www.usenix.org/conference/usenixsecurity19/presentation/torres-arias},
179
- note = {supplychain}
180
- }
181
-
182
- @inproceedings{samuel2010survivable,
183
- author = {Samuel, Justin and Mathewson, Nick and Cappos, Justin and Dingledine, Roger},
184
- title = {Survivable Key Compromise in Software Update Systems},
185
- booktitle = {Proceedings of the 17th ACM Conference on Computer and Communications Security (CCS '10)},
186
- publisher = {ACM},
187
- year = {2010},
188
- pages = {61--72},
189
- doi = {10.1145/1866307.1866315},
190
- note = {supplychain}
191
- }
192
-
193
- % ---------------------------------------------------------------- secrets
194
- @inproceedings{meli2019bad,
195
- author = {Meli, Michael and McNiece, Matthew R. and Reaves, Bradley},
196
- title = {How Bad Can It {Git}? Characterizing Secret Leakage in Public {GitHub} Repositories},
197
- booktitle = {Proceedings 2019 Network and Distributed System Security Symposium},
198
- publisher = {Internet Society},
199
- year = {2019},
200
- doi = {10.14722/ndss.2019.23418},
201
- note = {secrets}
202
- }
203
-
204
- @inproceedings{basak2023secretbench,
205
- author = {Basak, Setu Kumar and Neil, Lorenzo and Reaves, Bradley and Williams, Laurie},
206
- title = {{SecretBench}: A Dataset of Software Secrets},
207
- booktitle = {2023 IEEE/ACM 20th International Conference on Mining Software Repositories (MSR)},
208
- publisher = {IEEE},
209
- year = {2023},
210
- pages = {347--351},
211
- doi = {10.1109/MSR59073.2023.00053},
212
- note = {secrets}
213
- }
214
-
215
- % ---------------------------------------------------------------- web
216
- @inproceedings{weichselbaum2016csp,
217
- author = {Weichselbaum, Lukas and Spagnuolo, Michele and Lekies, Sebastian and Janc, Artur},
218
- title = {{CSP} Is Dead, Long Live {CSP}! On the Insecurity of Whitelists and the Future of {Content Security Policy}},
219
- booktitle = {Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS '16)},
220
- publisher = {ACM},
221
- year = {2016},
222
- pages = {1376--1387},
223
- doi = {10.1145/2976749.2978363},
224
- note = {web}
225
- }
226
-
227
- @inproceedings{kocher1996timing,
228
- author = {Kocher, Paul C.},
229
- title = {Timing Attacks on Implementations of {Diffie-Hellman}, {RSA}, {DSS}, and Other Systems},
230
- booktitle = {Advances in Cryptology -- CRYPTO '96},
231
- editor = {Koblitz, Neal},
232
- series = {Lecture Notes in Computer Science},
233
- publisher = {Springer},
234
- year = {1996},
235
- pages = {104--113},
236
- doi = {10.1007/3-540-68697-5_9},
237
- note = {web}
238
- }
239
-
240
- @article{crosby2009opportunities,
241
- author = {Crosby, Scott A. and Wallach, Dan S. and Riedi, Rudolf H.},
242
- title = {Opportunities and Limits of Remote Timing Attacks},
243
- journal = {ACM Transactions on Information and System Security},
244
- volume = {12},
245
- number = {3},
246
- year = {2009},
247
- pages = {1--29},
248
- doi = {10.1145/1455526.1455530},
249
- note = {web}
250
- }
251
-
252
- @inproceedings{lekies2013flows,
253
- author = {Lekies, Sebastian and Stock, Ben and Johns, Martin},
254
- title = {25 Million Flows Later: Large-scale Detection of {DOM}-based {XSS}},
255
- booktitle = {Proceedings of the 2013 ACM SIGSAC Conference on Computer and Communications Security (CCS '13)},
256
- publisher = {ACM},
257
- year = {2013},
258
- pages = {1193--1204},
259
- doi = {10.1145/2508859.2516703},
260
- note = {web}
261
- }
262
-
263
- @inproceedings{stock2014precise,
264
- author = {Stock, Ben and Lekies, Sebastian and Mueller, Tobias and Spiegel, Patrick and Johns, Martin},
265
- title = {Precise Client-side Protection against {DOM}-based Cross-Site Scripting},
266
- booktitle = {23rd USENIX Security Symposium (USENIX Security 14)},
267
- publisher = {USENIX Association},
268
- year = {2014},
269
- pages = {655--670},
270
- isbn = {978-1-931971-15-7},
271
- url = {https://www.usenix.org/conference/usenixsecurity14/technical-sessions/presentation/stock},
272
- note = {web}
273
- }
274
-
275
- @inproceedings{barth2008robust,
276
- author = {Barth, Adam and Jackson, Collin and Mitchell, John C.},
277
- title = {Robust Defenses for Cross-Site Request Forgery},
278
- booktitle = {Proceedings of the 15th ACM Conference on Computer and Communications Security (CCS '08)},
279
- publisher = {ACM},
280
- year = {2008},
281
- pages = {75--88},
282
- doi = {10.1145/1455770.1455782},
283
- note = {web}
284
- }
285
-
286
- @inproceedings{fett2016comprehensive,
287
- author = {Fett, Daniel and K{\"u}sters, Ralf and Schmitz, Guido},
288
- title = {A Comprehensive Formal Security Analysis of {OAuth} 2.0},
289
- booktitle = {Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS '16)},
290
- publisher = {ACM},
291
- year = {2016},
292
- pages = {1204--1215},
293
- doi = {10.1145/2976749.2978385},
294
- note = {web}
295
- }
296
-
297
- @misc{hodges2012rfc6797,
298
- author = {Hodges, J. and Jackson, C. and Barth, A.},
299
- title = {{HTTP} Strict Transport Security ({HSTS})},
300
- howpublished = {RFC 6797, Proposed Standard, RFC Editor},
301
- year = {2012},
302
- month = nov,
303
- doi = {10.17487/RFC6797},
304
- note = {web}
305
- }
306
-
307
- @misc{jones2015rfc7519,
308
- author = {Jones, M. and Bradley, J. and Sakimura, N.},
309
- title = {{JSON} Web Token ({JWT})},
310
- howpublished = {RFC 7519, Proposed Standard, RFC Editor},
311
- year = {2015},
312
- month = may,
313
- doi = {10.17487/RFC7519},
314
- note = {web}
315
- }
316
-
317
- @misc{sakimura2015rfc7636,
318
- author = {Sakimura, N. and Bradley, J. and Agarwal, N.},
319
- title = {Proof Key for Code Exchange by {OAuth} Public Clients},
320
- howpublished = {RFC 7636, Proposed Standard, RFC Editor},
321
- year = {2015},
322
- month = sep,
323
- doi = {10.17487/RFC7636},
324
- note = {web}
325
- }
326
-
327
- @misc{lodderstedt2025rfc9700,
328
- author = {Lodderstedt, T. and Bradley, J. and Labunets, A. and Fett, D.},
329
- title = {Best Current Practice for {OAuth} 2.0 Security},
330
- howpublished = {RFC 9700, BCP 240, RFC Editor},
331
- year = {2025},
332
- month = jan,
333
- doi = {10.17487/RFC9700},
334
- note = {web}
335
- }
336
-
337
- @inproceedings{chen2018cors,
338
- author = {Chen, Jianjun and Jiang, Jian and Duan, Haixin and Wan, Tao and Chen, Shuo and Paxson, Vern and Yang, Min},
339
- title = {We Still Don't Have Secure Cross-Domain Requests: an Empirical Study of {CORS}},
340
- booktitle = {27th USENIX Security Symposium (USENIX Security 18)},
341
- publisher = {USENIX Association},
342
- year = {2018},
343
- pages = {1079--1093},
344
- isbn = {978-1-939133-04-5},
345
- url = {https://www.usenix.org/conference/usenixsecurity18/presentation/chen-jianjun},
346
- note = {web}
347
- }
348
-
349
- @misc{sheffer2020rfc8725,
350
- author = {Sheffer, Y. and Hardt, D. and Jones, M.},
351
- title = {{JSON} Web Token Best Current Practices},
352
- howpublished = {RFC 8725, BCP 225, RFC Editor},
353
- year = {2020},
354
- month = feb,
355
- doi = {10.17487/RFC8725},
356
- note = {web}
357
- }
358
-
359
- @misc{owasp2023api,
360
- shorthand = {OWASP API Top 10:2023},
361
- author = {{OWASP Foundation}},
362
- title = {{OWASP Top 10} {API} Security Risks -- 2023},
363
- organization = {OWASP API Security Project},
364
- year = {2023},
365
- url = {https://owasp.org/API-Security/editions/2023/en/0x11-t10/},
366
- urldate = {2026-10-19},
367
- note = {web}
368
- }
369
-
370
- @misc{kitterman2014rfc7208,
371
- author = {Kitterman, S.},
372
- title = {Sender Policy Framework ({SPF}) for Authorizing Use of Domains in Email, Version 1},
373
- howpublished = {RFC 7208, Proposed Standard, RFC Editor},
374
- year = {2014},
375
- month = apr,
376
- doi = {10.17487/RFC7208},
377
- note = {web}
378
- }
379
-
380
- @misc{kucherawy2015rfc7489,
381
- author = {Kucherawy, M. and Zwicky, E.},
382
- title = {Domain-based Message Authentication, Reporting, and Conformance ({DMARC})},
383
- howpublished = {RFC 7489, Informational, RFC Editor},
384
- year = {2015},
385
- month = mar,
386
- doi = {10.17487/RFC7489},
387
- note = {web}
388
- }
389
-
390
- @misc{owasp2021top10,
391
- shorthand = {OWASP Top 10:2021},
392
- author = {{OWASP Foundation}},
393
- title = {{OWASP Top 10}:2021},
394
- year = {2021},
395
- url = {https://top10.owasp.org/2021},
396
- urldate = {2026-10-19},
397
- note = {web}
398
- }
399
-
400
- @misc{owasp2025top10,
401
- shorthand = {OWASP Top 10:2025},
402
- author = {{OWASP Foundation}},
403
- title = {{OWASP Top 10}:2025},
404
- year = {2025},
405
- url = {https://top10.owasp.org/2025},
406
- urldate = {2026-10-19},
407
- note = {web}
408
- }
409
-
410
- @misc{owaspwstg42,
411
- shorthand = {OWASP WSTG v4.2},
412
- author = {{OWASP Foundation}},
413
- title = {{OWASP Web Security Testing Guide}, Version 4.2},
414
- url = {https://wstg.owasp.org/v4.2/},
415
- urldate = {2026-10-19},
416
- note = {web}
417
- }
418
-
419
- % ---------------------------------------------------------------- llm
420
- @inproceedings{greshake2023signed,
421
- author = {Greshake, Kai and Abdelnabi, Sahar and Mishra, Shailesh and Endres, Christoph and Holz, Thorsten and Fritz, Mario},
422
- title = {Not What You've Signed Up For: Compromising Real-World {LLM}-Integrated Applications with Indirect Prompt Injection},
423
- booktitle = {Proceedings of the 16th ACM Workshop on Artificial Intelligence and Security (AISec '23)},
424
- publisher = {ACM},
425
- year = {2023},
426
- pages = {79--90},
427
- doi = {10.1145/3605764.3623985},
428
- eprint = {2302.12173},
429
- archivePrefix = {arXiv},
430
- note = {llm}
431
- }
432
-
433
- @inproceedings{spracklen2025package,
434
- author = {Spracklen, Joseph and Wijewickrama, Raveen and Sakib, A H M Nazmus and Maiti, Anindya and Viswanath, Bimal and Jadliwala, Murtuza},
435
- title = {We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating {LLMs}},
436
- booktitle = {34th USENIX Security Symposium (USENIX Security 25)},
437
- publisher = {USENIX Association},
438
- year = {2025},
439
- pages = {3687--3706},
440
- isbn = {978-1-939133-52-6},
441
- url = {https://www.usenix.org/conference/usenixsecurity25/presentation/spracklen},
442
- note = {llm}
443
- }
444
-
445
- @misc{perez2022ignore,
446
- author = {Perez, F{\'a}bio and Ribeiro, Ian},
447
- title = {Ignore Previous Prompt: Attack Techniques For Language Models},
448
- annote = {Presented at the NeurIPS 2022 ML Safety Workshop},
449
- year = {2022},
450
- eprint = {2211.09527},
451
- archivePrefix = {arXiv},
452
- doi = {10.48550/arXiv.2211.09527},
453
- note = {llm}
454
- }
455
-
456
- @misc{liu2023prompt,
457
- author = {Liu, Yi and Deng, Gelei and Li, Yuekang and Wang, Kailong and Wang, Zihao and Wang, Xiaofeng and Zhang, Tianwei and Liu, Yepang and Wang, Haoyu and Zheng, Yan and Zhang, Leo Yu and Liu, Yang},
458
- title = {Prompt Injection attack against {LLM}-integrated Applications},
459
- annote = {arXiv preprint},
460
- year = {2023},
461
- eprint = {2306.05499},
462
- archivePrefix = {arXiv},
463
- doi = {10.48550/arXiv.2306.05499},
464
- note = {llm}
465
- }
466
-
467
- @misc{owasp2024llmtop10,
468
- shorthand = {OWASP LLM Top 10 (2025)},
469
- author = {{OWASP Foundation}},
470
- title = {{OWASP Top 10} for {LLM} Applications 2025},
471
- organization = {OWASP Gen AI Security Project},
472
- year = {2024},
473
- month = nov,
474
- day = {17},
475
- url = {https://genai.owasp.org/resource/owasp-top-10-for-llm-applications-2025/},
476
- urldate = {2026-10-19},
477
- note = {llm}
478
- }
479
-
480
- @misc{owasp2025agentic,
481
- shorthand = {OWASP Agentic Top 10 (2026)},
482
- author = {{OWASP Foundation}},
483
- title = {{OWASP Top 10} for Agentic Applications for 2026},
484
- organization = {OWASP Gen AI Security Project},
485
- year = {2025},
486
- month = dec,
487
- day = {9},
488
- url = {https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/},
489
- urldate = {2026-10-19},
490
- note = {llm}
491
- }
492
-
493
- @misc{owasp2025mcptop10,
494
- shorthand = {OWASP MCP Top 10},
495
- author = {{OWASP Foundation}},
496
- title = {{OWASP MCP Top 10}},
497
- titleaddon = {Beta},
498
- annote = {OWASP project page; living document; items MCP01:2025--MCP10:2025; project lead Vandana Verma Sehgal},
499
- year = {2025},
500
- url = {https://owasp.org/www-project-mcp-top-10/},
501
- urldate = {2026-10-19},
502
- note = {llm}
503
- }
504
-
505
- @misc{mitreatlas,
506
- shorthand = {MITRE ATLAS},
507
- author = {{The MITRE Corporation}},
508
- title = {{MITRE ATLAS}: {Adversarial Threat Landscape for AI Systems}},
509
- annote = {Knowledge base of adversary tactics and techniques against AI systems},
510
- url = {https://atlas.mitre.org/},
511
- urldate = {2026-10-19},
512
- note = {llm}
513
- }
514
-
515
- % ---------------------------------------------------------------- standards
516
- @misc{oasis2023sarif,
517
- shorthand = {SARIF 2.1.0},
518
- author = {Fanning, Michael C. and Golding, Laurence J.},
519
- title = {{Static Analysis Results Interchange Format} ({SARIF}) Version 2.1.0 Plus Errata 01},
520
- titleaddon = {OASIS Standard incorporating Approved Errata},
521
- organization = {OASIS},
522
- year = {2023},
523
- month = aug,
524
- day = {28},
525
- url = {https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html},
526
- urldate = {2026-10-19},
527
- note = {standards}
528
- }
529
-
530
- @misc{eu2022nis2,
531
- shorthand = {NIS2 Directive},
532
- author = {{European Parliament and Council of the European Union}},
533
- title = {Directive ({EU}) 2022/2555 of the {European Parliament} and of the {Council} of 14 {December} 2022 on measures for a high common level of cybersecurity across the {Union}, amending {Regulation (EU) No 910/2014} and {Directive (EU) 2018/1972}, and repealing {Directive (EU) 2016/1148} ({NIS} 2 {Directive})},
534
- howpublished = {Official Journal of the European Union, L 333, 27.12.2022, p. 80},
535
- year = {2022},
536
- url = {https://eur-lex.europa.eu/eli/dir/2022/2555/oj},
537
- urldate = {2026-10-19},
538
- note = {standards}
539
- }
540
-
541
- @misc{mitrecwe,
542
- shorthand = {MITRE CWE},
543
- author = {{The MITRE Corporation}},
544
- title = {{CWE}: {Common Weakness Enumeration}},
545
- annote = {Community-developed list of software and hardware weakness types, sponsored by CISA},
546
- url = {https://cwe.mitre.org/},
547
- urldate = {2026-10-19},
548
- note = {standards}
549
- }
550
-
551
- @misc{spdxlicenselist,
552
- shorthand = {SPDX License List},
553
- author = {{SPDX Workgroup, The Linux Foundation}},
554
- title = {{SPDX License List}},
555
- annote = {Standardized short identifiers for open source licenses, used by package manifests and SBOMs},
556
- url = {https://spdx.org/licenses/},
557
- urldate = {2026-10-19},
558
- note = {standards}
559
- }