@nahisaho/musubix-security 2.0.1 → 2.1.1

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 (363) hide show
  1. package/dist/analysis/enhanced-taint-analyzer.d.ts +120 -0
  2. package/dist/analysis/enhanced-taint-analyzer.d.ts.map +1 -0
  3. package/dist/analysis/enhanced-taint-analyzer.js +450 -0
  4. package/dist/analysis/enhanced-taint-analyzer.js.map +1 -0
  5. package/dist/analysis/index.d.ts +1 -0
  6. package/dist/analysis/index.d.ts.map +1 -1
  7. package/dist/analysis/index.js +1 -0
  8. package/dist/analysis/index.js.map +1 -1
  9. package/dist/analysis/interprocedural/call-graph-builder.d.ts +192 -0
  10. package/dist/analysis/interprocedural/call-graph-builder.d.ts.map +1 -0
  11. package/dist/analysis/interprocedural/call-graph-builder.js +510 -0
  12. package/dist/analysis/interprocedural/call-graph-builder.js.map +1 -0
  13. package/dist/analysis/interprocedural/dfg-adapter.d.ts +166 -0
  14. package/dist/analysis/interprocedural/dfg-adapter.d.ts.map +1 -0
  15. package/dist/analysis/interprocedural/dfg-adapter.js +455 -0
  16. package/dist/analysis/interprocedural/dfg-adapter.js.map +1 -0
  17. package/dist/analysis/interprocedural/index.d.ts +9 -0
  18. package/dist/analysis/interprocedural/index.d.ts.map +1 -0
  19. package/dist/analysis/interprocedural/index.js +9 -0
  20. package/dist/analysis/interprocedural/index.js.map +1 -0
  21. package/dist/analysis/interprocedural/taint-propagator.d.ts +250 -0
  22. package/dist/analysis/interprocedural/taint-propagator.d.ts.map +1 -0
  23. package/dist/analysis/interprocedural/taint-propagator.js +435 -0
  24. package/dist/analysis/interprocedural/taint-propagator.js.map +1 -0
  25. package/dist/analysis/sanitizers/command-sanitizers.d.ts +12 -0
  26. package/dist/analysis/sanitizers/command-sanitizers.d.ts.map +1 -0
  27. package/dist/analysis/sanitizers/command-sanitizers.js +123 -0
  28. package/dist/analysis/sanitizers/command-sanitizers.js.map +1 -0
  29. package/dist/analysis/sanitizers/html-sanitizers.d.ts +12 -0
  30. package/dist/analysis/sanitizers/html-sanitizers.d.ts.map +1 -0
  31. package/dist/analysis/sanitizers/html-sanitizers.js +213 -0
  32. package/dist/analysis/sanitizers/html-sanitizers.js.map +1 -0
  33. package/dist/analysis/sanitizers/index.d.ts +35 -0
  34. package/dist/analysis/sanitizers/index.d.ts.map +1 -0
  35. package/dist/analysis/sanitizers/index.js +59 -0
  36. package/dist/analysis/sanitizers/index.js.map +1 -0
  37. package/dist/analysis/sanitizers/path-sanitizers.d.ts +12 -0
  38. package/dist/analysis/sanitizers/path-sanitizers.d.ts.map +1 -0
  39. package/dist/analysis/sanitizers/path-sanitizers.js +163 -0
  40. package/dist/analysis/sanitizers/path-sanitizers.js.map +1 -0
  41. package/dist/analysis/sanitizers/sql-sanitizers.d.ts +12 -0
  42. package/dist/analysis/sanitizers/sql-sanitizers.d.ts.map +1 -0
  43. package/dist/analysis/sanitizers/sql-sanitizers.js +216 -0
  44. package/dist/analysis/sanitizers/sql-sanitizers.js.map +1 -0
  45. package/dist/analysis/sanitizers/types.d.ts +78 -0
  46. package/dist/analysis/sanitizers/types.d.ts.map +1 -0
  47. package/dist/analysis/sanitizers/types.js +7 -0
  48. package/dist/analysis/sanitizers/types.js.map +1 -0
  49. package/dist/analysis/sanitizers/validation-sanitizers.d.ts +12 -0
  50. package/dist/analysis/sanitizers/validation-sanitizers.d.ts.map +1 -0
  51. package/dist/analysis/sanitizers/validation-sanitizers.js +268 -0
  52. package/dist/analysis/sanitizers/validation-sanitizers.js.map +1 -0
  53. package/dist/analysis/sinks/code-eval.d.ts +12 -0
  54. package/dist/analysis/sinks/code-eval.d.ts.map +1 -0
  55. package/dist/analysis/sinks/code-eval.js +231 -0
  56. package/dist/analysis/sinks/code-eval.js.map +1 -0
  57. package/dist/analysis/sinks/command-exec.d.ts +12 -0
  58. package/dist/analysis/sinks/command-exec.d.ts.map +1 -0
  59. package/dist/analysis/sinks/command-exec.js +187 -0
  60. package/dist/analysis/sinks/command-exec.js.map +1 -0
  61. package/dist/analysis/sinks/file-operations.d.ts +12 -0
  62. package/dist/analysis/sinks/file-operations.d.ts.map +1 -0
  63. package/dist/analysis/sinks/file-operations.js +239 -0
  64. package/dist/analysis/sinks/file-operations.js.map +1 -0
  65. package/dist/analysis/sinks/html-output.d.ts +12 -0
  66. package/dist/analysis/sinks/html-output.d.ts.map +1 -0
  67. package/dist/analysis/sinks/html-output.js +256 -0
  68. package/dist/analysis/sinks/html-output.js.map +1 -0
  69. package/dist/analysis/sinks/index.d.ts +30 -0
  70. package/dist/analysis/sinks/index.d.ts.map +1 -0
  71. package/dist/analysis/sinks/index.js +46 -0
  72. package/dist/analysis/sinks/index.js.map +1 -0
  73. package/dist/analysis/sinks/sql-query.d.ts +12 -0
  74. package/dist/analysis/sinks/sql-query.d.ts.map +1 -0
  75. package/dist/analysis/sinks/sql-query.js +209 -0
  76. package/dist/analysis/sinks/sql-query.js.map +1 -0
  77. package/dist/analysis/sinks/types.d.ts +97 -0
  78. package/dist/analysis/sinks/types.d.ts.map +1 -0
  79. package/dist/analysis/sinks/types.js +7 -0
  80. package/dist/analysis/sinks/types.js.map +1 -0
  81. package/dist/analysis/sources/database.d.ts +12 -0
  82. package/dist/analysis/sources/database.d.ts.map +1 -0
  83. package/dist/analysis/sources/database.js +211 -0
  84. package/dist/analysis/sources/database.js.map +1 -0
  85. package/dist/analysis/sources/environment.d.ts +12 -0
  86. package/dist/analysis/sources/environment.d.ts.map +1 -0
  87. package/dist/analysis/sources/environment.js +158 -0
  88. package/dist/analysis/sources/environment.js.map +1 -0
  89. package/dist/analysis/sources/file-system.d.ts +12 -0
  90. package/dist/analysis/sources/file-system.d.ts.map +1 -0
  91. package/dist/analysis/sources/file-system.js +180 -0
  92. package/dist/analysis/sources/file-system.js.map +1 -0
  93. package/dist/analysis/sources/http-request.d.ts +12 -0
  94. package/dist/analysis/sources/http-request.d.ts.map +1 -0
  95. package/dist/analysis/sources/http-request.js +179 -0
  96. package/dist/analysis/sources/http-request.js.map +1 -0
  97. package/dist/analysis/sources/index.d.ts +26 -0
  98. package/dist/analysis/sources/index.d.ts.map +1 -0
  99. package/dist/analysis/sources/index.js +40 -0
  100. package/dist/analysis/sources/index.js.map +1 -0
  101. package/dist/analysis/sources/types.d.ts +93 -0
  102. package/dist/analysis/sources/types.d.ts.map +1 -0
  103. package/dist/analysis/sources/types.js +7 -0
  104. package/dist/analysis/sources/types.js.map +1 -0
  105. package/dist/analysis/sources/user-input.d.ts +12 -0
  106. package/dist/analysis/sources/user-input.d.ts.map +1 -0
  107. package/dist/analysis/sources/user-input.js +261 -0
  108. package/dist/analysis/sources/user-input.js.map +1 -0
  109. package/dist/cve/cpe-matcher.d.ts +183 -0
  110. package/dist/cve/cpe-matcher.d.ts.map +1 -0
  111. package/dist/cve/cpe-matcher.js +396 -0
  112. package/dist/cve/cpe-matcher.js.map +1 -0
  113. package/dist/cve/cve-cache.d.ts +225 -0
  114. package/dist/cve/cve-cache.d.ts.map +1 -0
  115. package/dist/cve/cve-cache.js +452 -0
  116. package/dist/cve/cve-cache.js.map +1 -0
  117. package/dist/cve/cve-cache.test.d.ts +6 -0
  118. package/dist/cve/cve-cache.test.d.ts.map +1 -0
  119. package/dist/cve/cve-cache.test.js +363 -0
  120. package/dist/cve/cve-cache.test.js.map +1 -0
  121. package/dist/cve/dependency-parser.d.ts +204 -0
  122. package/dist/cve/dependency-parser.d.ts.map +1 -0
  123. package/dist/cve/dependency-parser.js +338 -0
  124. package/dist/cve/dependency-parser.js.map +1 -0
  125. package/dist/cve/index.d.ts +20 -0
  126. package/dist/cve/index.d.ts.map +1 -0
  127. package/dist/cve/index.js +13 -0
  128. package/dist/cve/index.js.map +1 -0
  129. package/dist/cve/nvd-client.d.ts +137 -0
  130. package/dist/cve/nvd-client.d.ts.map +1 -0
  131. package/dist/cve/nvd-client.js +333 -0
  132. package/dist/cve/nvd-client.js.map +1 -0
  133. package/dist/cve/rate-limiter.d.ts +194 -0
  134. package/dist/cve/rate-limiter.d.ts.map +1 -0
  135. package/dist/cve/rate-limiter.js +276 -0
  136. package/dist/cve/rate-limiter.js.map +1 -0
  137. package/dist/cve/report-generator.d.ts +145 -0
  138. package/dist/cve/report-generator.d.ts.map +1 -0
  139. package/dist/cve/report-generator.js +377 -0
  140. package/dist/cve/report-generator.js.map +1 -0
  141. package/dist/cve/report-generator.test.d.ts +6 -0
  142. package/dist/cve/report-generator.test.d.ts.map +1 -0
  143. package/dist/cve/report-generator.test.js +275 -0
  144. package/dist/cve/report-generator.test.js.map +1 -0
  145. package/dist/cve/vulnerability-scanner.d.ts +198 -0
  146. package/dist/cve/vulnerability-scanner.d.ts.map +1 -0
  147. package/dist/cve/vulnerability-scanner.js +311 -0
  148. package/dist/cve/vulnerability-scanner.js.map +1 -0
  149. package/dist/cve/vulnerability-scanner.test.d.ts +6 -0
  150. package/dist/cve/vulnerability-scanner.test.d.ts.map +1 -0
  151. package/dist/cve/vulnerability-scanner.test.js +329 -0
  152. package/dist/cve/vulnerability-scanner.test.js.map +1 -0
  153. package/dist/index.d.ts +1 -0
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +4 -0
  156. package/dist/index.js.map +1 -1
  157. package/dist/rules/config/config-parser.d.ts +119 -0
  158. package/dist/rules/config/config-parser.d.ts.map +1 -0
  159. package/dist/rules/config/config-parser.js +376 -0
  160. package/dist/rules/config/config-parser.js.map +1 -0
  161. package/dist/rules/config/index.d.ts +8 -0
  162. package/dist/rules/config/index.d.ts.map +1 -0
  163. package/dist/rules/config/index.js +8 -0
  164. package/dist/rules/config/index.js.map +1 -0
  165. package/dist/rules/config/profiles.d.ts +85 -0
  166. package/dist/rules/config/profiles.d.ts.map +1 -0
  167. package/dist/rules/config/profiles.js +226 -0
  168. package/dist/rules/config/profiles.js.map +1 -0
  169. package/dist/rules/cwe/cwe-119-buffer-overflow.d.ts +9 -0
  170. package/dist/rules/cwe/cwe-119-buffer-overflow.d.ts.map +1 -0
  171. package/dist/rules/cwe/cwe-119-buffer-overflow.js +54 -0
  172. package/dist/rules/cwe/cwe-119-buffer-overflow.js.map +1 -0
  173. package/dist/rules/cwe/cwe-125-oob-read.d.ts +20 -0
  174. package/dist/rules/cwe/cwe-125-oob-read.d.ts.map +1 -0
  175. package/dist/rules/cwe/cwe-125-oob-read.js +247 -0
  176. package/dist/rules/cwe/cwe-125-oob-read.js.map +1 -0
  177. package/dist/rules/cwe/cwe-190-integer-overflow.d.ts +9 -0
  178. package/dist/rules/cwe/cwe-190-integer-overflow.d.ts.map +1 -0
  179. package/dist/rules/cwe/cwe-190-integer-overflow.js +55 -0
  180. package/dist/rules/cwe/cwe-190-integer-overflow.js.map +1 -0
  181. package/dist/rules/cwe/cwe-20-input-validation.d.ts +21 -0
  182. package/dist/rules/cwe/cwe-20-input-validation.d.ts.map +1 -0
  183. package/dist/rules/cwe/cwe-20-input-validation.js +342 -0
  184. package/dist/rules/cwe/cwe-20-input-validation.js.map +1 -0
  185. package/dist/rules/cwe/cwe-22-path-traversal.d.ts +20 -0
  186. package/dist/rules/cwe/cwe-22-path-traversal.d.ts.map +1 -0
  187. package/dist/rules/cwe/cwe-22-path-traversal.js +306 -0
  188. package/dist/rules/cwe/cwe-22-path-traversal.js.map +1 -0
  189. package/dist/rules/cwe/cwe-269-improper-privilege.d.ts +9 -0
  190. package/dist/rules/cwe/cwe-269-improper-privilege.d.ts.map +1 -0
  191. package/dist/rules/cwe/cwe-269-improper-privilege.js +58 -0
  192. package/dist/rules/cwe/cwe-269-improper-privilege.js.map +1 -0
  193. package/dist/rules/cwe/cwe-276-default-permissions.d.ts +9 -0
  194. package/dist/rules/cwe/cwe-276-default-permissions.d.ts.map +1 -0
  195. package/dist/rules/cwe/cwe-276-default-permissions.js +54 -0
  196. package/dist/rules/cwe/cwe-276-default-permissions.js.map +1 -0
  197. package/dist/rules/cwe/cwe-287-improper-auth.d.ts +9 -0
  198. package/dist/rules/cwe/cwe-287-improper-auth.d.ts.map +1 -0
  199. package/dist/rules/cwe/cwe-287-improper-auth.js +57 -0
  200. package/dist/rules/cwe/cwe-287-improper-auth.js.map +1 -0
  201. package/dist/rules/cwe/cwe-306-missing-auth-critical.d.ts +9 -0
  202. package/dist/rules/cwe/cwe-306-missing-auth-critical.d.ts.map +1 -0
  203. package/dist/rules/cwe/cwe-306-missing-auth-critical.js +53 -0
  204. package/dist/rules/cwe/cwe-306-missing-auth-critical.js.map +1 -0
  205. package/dist/rules/cwe/cwe-352-csrf.d.ts +9 -0
  206. package/dist/rules/cwe/cwe-352-csrf.d.ts.map +1 -0
  207. package/dist/rules/cwe/cwe-352-csrf.js +51 -0
  208. package/dist/rules/cwe/cwe-352-csrf.js.map +1 -0
  209. package/dist/rules/cwe/cwe-362-race-condition.d.ts +9 -0
  210. package/dist/rules/cwe/cwe-362-race-condition.d.ts.map +1 -0
  211. package/dist/rules/cwe/cwe-362-race-condition.js +55 -0
  212. package/dist/rules/cwe/cwe-362-race-condition.js.map +1 -0
  213. package/dist/rules/cwe/cwe-416-use-after-free.d.ts +23 -0
  214. package/dist/rules/cwe/cwe-416-use-after-free.d.ts.map +1 -0
  215. package/dist/rules/cwe/cwe-416-use-after-free.js +402 -0
  216. package/dist/rules/cwe/cwe-416-use-after-free.js.map +1 -0
  217. package/dist/rules/cwe/cwe-434-file-upload.d.ts +9 -0
  218. package/dist/rules/cwe/cwe-434-file-upload.d.ts.map +1 -0
  219. package/dist/rules/cwe/cwe-434-file-upload.js +55 -0
  220. package/dist/rules/cwe/cwe-434-file-upload.js.map +1 -0
  221. package/dist/rules/cwe/cwe-476-null-deref.d.ts +9 -0
  222. package/dist/rules/cwe/cwe-476-null-deref.d.ts.map +1 -0
  223. package/dist/rules/cwe/cwe-476-null-deref.js +55 -0
  224. package/dist/rules/cwe/cwe-476-null-deref.js.map +1 -0
  225. package/dist/rules/cwe/cwe-502-deserialization.d.ts +9 -0
  226. package/dist/rules/cwe/cwe-502-deserialization.d.ts.map +1 -0
  227. package/dist/rules/cwe/cwe-502-deserialization.js +57 -0
  228. package/dist/rules/cwe/cwe-502-deserialization.js.map +1 -0
  229. package/dist/rules/cwe/cwe-77-command-injection.d.ts +9 -0
  230. package/dist/rules/cwe/cwe-77-command-injection.d.ts.map +1 -0
  231. package/dist/rules/cwe/cwe-77-command-injection.js +55 -0
  232. package/dist/rules/cwe/cwe-77-command-injection.js.map +1 -0
  233. package/dist/rules/cwe/cwe-78-command-injection.d.ts +20 -0
  234. package/dist/rules/cwe/cwe-78-command-injection.d.ts.map +1 -0
  235. package/dist/rules/cwe/cwe-78-command-injection.js +259 -0
  236. package/dist/rules/cwe/cwe-78-command-injection.js.map +1 -0
  237. package/dist/rules/cwe/cwe-787-oob-write.d.ts +21 -0
  238. package/dist/rules/cwe/cwe-787-oob-write.d.ts.map +1 -0
  239. package/dist/rules/cwe/cwe-787-oob-write.js +321 -0
  240. package/dist/rules/cwe/cwe-787-oob-write.js.map +1 -0
  241. package/dist/rules/cwe/cwe-79-xss.d.ts +22 -0
  242. package/dist/rules/cwe/cwe-79-xss.d.ts.map +1 -0
  243. package/dist/rules/cwe/cwe-79-xss.js +386 -0
  244. package/dist/rules/cwe/cwe-79-xss.js.map +1 -0
  245. package/dist/rules/cwe/cwe-798-hardcoded-credentials.d.ts +9 -0
  246. package/dist/rules/cwe/cwe-798-hardcoded-credentials.d.ts.map +1 -0
  247. package/dist/rules/cwe/cwe-798-hardcoded-credentials.js +58 -0
  248. package/dist/rules/cwe/cwe-798-hardcoded-credentials.js.map +1 -0
  249. package/dist/rules/cwe/cwe-862-missing-auth.d.ts +9 -0
  250. package/dist/rules/cwe/cwe-862-missing-auth.d.ts.map +1 -0
  251. package/dist/rules/cwe/cwe-862-missing-auth.js +55 -0
  252. package/dist/rules/cwe/cwe-862-missing-auth.js.map +1 -0
  253. package/dist/rules/cwe/cwe-863-incorrect-auth.d.ts +9 -0
  254. package/dist/rules/cwe/cwe-863-incorrect-auth.d.ts.map +1 -0
  255. package/dist/rules/cwe/cwe-863-incorrect-auth.js +58 -0
  256. package/dist/rules/cwe/cwe-863-incorrect-auth.js.map +1 -0
  257. package/dist/rules/cwe/cwe-89-sql-injection.d.ts +21 -0
  258. package/dist/rules/cwe/cwe-89-sql-injection.d.ts.map +1 -0
  259. package/dist/rules/cwe/cwe-89-sql-injection.js +456 -0
  260. package/dist/rules/cwe/cwe-89-sql-injection.js.map +1 -0
  261. package/dist/rules/cwe/cwe-918-ssrf.d.ts +9 -0
  262. package/dist/rules/cwe/cwe-918-ssrf.d.ts.map +1 -0
  263. package/dist/rules/cwe/cwe-918-ssrf.js +59 -0
  264. package/dist/rules/cwe/cwe-918-ssrf.js.map +1 -0
  265. package/dist/rules/cwe/cwe-94-code-injection.d.ts +9 -0
  266. package/dist/rules/cwe/cwe-94-code-injection.d.ts.map +1 -0
  267. package/dist/rules/cwe/cwe-94-code-injection.js +59 -0
  268. package/dist/rules/cwe/cwe-94-code-injection.js.map +1 -0
  269. package/dist/rules/cwe/index.d.ts +43 -0
  270. package/dist/rules/cwe/index.d.ts.map +1 -0
  271. package/dist/rules/cwe/index.js +99 -0
  272. package/dist/rules/cwe/index.js.map +1 -0
  273. package/dist/rules/engine/index.d.ts +10 -0
  274. package/dist/rules/engine/index.d.ts.map +1 -0
  275. package/dist/rules/engine/index.js +9 -0
  276. package/dist/rules/engine/index.js.map +1 -0
  277. package/dist/rules/engine/rule-context.d.ts +99 -0
  278. package/dist/rules/engine/rule-context.d.ts.map +1 -0
  279. package/dist/rules/engine/rule-context.js +175 -0
  280. package/dist/rules/engine/rule-context.js.map +1 -0
  281. package/dist/rules/engine/rule-engine.d.ts +132 -0
  282. package/dist/rules/engine/rule-engine.d.ts.map +1 -0
  283. package/dist/rules/engine/rule-engine.js +379 -0
  284. package/dist/rules/engine/rule-engine.js.map +1 -0
  285. package/dist/rules/engine/rule-registry.d.ts +133 -0
  286. package/dist/rules/engine/rule-registry.d.ts.map +1 -0
  287. package/dist/rules/engine/rule-registry.js +281 -0
  288. package/dist/rules/engine/rule-registry.js.map +1 -0
  289. package/dist/rules/index.d.ts +14 -0
  290. package/dist/rules/index.d.ts.map +1 -0
  291. package/dist/rules/index.js +16 -0
  292. package/dist/rules/index.js.map +1 -0
  293. package/dist/rules/owasp/a01-broken-access-control.d.ts +19 -0
  294. package/dist/rules/owasp/a01-broken-access-control.d.ts.map +1 -0
  295. package/dist/rules/owasp/a01-broken-access-control.js +295 -0
  296. package/dist/rules/owasp/a01-broken-access-control.js.map +1 -0
  297. package/dist/rules/owasp/a02-cryptographic-failures.d.ts +19 -0
  298. package/dist/rules/owasp/a02-cryptographic-failures.d.ts.map +1 -0
  299. package/dist/rules/owasp/a02-cryptographic-failures.js +327 -0
  300. package/dist/rules/owasp/a02-cryptographic-failures.js.map +1 -0
  301. package/dist/rules/owasp/a03-injection.d.ts +21 -0
  302. package/dist/rules/owasp/a03-injection.d.ts.map +1 -0
  303. package/dist/rules/owasp/a03-injection.js +342 -0
  304. package/dist/rules/owasp/a03-injection.js.map +1 -0
  305. package/dist/rules/owasp/a04-insecure-design.d.ts +19 -0
  306. package/dist/rules/owasp/a04-insecure-design.d.ts.map +1 -0
  307. package/dist/rules/owasp/a04-insecure-design.js +403 -0
  308. package/dist/rules/owasp/a04-insecure-design.js.map +1 -0
  309. package/dist/rules/owasp/a05-security-misconfiguration.d.ts +19 -0
  310. package/dist/rules/owasp/a05-security-misconfiguration.d.ts.map +1 -0
  311. package/dist/rules/owasp/a05-security-misconfiguration.js +371 -0
  312. package/dist/rules/owasp/a05-security-misconfiguration.js.map +1 -0
  313. package/dist/rules/owasp/a06-vulnerable-components.d.ts +18 -0
  314. package/dist/rules/owasp/a06-vulnerable-components.d.ts.map +1 -0
  315. package/dist/rules/owasp/a06-vulnerable-components.js +243 -0
  316. package/dist/rules/owasp/a06-vulnerable-components.js.map +1 -0
  317. package/dist/rules/owasp/a07-auth-failures.d.ts +19 -0
  318. package/dist/rules/owasp/a07-auth-failures.d.ts.map +1 -0
  319. package/dist/rules/owasp/a07-auth-failures.js +300 -0
  320. package/dist/rules/owasp/a07-auth-failures.js.map +1 -0
  321. package/dist/rules/owasp/a08-integrity-failures.d.ts +18 -0
  322. package/dist/rules/owasp/a08-integrity-failures.d.ts.map +1 -0
  323. package/dist/rules/owasp/a08-integrity-failures.js +306 -0
  324. package/dist/rules/owasp/a08-integrity-failures.js.map +1 -0
  325. package/dist/rules/owasp/a09-logging-failures.d.ts +18 -0
  326. package/dist/rules/owasp/a09-logging-failures.d.ts.map +1 -0
  327. package/dist/rules/owasp/a09-logging-failures.js +339 -0
  328. package/dist/rules/owasp/a09-logging-failures.js.map +1 -0
  329. package/dist/rules/owasp/a10-ssrf.d.ts +18 -0
  330. package/dist/rules/owasp/a10-ssrf.d.ts.map +1 -0
  331. package/dist/rules/owasp/a10-ssrf.js +349 -0
  332. package/dist/rules/owasp/a10-ssrf.js.map +1 -0
  333. package/dist/rules/owasp/index.d.ts +20 -0
  334. package/dist/rules/owasp/index.d.ts.map +1 -0
  335. package/dist/rules/owasp/index.js +53 -0
  336. package/dist/rules/owasp/index.js.map +1 -0
  337. package/dist/rules/types.d.ts +277 -0
  338. package/dist/rules/types.d.ts.map +1 -0
  339. package/dist/rules/types.js +34 -0
  340. package/dist/rules/types.js.map +1 -0
  341. package/dist/tests/integration/epic-integration.test.d.ts +7 -0
  342. package/dist/tests/integration/epic-integration.test.d.ts.map +1 -0
  343. package/dist/tests/integration/epic-integration.test.js +390 -0
  344. package/dist/tests/integration/epic-integration.test.js.map +1 -0
  345. package/dist/tests/rules/cwe/cwe-top25-1-13.test.d.ts +2 -0
  346. package/dist/tests/rules/cwe/cwe-top25-1-13.test.d.ts.map +1 -0
  347. package/dist/tests/rules/cwe/cwe-top25-1-13.test.js +154 -0
  348. package/dist/tests/rules/cwe/cwe-top25-1-13.test.js.map +1 -0
  349. package/dist/tests/rules/cwe/cwe-top25-14-25.test.d.ts +2 -0
  350. package/dist/tests/rules/cwe/cwe-top25-14-25.test.d.ts.map +1 -0
  351. package/dist/tests/rules/cwe/cwe-top25-14-25.test.js +121 -0
  352. package/dist/tests/rules/cwe/cwe-top25-14-25.test.js.map +1 -0
  353. package/dist/types/cve.d.ts +278 -0
  354. package/dist/types/cve.d.ts.map +1 -0
  355. package/dist/types/cve.js +7 -0
  356. package/dist/types/cve.js.map +1 -0
  357. package/dist/types/index.d.ts +2 -0
  358. package/dist/types/index.d.ts.map +1 -1
  359. package/dist/types/rule.d.ts +245 -0
  360. package/dist/types/rule.d.ts.map +1 -0
  361. package/dist/types/rule.js +7 -0
  362. package/dist/types/rule.js.map +1 -0
  363. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a06-vulnerable-components.js","sourceRoot":"","sources":["../../../src/rules/owasp/a06-vulnerable-components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @fileoverview OWASP A07:2021 - Identification and Authentication Failures
3
+ * @module @nahisaho/musubix-security/rules/owasp/a07
4
+ * @trace REQ-SEC-OWASP-007
5
+ */
6
+ import type { SecurityRule } from '../types.js';
7
+ /**
8
+ * OWASP A07:2021 - Identification and Authentication Failures
9
+ *
10
+ * Detects:
11
+ * - Weak password requirements
12
+ * - Missing brute-force protection
13
+ * - Insecure session management
14
+ * - Credential exposure
15
+ * - Missing MFA considerations
16
+ */
17
+ export declare const owaspA07AuthFailures: SecurityRule;
18
+ export default owaspA07AuthFailures;
19
+ //# sourceMappingURL=a07-auth-failures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a07-auth-failures.d.ts","sourceRoot":"","sources":["../../../src/rules/owasp/a07-auth-failures.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AAEzF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,YA8BlC,CAAC;AAsRF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * @fileoverview OWASP A07:2021 - Identification and Authentication Failures
3
+ * @module @nahisaho/musubix-security/rules/owasp/a07
4
+ * @trace REQ-SEC-OWASP-007
5
+ */
6
+ /**
7
+ * OWASP A07:2021 - Identification and Authentication Failures
8
+ *
9
+ * Detects:
10
+ * - Weak password requirements
11
+ * - Missing brute-force protection
12
+ * - Insecure session management
13
+ * - Credential exposure
14
+ * - Missing MFA considerations
15
+ */
16
+ export const owaspA07AuthFailures = {
17
+ id: 'owasp-a07-auth-failures',
18
+ name: 'OWASP A07:2021 - Identification and Authentication Failures',
19
+ description: 'Detects weak authentication patterns and credential management issues',
20
+ defaultSeverity: 'critical',
21
+ category: 'authentication',
22
+ owasp: ['A07:2021'],
23
+ cwe: ['287', '288', '307', '384', '521', '613', '620', '640', '798'],
24
+ references: [
25
+ {
26
+ title: 'OWASP A07:2021',
27
+ url: 'https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/',
28
+ },
29
+ {
30
+ title: 'CWE-287: Improper Authentication',
31
+ url: 'https://cwe.mitre.org/data/definitions/287.html',
32
+ },
33
+ ],
34
+ async analyze(context) {
35
+ const findings = [];
36
+ checkWeakPasswordPolicy(context, findings);
37
+ checkInsecureSession(context, findings);
38
+ checkCredentialExposure(context, findings);
39
+ checkMissingBruteForceProtection(context, findings);
40
+ checkInsecureTokenHandling(context, findings);
41
+ return findings;
42
+ },
43
+ };
44
+ /**
45
+ * Check for weak password policies
46
+ */
47
+ function checkWeakPasswordPolicy(context, findings) {
48
+ const sourceCode = context.sourceCode;
49
+ const lines = sourceCode.split('\n');
50
+ const weakPolicies = [
51
+ // Minimum length too short
52
+ { pattern: /(?:minLength|min_length|minimum.*length)\s*[:=]\s*([1-7])\b/i, issue: 'Password minimum length too short (should be >= 8)' },
53
+ // No complexity requirements
54
+ { pattern: /password.*required\s*[:=]\s*(?:false|0)/i, issue: 'Password validation disabled' },
55
+ // Only checking length
56
+ { pattern: /password\.length\s*>=?\s*[1-5]\b/i, issue: 'Weak password length check' },
57
+ // Plain text password comparison
58
+ { pattern: /password\s*===?\s*(?:req\.body\.|params\.|user\.)/i, issue: 'Plain text password comparison' },
59
+ ];
60
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
61
+ const line = lines[lineNum];
62
+ for (const { pattern, issue } of weakPolicies) {
63
+ if (pattern.test(line)) {
64
+ findings.push({
65
+ id: `owasp-a07-password-${findings.length + 1}`,
66
+ ruleId: 'owasp-a07-auth-failures',
67
+ severity: 'high',
68
+ message: `Weak password policy: ${issue}`,
69
+ location: {
70
+ file: context.filePath,
71
+ startLine: lineNum + 1,
72
+ endLine: lineNum + 1,
73
+ startColumn: 0,
74
+ endColumn: line.length,
75
+ },
76
+ cwe: ['521'],
77
+ suggestion: {
78
+ description: 'Enforce strong password policy',
79
+ example: `// Use strong password validation:
80
+ const passwordSchema = {
81
+ minLength: 12,
82
+ requireUppercase: true,
83
+ requireLowercase: true,
84
+ requireNumbers: true,
85
+ requireSpecialChars: true
86
+ };`,
87
+ },
88
+ });
89
+ break;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Check for insecure session management
96
+ */
97
+ function checkInsecureSession(context, findings) {
98
+ const sourceCode = context.sourceCode;
99
+ const lines = sourceCode.split('\n');
100
+ const sessionPatterns = [
101
+ // Insecure cookie settings
102
+ { pattern: /secure\s*:\s*false/i, issue: 'Insecure cookie (missing secure flag)' },
103
+ { pattern: /httpOnly\s*:\s*false/i, issue: 'Cookie vulnerable to XSS (httpOnly disabled)' },
104
+ { pattern: /sameSite\s*:\s*['"`]none['"`]/i, issue: 'SameSite=None without proper security' },
105
+ // Long session expiry
106
+ { pattern: /(?:maxAge|expires)\s*[:=]\s*(?:31536000000|365\s*\*\s*24)/i, issue: 'Excessively long session duration (1 year)' },
107
+ // Session fixation risk
108
+ { pattern: /req\.session\s*=\s*req\.(?:body|query|params)/i, issue: 'Potential session fixation vulnerability' },
109
+ // No session regeneration after login
110
+ { pattern: /(?:login|authenticate).*\{[^}]*(?!regenerate|destroy)/i, issue: 'Missing session regeneration after authentication' },
111
+ ];
112
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
113
+ const line = lines[lineNum];
114
+ for (const { pattern, issue } of sessionPatterns) {
115
+ if (pattern.test(line)) {
116
+ findings.push({
117
+ id: `owasp-a07-session-${findings.length + 1}`,
118
+ ruleId: 'owasp-a07-auth-failures',
119
+ severity: 'high',
120
+ message: `Insecure session management: ${issue}`,
121
+ location: {
122
+ file: context.filePath,
123
+ startLine: lineNum + 1,
124
+ endLine: lineNum + 1,
125
+ startColumn: 0,
126
+ endColumn: line.length,
127
+ },
128
+ cwe: ['384', '613'],
129
+ suggestion: {
130
+ description: 'Use secure session configuration',
131
+ example: `// Secure session configuration:
132
+ app.use(session({
133
+ secret: process.env.SESSION_SECRET,
134
+ cookie: {
135
+ secure: true,
136
+ httpOnly: true,
137
+ sameSite: 'strict',
138
+ maxAge: 3600000 // 1 hour
139
+ },
140
+ resave: false,
141
+ saveUninitialized: false
142
+ }));`,
143
+ },
144
+ });
145
+ break;
146
+ }
147
+ }
148
+ }
149
+ }
150
+ /**
151
+ * Check for credential exposure
152
+ */
153
+ function checkCredentialExposure(context, findings) {
154
+ const sourceCode = context.sourceCode;
155
+ const lines = sourceCode.split('\n');
156
+ const exposurePatterns = [
157
+ // Password in logs
158
+ { pattern: /console\.(?:log|info|debug|warn|error)\s*\([^)]*(?:password|secret|token|key)/i, issue: 'Credential logged to console' },
159
+ { pattern: /logger\.(?:log|info|debug|warn|error)\s*\([^)]*(?:password|secret|token|key)/i, issue: 'Credential logged' },
160
+ // Password in URL
161
+ { pattern: /(?:href|url|redirect)\s*[:=].*[?&]password=/i, issue: 'Password in URL parameter' },
162
+ // Password in error message
163
+ { pattern: /(?:throw|Error)\s*\([^)]*password/i, issue: 'Password in error message' },
164
+ // Credential in response
165
+ { pattern: /res\.(?:json|send)\s*\([^)]*password/i, issue: 'Password in response body' },
166
+ ];
167
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
168
+ const line = lines[lineNum];
169
+ for (const { pattern, issue } of exposurePatterns) {
170
+ if (pattern.test(line)) {
171
+ findings.push({
172
+ id: `owasp-a07-exposure-${findings.length + 1}`,
173
+ ruleId: 'owasp-a07-auth-failures',
174
+ severity: 'critical',
175
+ message: `Credential exposure risk: ${issue}`,
176
+ location: {
177
+ file: context.filePath,
178
+ startLine: lineNum + 1,
179
+ endLine: lineNum + 1,
180
+ startColumn: 0,
181
+ endColumn: line.length,
182
+ },
183
+ cwe: ['312', '319', '532'],
184
+ suggestion: {
185
+ description: 'Never expose credentials in logs, URLs, or responses',
186
+ example: `// Redact sensitive data:
187
+ const safeUser = { ...user, password: '[REDACTED]' };
188
+ console.log('User:', safeUser);`,
189
+ },
190
+ });
191
+ break;
192
+ }
193
+ }
194
+ }
195
+ }
196
+ /**
197
+ * Check for missing brute-force protection
198
+ */
199
+ function checkMissingBruteForceProtection(context, findings) {
200
+ const sourceCode = context.sourceCode;
201
+ // Check if this looks like a login handler
202
+ const hasLoginEndpoint = /(?:post|handle)\s*\(\s*['"`]\/(?:api\/)?(?:login|signin|authenticate)['"`]/i.test(sourceCode);
203
+ const hasRateLimiting = /(?:rateLimit|express-rate-limit|rate-limiter|limiter)/i.test(sourceCode);
204
+ const hasAccountLockout = /(?:lockout|attempt.*count|failed.*attempts|max.*attempts)/i.test(sourceCode);
205
+ if (hasLoginEndpoint && !hasRateLimiting && !hasAccountLockout) {
206
+ const lines = sourceCode.split('\n');
207
+ let loginLine = 0;
208
+ for (let i = 0; i < lines.length; i++) {
209
+ if (/(?:post|handle)\s*\(\s*['"`]\/(?:api\/)?(?:login|signin|authenticate)['"`]/i.test(lines[i])) {
210
+ loginLine = i;
211
+ break;
212
+ }
213
+ }
214
+ findings.push({
215
+ id: `owasp-a07-bruteforce-${findings.length + 1}`,
216
+ ruleId: 'owasp-a07-auth-failures',
217
+ severity: 'high',
218
+ message: 'Login endpoint without brute-force protection',
219
+ location: {
220
+ file: context.filePath,
221
+ startLine: loginLine + 1,
222
+ endLine: loginLine + 1,
223
+ startColumn: 0,
224
+ endColumn: lines[loginLine]?.length || 0,
225
+ },
226
+ cwe: ['307'],
227
+ suggestion: {
228
+ description: 'Add rate limiting and account lockout',
229
+ example: `// Use express-rate-limit:
230
+ const loginLimiter = rateLimit({
231
+ windowMs: 15 * 60 * 1000, // 15 minutes
232
+ max: 5, // 5 attempts
233
+ skipSuccessfulRequests: true
234
+ });
235
+
236
+ app.post('/login', loginLimiter, async (req, res) => {
237
+ // Also implement account lockout after N failed attempts
238
+ });`,
239
+ },
240
+ });
241
+ }
242
+ }
243
+ /**
244
+ * Check for insecure token handling
245
+ */
246
+ function checkInsecureTokenHandling(context, findings) {
247
+ const sourceCode = context.sourceCode;
248
+ const lines = sourceCode.split('\n');
249
+ const tokenPatterns = [
250
+ // JWT without verification
251
+ { pattern: /jwt\.decode\s*\(/i, issue: 'JWT decoded without signature verification' },
252
+ // JWT with 'none' algorithm
253
+ { pattern: /algorithm\s*[:=]\s*['"`]none['"`]/i, issue: 'JWT with "none" algorithm' },
254
+ // Token in localStorage
255
+ { pattern: /localStorage\.setItem\s*\([^)]*(?:token|jwt|auth)/i, issue: 'Sensitive token stored in localStorage (XSS risk)' },
256
+ // Token in query string
257
+ { pattern: /[?&]token=/i, issue: 'Token passed in URL query string' },
258
+ // Long-lived tokens
259
+ { pattern: /expiresIn\s*[:=]\s*['"`](?:30d|365d|1y)['"`]/i, issue: 'Excessively long token expiration' },
260
+ // Missing token expiration
261
+ { pattern: /jwt\.sign\s*\([^)]*(?!expiresIn)/i, issue: 'JWT without expiration' },
262
+ ];
263
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
264
+ const line = lines[lineNum];
265
+ for (const { pattern, issue } of tokenPatterns) {
266
+ if (pattern.test(line)) {
267
+ findings.push({
268
+ id: `owasp-a07-token-${findings.length + 1}`,
269
+ ruleId: 'owasp-a07-auth-failures',
270
+ severity: 'high',
271
+ message: `Insecure token handling: ${issue}`,
272
+ location: {
273
+ file: context.filePath,
274
+ startLine: lineNum + 1,
275
+ endLine: lineNum + 1,
276
+ startColumn: 0,
277
+ endColumn: line.length,
278
+ },
279
+ cwe: ['287', '311'],
280
+ suggestion: {
281
+ description: 'Use secure token practices',
282
+ example: `// Secure JWT handling:
283
+ const token = jwt.sign(payload, secret, {
284
+ algorithm: 'RS256',
285
+ expiresIn: '15m' // Short-lived access token
286
+ });
287
+
288
+ // Always verify tokens:
289
+ const decoded = jwt.verify(token, publicKey);
290
+
291
+ // Store tokens in httpOnly cookies, not localStorage`,
292
+ },
293
+ });
294
+ break;
295
+ }
296
+ }
297
+ }
298
+ }
299
+ export default owaspA07AuthFailures;
300
+ //# sourceMappingURL=a07-auth-failures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a07-auth-failures.js","sourceRoot":"","sources":["../../../src/rules/owasp/a07-auth-failures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview OWASP A08:2021 - Software and Data Integrity Failures
3
+ * @module @nahisaho/musubix-security/rules/owasp/a08
4
+ * @trace REQ-SEC-OWASP-008
5
+ */
6
+ import type { SecurityRule } from '../types.js';
7
+ /**
8
+ * OWASP A08:2021 - Software and Data Integrity Failures
9
+ *
10
+ * Detects:
11
+ * - Insecure deserialization
12
+ * - Missing integrity verification
13
+ * - Untrusted CI/CD pipelines
14
+ * - Auto-update vulnerabilities
15
+ */
16
+ export declare const owaspA08IntegrityFailures: SecurityRule;
17
+ export default owaspA08IntegrityFailures;
18
+ //# sourceMappingURL=a08-integrity-failures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a08-integrity-failures.d.ts","sourceRoot":"","sources":["../../../src/rules/owasp/a08-integrity-failures.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AAEzF;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,EAAE,YA8BvC,CAAC;AA8RF,eAAe,yBAAyB,CAAC"}