@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,306 @@
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
+ /**
7
+ * OWASP A08:2021 - Software and Data Integrity Failures
8
+ *
9
+ * Detects:
10
+ * - Insecure deserialization
11
+ * - Missing integrity verification
12
+ * - Untrusted CI/CD pipelines
13
+ * - Auto-update vulnerabilities
14
+ */
15
+ export const owaspA08IntegrityFailures = {
16
+ id: 'owasp-a08-integrity-failures',
17
+ name: 'OWASP A08:2021 - Software and Data Integrity Failures',
18
+ description: 'Detects insecure deserialization and missing integrity verification',
19
+ defaultSeverity: 'critical',
20
+ category: 'integrity',
21
+ owasp: ['A08:2021'],
22
+ cwe: ['502', '829', '494', '915'],
23
+ references: [
24
+ {
25
+ title: 'OWASP A08:2021',
26
+ url: 'https://owasp.org/Top10/A08_2021-Software_and_Data_Integrity_Failures/',
27
+ },
28
+ {
29
+ title: 'CWE-502: Deserialization of Untrusted Data',
30
+ url: 'https://cwe.mitre.org/data/definitions/502.html',
31
+ },
32
+ ],
33
+ async analyze(context) {
34
+ const findings = [];
35
+ checkInsecureDeserialization(context, findings);
36
+ checkUnsafeJSONParse(context, findings);
37
+ checkMissingIntegrityChecks(context, findings);
38
+ checkUnsafeAutoUpdate(context, findings);
39
+ checkObjectInjection(context, findings);
40
+ return findings;
41
+ },
42
+ };
43
+ /**
44
+ * Check for insecure deserialization
45
+ */
46
+ function checkInsecureDeserialization(context, findings) {
47
+ const sourceCode = context.sourceCode;
48
+ const lines = sourceCode.split('\n');
49
+ const deserializationPatterns = [
50
+ // Node.js serialize
51
+ { pattern: /node-serialize.*unserialize|unserialize\s*\(/i, lib: 'node-serialize', issue: 'Known RCE vulnerability' },
52
+ { pattern: /serialize-javascript.*deserialize/i, lib: 'serialize-javascript', issue: 'Potential code execution' },
53
+ // YAML deserialization
54
+ { pattern: /yaml\.(?:load|parse)\s*\([^)]*(?:req\.|body\.|params\.)/i, lib: 'yaml', issue: 'Unsafe YAML deserialization with user input' },
55
+ { pattern: /js-yaml.*safeLoad.*false|yaml\.load\s*\([^,]+,\s*\{\s*schema/i, lib: 'js-yaml', issue: 'YAML deserialization with unsafe schema' },
56
+ // XML deserialization
57
+ { pattern: /xml2js.*parseString\s*\([^)]*(?:req\.|body\.)/i, lib: 'xml2js', issue: 'XML parsing of user input' },
58
+ // Pickle-like (if in Python-related code)
59
+ { pattern: /pickle\.loads?\s*\(/i, lib: 'pickle', issue: 'Unsafe pickle deserialization' },
60
+ ];
61
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
62
+ const line = lines[lineNum];
63
+ for (const { pattern, lib, issue } of deserializationPatterns) {
64
+ if (pattern.test(line)) {
65
+ findings.push({
66
+ id: `owasp-a08-deserialize-${findings.length + 1}`,
67
+ ruleId: 'owasp-a08-integrity-failures',
68
+ severity: 'critical',
69
+ message: `Insecure deserialization: ${lib} - ${issue}`,
70
+ location: {
71
+ file: context.filePath,
72
+ startLine: lineNum + 1,
73
+ endLine: lineNum + 1,
74
+ startColumn: 0,
75
+ endColumn: line.length,
76
+ },
77
+ cwe: ['502'],
78
+ suggestion: {
79
+ description: 'Use safe deserialization methods and validate input',
80
+ example: `// For YAML, use safe loading:
81
+ const yaml = require('js-yaml');
82
+ const data = yaml.load(input, { schema: yaml.SAFE_SCHEMA });
83
+
84
+ // For JSON, use JSON.parse with validation:
85
+ const parsed = JSON.parse(input);
86
+ if (!isValidSchema(parsed)) throw new Error('Invalid data');`,
87
+ },
88
+ });
89
+ break;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Check for unsafe JSON.parse with user input
96
+ */
97
+ function checkUnsafeJSONParse(context, findings) {
98
+ const sourceCode = context.sourceCode;
99
+ const lines = sourceCode.split('\n');
100
+ const jsonPatterns = [
101
+ // JSON.parse of request body directly (without validation)
102
+ { pattern: /JSON\.parse\s*\(\s*req\.body\s*\)/i, issue: 'JSON.parse of raw request body' },
103
+ // JSON.parse of user-controlled string
104
+ { pattern: /JSON\.parse\s*\(\s*(?:userInput|input|data)\s*\)/i, issue: 'JSON.parse of potentially untrusted input' },
105
+ // eval-like JSON parsing
106
+ { pattern: /eval\s*\(\s*['"`]\s*\(\s*['"`]\s*\+/i, issue: 'eval-based parsing' },
107
+ // Function constructor for parsing
108
+ { pattern: /new\s+Function\s*\([^)]*(?:req\.|body\.|params\.)/i, issue: 'Function constructor with user input' },
109
+ ];
110
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
111
+ const line = lines[lineNum];
112
+ for (const { pattern, issue } of jsonPatterns) {
113
+ if (pattern.test(line)) {
114
+ // Check for validation in surrounding code
115
+ const surroundingCode = lines.slice(Math.max(0, lineNum - 3), lineNum + 4).join('\n');
116
+ const hasValidation = /(?:validate|schema|ajv|joi|zod|yup)/i.test(surroundingCode);
117
+ if (!hasValidation) {
118
+ findings.push({
119
+ id: `owasp-a08-json-${findings.length + 1}`,
120
+ ruleId: 'owasp-a08-integrity-failures',
121
+ severity: 'medium',
122
+ message: `Unsafe JSON parsing: ${issue}`,
123
+ location: {
124
+ file: context.filePath,
125
+ startLine: lineNum + 1,
126
+ endLine: lineNum + 1,
127
+ startColumn: 0,
128
+ endColumn: line.length,
129
+ },
130
+ cwe: ['502', '20'],
131
+ suggestion: {
132
+ description: 'Validate JSON data after parsing',
133
+ example: `// Use schema validation:
134
+ import Ajv from 'ajv';
135
+ const ajv = new Ajv();
136
+ const validate = ajv.compile(schema);
137
+
138
+ const data = JSON.parse(input);
139
+ if (!validate(data)) {
140
+ throw new Error('Invalid data format');
141
+ }`,
142
+ },
143
+ });
144
+ }
145
+ break;
146
+ }
147
+ }
148
+ }
149
+ }
150
+ /**
151
+ * Check for missing integrity checks
152
+ */
153
+ function checkMissingIntegrityChecks(context, findings) {
154
+ const sourceCode = context.sourceCode;
155
+ const lines = sourceCode.split('\n');
156
+ const integrityPatterns = [
157
+ // npm install without lock file check
158
+ { pattern: /npm\s+install(?!\s+--ignore-scripts)/i, cmdContext: true, issue: 'npm install without script safety' },
159
+ // curl piped to shell
160
+ { pattern: /curl\s+[^|]*\|\s*(?:bash|sh|zsh)/i, issue: 'curl piped to shell without verification' },
161
+ // wget with insecure option
162
+ { pattern: /wget\s+--no-check-certificate/i, issue: 'wget with certificate verification disabled' },
163
+ // Docker without digest
164
+ { pattern: /FROM\s+\S+(?!@sha256:)/i, fileContext: /dockerfile/i, issue: 'Docker image without digest verification' },
165
+ // Missing signature verification
166
+ { pattern: /download.*\{[^}]*(?!verify|signature|hash|checksum)/i, issue: 'Download without integrity verification' },
167
+ ];
168
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
169
+ const line = lines[lineNum];
170
+ for (const { pattern, issue, fileContext } of integrityPatterns) {
171
+ if (fileContext && !fileContext.test(context.filePath))
172
+ continue;
173
+ if (pattern.test(line)) {
174
+ findings.push({
175
+ id: `owasp-a08-integrity-${findings.length + 1}`,
176
+ ruleId: 'owasp-a08-integrity-failures',
177
+ severity: 'high',
178
+ message: `Missing integrity verification: ${issue}`,
179
+ location: {
180
+ file: context.filePath,
181
+ startLine: lineNum + 1,
182
+ endLine: lineNum + 1,
183
+ startColumn: 0,
184
+ endColumn: line.length,
185
+ },
186
+ cwe: ['494'],
187
+ suggestion: {
188
+ description: 'Always verify integrity of downloaded content',
189
+ example: `// Verify downloads with checksums:
190
+ const crypto = require('crypto');
191
+ const hash = crypto.createHash('sha256');
192
+ hash.update(downloadedContent);
193
+ if (hash.digest('hex') !== expectedHash) {
194
+ throw new Error('Integrity check failed');
195
+ }`,
196
+ },
197
+ });
198
+ break;
199
+ }
200
+ }
201
+ }
202
+ }
203
+ /**
204
+ * Check for unsafe auto-update mechanisms
205
+ */
206
+ function checkUnsafeAutoUpdate(context, findings) {
207
+ const sourceCode = context.sourceCode;
208
+ const lines = sourceCode.split('\n');
209
+ const autoUpdatePatterns = [
210
+ // Electron auto-update without verification
211
+ { pattern: /autoUpdater\.(?:setFeedURL|checkForUpdates)\s*\(/i, lib: 'electron-updater', issue: 'Ensure update server uses HTTPS and signature verification' },
212
+ // Custom update mechanism
213
+ { pattern: /fetch\s*\([^)]*update|download\s*\([^)]*latest/i, issue: 'Custom update mechanism without signature verification' },
214
+ // Update from HTTP
215
+ { pattern: /['"`]http:\/\/[^'"`]*\/(?:update|download|latest)/i, issue: 'Update URL using HTTP instead of HTTPS' },
216
+ ];
217
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
218
+ const line = lines[lineNum];
219
+ for (const { pattern, lib, issue } of autoUpdatePatterns) {
220
+ if (pattern.test(line)) {
221
+ // Check for signature verification
222
+ const surroundingCode = lines.slice(Math.max(0, lineNum - 5), lineNum + 6).join('\n');
223
+ const hasVerification = /(?:verify|signature|checksum|hash|publicKey)/i.test(surroundingCode);
224
+ if (!hasVerification) {
225
+ findings.push({
226
+ id: `owasp-a08-update-${findings.length + 1}`,
227
+ ruleId: 'owasp-a08-integrity-failures',
228
+ severity: 'high',
229
+ message: `Unsafe auto-update: ${lib ? `${lib} - ` : ''}${issue}`,
230
+ location: {
231
+ file: context.filePath,
232
+ startLine: lineNum + 1,
233
+ endLine: lineNum + 1,
234
+ startColumn: 0,
235
+ endColumn: line.length,
236
+ },
237
+ cwe: ['494'],
238
+ suggestion: {
239
+ description: 'Implement code signing and signature verification for updates',
240
+ example: `// Verify update signatures:
241
+ autoUpdater.autoInstallOnAppQuit = false;
242
+ autoUpdater.on('update-downloaded', (info) => {
243
+ if (verifySignature(info.downloadedFile, publicKey)) {
244
+ autoUpdater.quitAndInstall();
245
+ }
246
+ });`,
247
+ },
248
+ });
249
+ }
250
+ break;
251
+ }
252
+ }
253
+ }
254
+ }
255
+ /**
256
+ * Check for object injection vulnerabilities
257
+ */
258
+ function checkObjectInjection(context, findings) {
259
+ const sourceCode = context.sourceCode;
260
+ const lines = sourceCode.split('\n');
261
+ const objectInjectionPatterns = [
262
+ // Object spread with user input
263
+ { pattern: /\{\s*\.\.\.(?:req\.body|req\.params|req\.query)\s*\}/i, issue: 'Object spread with unvalidated user input' },
264
+ // Object.assign with user input
265
+ { pattern: /Object\.assign\s*\([^)]*(?:req\.body|req\.params|req\.query)/i, issue: 'Object.assign with user input' },
266
+ // Dynamic property access
267
+ { pattern: /\[\s*req\.(?:body|params|query)\.\w+\s*\]/i, issue: 'Dynamic property access with user input' },
268
+ // __proto__ manipulation risk
269
+ { pattern: /\[['"`]?__proto__|prototype\[/i, issue: 'Prototype pollution risk' },
270
+ ];
271
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
272
+ const line = lines[lineNum];
273
+ for (const { pattern, issue } of objectInjectionPatterns) {
274
+ if (pattern.test(line)) {
275
+ findings.push({
276
+ id: `owasp-a08-object-${findings.length + 1}`,
277
+ ruleId: 'owasp-a08-integrity-failures',
278
+ severity: 'high',
279
+ message: `Object injection vulnerability: ${issue}`,
280
+ location: {
281
+ file: context.filePath,
282
+ startLine: lineNum + 1,
283
+ endLine: lineNum + 1,
284
+ startColumn: 0,
285
+ endColumn: line.length,
286
+ },
287
+ cwe: ['915', '1321'],
288
+ suggestion: {
289
+ description: 'Use allowlists and explicit property access',
290
+ example: `// Use explicit property access with allowlist:
291
+ const allowedFields = ['name', 'email', 'age'];
292
+ const sanitized = {};
293
+ for (const key of allowedFields) {
294
+ if (req.body[key] !== undefined) {
295
+ sanitized[key] = req.body[key];
296
+ }
297
+ }`,
298
+ },
299
+ });
300
+ break;
301
+ }
302
+ }
303
+ }
304
+ }
305
+ export default owaspA08IntegrityFailures;
306
+ //# sourceMappingURL=a08-integrity-failures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a08-integrity-failures.js","sourceRoot":"","sources":["../../../src/rules/owasp/a08-integrity-failures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview OWASP A09:2021 - Security Logging and Monitoring Failures
3
+ * @module @nahisaho/musubix-security/rules/owasp/a09
4
+ * @trace REQ-SEC-OWASP-009
5
+ */
6
+ import type { SecurityRule } from '../types.js';
7
+ /**
8
+ * OWASP A09:2021 - Security Logging and Monitoring Failures
9
+ *
10
+ * Detects:
11
+ * - Missing security event logging
12
+ * - Sensitive data in logs
13
+ * - Insufficient log detail
14
+ * - Missing log integrity protection
15
+ */
16
+ export declare const owaspA09LoggingFailures: SecurityRule;
17
+ export default owaspA09LoggingFailures;
18
+ //# sourceMappingURL=a09-logging-failures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a09-logging-failures.d.ts","sourceRoot":"","sources":["../../../src/rules/owasp/a09-logging-failures.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AAEzF;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,YA8BrC,CAAC;AA8UF,eAAe,uBAAuB,CAAC"}