@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,180 @@
1
+ /**
2
+ * @fileoverview File system source definitions
3
+ * @module @nahisaho/musubix-security/analysis/sources/file-system
4
+ * @trace REQ-SEC-001
5
+ */
6
+ /**
7
+ * File system sources - file reads that may contain user-controlled data
8
+ * @trace REQ-SEC-001
9
+ */
10
+ export const FILE_SYSTEM_SOURCES = [
11
+ // Node.js fs module
12
+ {
13
+ id: 'SRC-FS-001',
14
+ name: 'Node.js File Read',
15
+ category: 'file-system',
16
+ framework: 'node',
17
+ patterns: [
18
+ { receiver: 'fs', method: 'readFile', taintedReturn: true },
19
+ { receiver: 'fs', method: 'readFileSync', taintedReturn: true },
20
+ { receiver: 'fs', method: 'read', taintedReturn: true },
21
+ { receiver: 'fs', method: 'readSync', taintedReturn: true },
22
+ {
23
+ importPattern: { module: 'fs', named: ['readFile', 'readFileSync'] },
24
+ method: ['readFile', 'readFileSync'],
25
+ taintedReturn: true,
26
+ },
27
+ ],
28
+ description: 'Node.js fs module file read',
29
+ confidence: 0.75,
30
+ enabled: true,
31
+ tags: ['filesystem', 'node', 'read'],
32
+ relatedCWE: ['CWE-20', 'CWE-22'],
33
+ },
34
+ // Node.js fs/promises
35
+ {
36
+ id: 'SRC-FS-002',
37
+ name: 'Node.js Promise File Read',
38
+ category: 'file-system',
39
+ framework: 'node',
40
+ patterns: [
41
+ { receiver: 'fsPromises', method: 'readFile', taintedReturn: true },
42
+ { receiver: 'fs', method: 'readFile', taintedReturn: true },
43
+ {
44
+ importPattern: { module: 'fs/promises', named: ['readFile'] },
45
+ method: 'readFile',
46
+ taintedReturn: true,
47
+ },
48
+ ],
49
+ description: 'Node.js fs/promises file read',
50
+ confidence: 0.75,
51
+ enabled: true,
52
+ tags: ['filesystem', 'node', 'read', 'promise'],
53
+ relatedCWE: ['CWE-20', 'CWE-22'],
54
+ },
55
+ // Stream reads
56
+ {
57
+ id: 'SRC-FS-010',
58
+ name: 'Node.js Stream Read',
59
+ category: 'file-system',
60
+ framework: 'node',
61
+ patterns: [
62
+ { receiver: 'fs', method: 'createReadStream', taintedReturn: true },
63
+ { receiver: 'stream', method: 'on', taintedArg: 1 },
64
+ { receiver: 'readable', method: 'read', taintedReturn: true },
65
+ ],
66
+ description: 'Node.js stream file read',
67
+ confidence: 0.7,
68
+ enabled: true,
69
+ tags: ['filesystem', 'node', 'stream'],
70
+ relatedCWE: ['CWE-20', 'CWE-22'],
71
+ },
72
+ // Directory reads
73
+ {
74
+ id: 'SRC-FS-020',
75
+ name: 'Node.js Directory Read',
76
+ category: 'file-system',
77
+ framework: 'node',
78
+ patterns: [
79
+ { receiver: 'fs', method: 'readdir', taintedReturn: true },
80
+ { receiver: 'fs', method: 'readdirSync', taintedReturn: true },
81
+ { receiver: 'fs', method: 'opendir', taintedReturn: true },
82
+ { receiver: 'fs', method: 'opendirSync', taintedReturn: true },
83
+ ],
84
+ description: 'Node.js directory listing',
85
+ confidence: 0.6,
86
+ enabled: true,
87
+ tags: ['filesystem', 'node', 'directory'],
88
+ relatedCWE: ['CWE-20', 'CWE-22'],
89
+ },
90
+ // JSON file reads (common pattern)
91
+ {
92
+ id: 'SRC-FS-030',
93
+ name: 'JSON File Read',
94
+ category: 'file-system',
95
+ framework: 'node',
96
+ patterns: [
97
+ { receiver: 'JSON', method: 'parse', taintedArg: 0 },
98
+ ],
99
+ description: 'JSON.parse of file contents',
100
+ confidence: 0.7,
101
+ enabled: true,
102
+ tags: ['filesystem', 'json', 'parse'],
103
+ relatedCWE: ['CWE-20', 'CWE-502'],
104
+ },
105
+ // Config file reads
106
+ {
107
+ id: 'SRC-FS-040',
108
+ name: 'Config File Read',
109
+ category: 'config',
110
+ framework: 'node',
111
+ patterns: [
112
+ { method: 'require', taintedReturn: true },
113
+ {
114
+ importPattern: { module: /\.(json|ya?ml|toml)$/ },
115
+ taintedReturn: true,
116
+ },
117
+ ],
118
+ description: 'Configuration file imports',
119
+ confidence: 0.5,
120
+ enabled: true,
121
+ tags: ['filesystem', 'config', 'import'],
122
+ relatedCWE: ['CWE-20'],
123
+ },
124
+ // fs-extra
125
+ {
126
+ id: 'SRC-FS-050',
127
+ name: 'fs-extra File Read',
128
+ category: 'file-system',
129
+ framework: 'fs-extra',
130
+ patterns: [
131
+ { receiver: 'fs', method: 'readFile', taintedReturn: true },
132
+ { receiver: 'fs', method: 'readJson', taintedReturn: true },
133
+ { receiver: 'fs', method: 'readJSON', taintedReturn: true },
134
+ { receiver: 'fse', method: 'readFile', taintedReturn: true },
135
+ { receiver: 'fse', method: 'readJson', taintedReturn: true },
136
+ ],
137
+ description: 'fs-extra file read operations',
138
+ confidence: 0.75,
139
+ enabled: true,
140
+ tags: ['filesystem', 'fs-extra', 'read'],
141
+ relatedCWE: ['CWE-20', 'CWE-22'],
142
+ },
143
+ // glob file reads
144
+ {
145
+ id: 'SRC-FS-060',
146
+ name: 'Glob Pattern Result',
147
+ category: 'file-system',
148
+ framework: 'glob',
149
+ patterns: [
150
+ { method: 'glob', taintedReturn: true },
151
+ { method: 'globSync', taintedReturn: true },
152
+ { receiver: 'glob', method: 'sync', taintedReturn: true },
153
+ ],
154
+ description: 'Glob pattern file matching results',
155
+ confidence: 0.6,
156
+ enabled: true,
157
+ tags: ['filesystem', 'glob', 'pattern'],
158
+ relatedCWE: ['CWE-20', 'CWE-22'],
159
+ },
160
+ // File upload (multer, formidable)
161
+ {
162
+ id: 'SRC-FS-070',
163
+ name: 'File Upload Data',
164
+ category: 'file-system',
165
+ framework: 'express',
166
+ patterns: [
167
+ { receiver: 'req', property: 'file', taintedReturn: true },
168
+ { receiver: 'req', property: 'files', taintedReturn: true },
169
+ { property: 'originalname', taintedReturn: true },
170
+ { property: 'filename', taintedReturn: true },
171
+ { property: 'path', taintedReturn: true },
172
+ ],
173
+ description: 'Uploaded file data (multer/formidable)',
174
+ confidence: 0.95,
175
+ enabled: true,
176
+ tags: ['filesystem', 'upload', 'express'],
177
+ relatedCWE: ['CWE-20', 'CWE-22', 'CWE-434'],
178
+ },
179
+ ];
180
+ //# sourceMappingURL=file-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../../src/analysis/sources/file-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview HTTP request source definitions
3
+ * @module @nahisaho/musubix-security/analysis/sources/http-request
4
+ * @trace REQ-SEC-001
5
+ */
6
+ import type { SourceDefinition } from './types.js';
7
+ /**
8
+ * HTTP request sources - external API responses, network data
9
+ * @trace REQ-SEC-001
10
+ */
11
+ export declare const HTTP_REQUEST_SOURCES: readonly SourceDefinition[];
12
+ //# sourceMappingURL=http-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-request.d.ts","sourceRoot":"","sources":["../../../src/analysis/sources/http-request.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,gBAAgB,EAgLlD,CAAC"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * @fileoverview HTTP request source definitions
3
+ * @module @nahisaho/musubix-security/analysis/sources/http-request
4
+ * @trace REQ-SEC-001
5
+ */
6
+ /**
7
+ * HTTP request sources - external API responses, network data
8
+ * @trace REQ-SEC-001
9
+ */
10
+ export const HTTP_REQUEST_SOURCES = [
11
+ // Fetch API
12
+ {
13
+ id: 'SRC-HTTP-001',
14
+ name: 'Fetch Response',
15
+ category: 'network',
16
+ framework: 'browser',
17
+ patterns: [
18
+ { method: 'fetch', taintedReturn: true },
19
+ { receiver: ['Response'], method: 'json', taintedReturn: true },
20
+ { receiver: ['Response'], method: 'text', taintedReturn: true },
21
+ { receiver: ['response'], method: 'json', taintedReturn: true },
22
+ { receiver: ['response'], method: 'text', taintedReturn: true },
23
+ ],
24
+ description: 'HTTP fetch API response data',
25
+ confidence: 0.85,
26
+ enabled: true,
27
+ tags: ['http', 'fetch', 'external'],
28
+ relatedCWE: ['CWE-20', 'CWE-918'],
29
+ },
30
+ // Axios
31
+ {
32
+ id: 'SRC-HTTP-010',
33
+ name: 'Axios Response',
34
+ category: 'network',
35
+ framework: 'axios',
36
+ patterns: [
37
+ { receiver: 'axios', method: 'get', taintedReturn: true },
38
+ { receiver: 'axios', method: 'post', taintedReturn: true },
39
+ { receiver: 'axios', method: 'put', taintedReturn: true },
40
+ { receiver: 'axios', method: 'delete', taintedReturn: true },
41
+ { receiver: 'axios', method: 'patch', taintedReturn: true },
42
+ { receiver: 'axios', method: 'request', taintedReturn: true },
43
+ { property: 'data', taintedReturn: true },
44
+ ],
45
+ description: 'Axios HTTP client response data',
46
+ confidence: 0.85,
47
+ enabled: true,
48
+ tags: ['http', 'axios', 'external'],
49
+ relatedCWE: ['CWE-20', 'CWE-918'],
50
+ },
51
+ // Node.js HTTP
52
+ {
53
+ id: 'SRC-HTTP-020',
54
+ name: 'Node HTTP Response',
55
+ category: 'network',
56
+ framework: 'node',
57
+ patterns: [
58
+ { receiver: 'http', method: 'get', taintedReturn: true },
59
+ { receiver: 'http', method: 'request', taintedReturn: true },
60
+ { receiver: 'https', method: 'get', taintedReturn: true },
61
+ { receiver: 'https', method: 'request', taintedReturn: true },
62
+ {
63
+ importPattern: { module: 'http', named: ['get', 'request'] },
64
+ method: ['get', 'request'],
65
+ taintedReturn: true,
66
+ },
67
+ ],
68
+ description: 'Node.js http/https module response',
69
+ confidence: 0.85,
70
+ enabled: true,
71
+ tags: ['http', 'node', 'external'],
72
+ relatedCWE: ['CWE-20', 'CWE-918'],
73
+ },
74
+ // Got
75
+ {
76
+ id: 'SRC-HTTP-030',
77
+ name: 'Got Response',
78
+ category: 'network',
79
+ framework: 'got',
80
+ patterns: [
81
+ { method: 'got', taintedReturn: true },
82
+ { receiver: 'got', method: 'get', taintedReturn: true },
83
+ { receiver: 'got', method: 'post', taintedReturn: true },
84
+ ],
85
+ description: 'Got HTTP client response data',
86
+ confidence: 0.85,
87
+ enabled: true,
88
+ tags: ['http', 'got', 'external'],
89
+ relatedCWE: ['CWE-20', 'CWE-918'],
90
+ },
91
+ // Superagent
92
+ {
93
+ id: 'SRC-HTTP-040',
94
+ name: 'Superagent Response',
95
+ category: 'network',
96
+ framework: 'superagent',
97
+ patterns: [
98
+ { receiver: 'superagent', method: 'get', taintedReturn: true },
99
+ { receiver: 'superagent', method: 'post', taintedReturn: true },
100
+ { receiver: 'request', method: 'get', taintedReturn: true },
101
+ { receiver: 'request', method: 'post', taintedReturn: true },
102
+ ],
103
+ description: 'Superagent HTTP client response data',
104
+ confidence: 0.85,
105
+ enabled: true,
106
+ tags: ['http', 'superagent', 'external'],
107
+ relatedCWE: ['CWE-20', 'CWE-918'],
108
+ },
109
+ // XMLHttpRequest (legacy)
110
+ {
111
+ id: 'SRC-HTTP-050',
112
+ name: 'XMLHttpRequest Response',
113
+ category: 'network',
114
+ framework: 'browser',
115
+ patterns: [
116
+ { receiver: 'XMLHttpRequest', property: 'response', taintedReturn: true },
117
+ { receiver: 'XMLHttpRequest', property: 'responseText', taintedReturn: true },
118
+ { receiver: 'xhr', property: 'response', taintedReturn: true },
119
+ { receiver: 'xhr', property: 'responseText', taintedReturn: true },
120
+ ],
121
+ description: 'XMLHttpRequest response data',
122
+ confidence: 0.85,
123
+ enabled: true,
124
+ tags: ['http', 'xhr', 'external', 'legacy'],
125
+ relatedCWE: ['CWE-20', 'CWE-918'],
126
+ },
127
+ // WebSocket
128
+ {
129
+ id: 'SRC-HTTP-060',
130
+ name: 'WebSocket Message',
131
+ category: 'network',
132
+ framework: 'browser',
133
+ patterns: [
134
+ { receiver: 'WebSocket', method: 'onmessage', taintedArg: 0 },
135
+ { receiver: 'ws', method: 'on', taintedArg: 1 },
136
+ { receiver: 'socket', method: 'on', taintedArg: 1 },
137
+ ],
138
+ description: 'WebSocket message data',
139
+ confidence: 0.9,
140
+ enabled: true,
141
+ tags: ['websocket', 'external'],
142
+ relatedCWE: ['CWE-20', 'CWE-79'],
143
+ },
144
+ // GraphQL
145
+ {
146
+ id: 'SRC-HTTP-070',
147
+ name: 'GraphQL Response',
148
+ category: 'network',
149
+ framework: 'graphql',
150
+ patterns: [
151
+ { property: 'data', taintedReturn: true },
152
+ { method: 'query', taintedReturn: true },
153
+ { method: 'mutate', taintedReturn: true },
154
+ ],
155
+ description: 'GraphQL query/mutation response',
156
+ confidence: 0.8,
157
+ enabled: true,
158
+ tags: ['graphql', 'external'],
159
+ relatedCWE: ['CWE-20'],
160
+ },
161
+ // tRPC
162
+ {
163
+ id: 'SRC-HTTP-080',
164
+ name: 'tRPC Response',
165
+ category: 'network',
166
+ framework: 'trpc',
167
+ patterns: [
168
+ { receiver: 'trpc', method: 'query', taintedReturn: true },
169
+ { receiver: 'trpc', method: 'mutation', taintedReturn: true },
170
+ { receiver: 'api', method: 'query', taintedReturn: true },
171
+ ],
172
+ description: 'tRPC procedure response',
173
+ confidence: 0.8,
174
+ enabled: true,
175
+ tags: ['trpc', 'external'],
176
+ relatedCWE: ['CWE-20'],
177
+ },
178
+ ];
179
+ //# sourceMappingURL=http-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-request.js","sourceRoot":"","sources":["../../../src/analysis/sources/http-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview Taint source definitions - Builtin sources for interprocedural taint analysis
3
+ * @module @nahisaho/musubix-security/analysis/sources
4
+ * @trace REQ-SEC-001 (EARS: テイント分析の高度化)
5
+ */
6
+ export * from './user-input.js';
7
+ export * from './http-request.js';
8
+ export * from './database.js';
9
+ export * from './file-system.js';
10
+ export * from './environment.js';
11
+ export * from './types.js';
12
+ import type { SourceDefinition } from './types.js';
13
+ /**
14
+ * All built-in taint sources aggregated
15
+ * @trace REQ-SEC-001
16
+ */
17
+ export declare const ALL_BUILTIN_SOURCES: readonly SourceDefinition[];
18
+ /**
19
+ * Get sources by category
20
+ */
21
+ export declare function getSourcesByCategory(category: SourceDefinition['category']): readonly SourceDefinition[];
22
+ /**
23
+ * Get sources by framework
24
+ */
25
+ export declare function getSourcesByFramework(framework: string): readonly SourceDefinition[];
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analysis/sources/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAO3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAMjD,CAAC;AAEX;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,GACrC,SAAS,gBAAgB,EAAE,CAE7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAChB,SAAS,gBAAgB,EAAE,CAE7B"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @fileoverview Taint source definitions - Builtin sources for interprocedural taint analysis
3
+ * @module @nahisaho/musubix-security/analysis/sources
4
+ * @trace REQ-SEC-001 (EARS: テイント分析の高度化)
5
+ */
6
+ export * from './user-input.js';
7
+ export * from './http-request.js';
8
+ export * from './database.js';
9
+ export * from './file-system.js';
10
+ export * from './environment.js';
11
+ export * from './types.js';
12
+ import { USER_INPUT_SOURCES } from './user-input.js';
13
+ import { HTTP_REQUEST_SOURCES } from './http-request.js';
14
+ import { DATABASE_SOURCES } from './database.js';
15
+ import { FILE_SYSTEM_SOURCES } from './file-system.js';
16
+ import { ENVIRONMENT_SOURCES } from './environment.js';
17
+ /**
18
+ * All built-in taint sources aggregated
19
+ * @trace REQ-SEC-001
20
+ */
21
+ export const ALL_BUILTIN_SOURCES = [
22
+ ...USER_INPUT_SOURCES,
23
+ ...HTTP_REQUEST_SOURCES,
24
+ ...DATABASE_SOURCES,
25
+ ...FILE_SYSTEM_SOURCES,
26
+ ...ENVIRONMENT_SOURCES,
27
+ ];
28
+ /**
29
+ * Get sources by category
30
+ */
31
+ export function getSourcesByCategory(category) {
32
+ return ALL_BUILTIN_SOURCES.filter((s) => s.category === category);
33
+ }
34
+ /**
35
+ * Get sources by framework
36
+ */
37
+ export function getSourcesByFramework(framework) {
38
+ return ALL_BUILTIN_SOURCES.filter((s) => s.framework === framework);
39
+ }
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analysis/sources/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,GAAG,kBAAkB;IACrB,GAAG,oBAAoB;IACvB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;IACtB,GAAG,mBAAmB;CACd,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAsC;IAEtC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB;IAEjB,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @fileoverview Source definition types for taint analysis
3
+ * @module @nahisaho/musubix-security/analysis/sources/types
4
+ * @trace REQ-SEC-001
5
+ */
6
+ import type { TaintSourceCategory } from '../../types/taint.js';
7
+ /**
8
+ * AST pattern for source matching
9
+ */
10
+ export interface SourceASTPattern {
11
+ /** Object/receiver name (e.g., 'req', 'ctx', 'process') */
12
+ receiver?: string | string[];
13
+ /** Method name to match */
14
+ method?: string | string[];
15
+ /** Property name to match */
16
+ property?: string | string[];
17
+ /** Specific argument that is tainted (for return values, use -1) */
18
+ taintedArg?: number;
19
+ /** Whether the whole return value is tainted */
20
+ taintedReturn?: boolean;
21
+ /** Pattern for import detection */
22
+ importPattern?: {
23
+ module: string | RegExp;
24
+ named?: string[];
25
+ default?: boolean;
26
+ };
27
+ }
28
+ /**
29
+ * Source definition for taint analysis
30
+ * @trace REQ-SEC-001
31
+ */
32
+ export interface SourceDefinition {
33
+ /** Unique source definition ID */
34
+ id: string;
35
+ /** Human-readable name */
36
+ name: string;
37
+ /** Source category */
38
+ category: TaintSourceCategory;
39
+ /** Framework this source is associated with (e.g., 'express', 'koa', 'next') */
40
+ framework?: string;
41
+ /** AST patterns to match this source */
42
+ patterns: SourceASTPattern[];
43
+ /** Description of this source */
44
+ description: string;
45
+ /** Default confidence level (0-1) */
46
+ confidence: number;
47
+ /** Whether this source is enabled by default */
48
+ enabled: boolean;
49
+ /** Tags for filtering/grouping */
50
+ tags: string[];
51
+ /** CWE IDs this source can lead to if not sanitized */
52
+ relatedCWE?: string[];
53
+ }
54
+ /**
55
+ * Source match result
56
+ */
57
+ export interface SourceMatchResult {
58
+ /** Definition that matched */
59
+ definition: SourceDefinition;
60
+ /** Matched pattern */
61
+ pattern: SourceASTPattern;
62
+ /** Variable name holding tainted data */
63
+ variableName: string;
64
+ /** Expression that produces tainted data */
65
+ expression: string;
66
+ /** Match confidence */
67
+ confidence: number;
68
+ }
69
+ /**
70
+ * Source detector interface
71
+ */
72
+ export interface ISourceDetector {
73
+ /** Detect sources in an AST node */
74
+ detect(ast: unknown, options?: SourceDetectorOptions): Promise<SourceMatchResult[]>;
75
+ /** Register custom source definition */
76
+ registerSource(definition: SourceDefinition): void;
77
+ /** Get all registered sources */
78
+ getSources(): readonly SourceDefinition[];
79
+ }
80
+ /**
81
+ * Source detector options
82
+ */
83
+ export interface SourceDetectorOptions {
84
+ /** Categories to include */
85
+ categories?: TaintSourceCategory[];
86
+ /** Frameworks to include */
87
+ frameworks?: string[];
88
+ /** Custom sources to add */
89
+ customSources?: SourceDefinition[];
90
+ /** Minimum confidence threshold */
91
+ minConfidence?: number;
92
+ }
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/analysis/sources/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,sBAAsB;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,MAAM,CACJ,GAAG,EAAE,OAAO,EACZ,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEhC,wCAAwC;IACxC,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEnD,iCAAiC;IACjC,UAAU,IAAI,SAAS,gBAAgB,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Source definition types for taint analysis
3
+ * @module @nahisaho/musubix-security/analysis/sources/types
4
+ * @trace REQ-SEC-001
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/analysis/sources/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview User input source definitions
3
+ * @module @nahisaho/musubix-security/analysis/sources/user-input
4
+ * @trace REQ-SEC-001
5
+ */
6
+ import type { SourceDefinition } from './types.js';
7
+ /**
8
+ * User input sources - form data, query params, request body
9
+ * @trace REQ-SEC-001
10
+ */
11
+ export declare const USER_INPUT_SOURCES: readonly SourceDefinition[];
12
+ //# sourceMappingURL=user-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-input.d.ts","sourceRoot":"","sources":["../../../src/analysis/sources/user-input.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EA+PhD,CAAC"}