vaspera 2.14.0 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +15 -2
  3. package/dist/__tests__/certification/agent-certificate-e2e.test.d.ts +2 -0
  4. package/dist/__tests__/certification/agent-certificate-e2e.test.d.ts.map +1 -0
  5. package/dist/__tests__/certification/agent-certificate-e2e.test.js +90 -0
  6. package/dist/__tests__/certification/agent-certificate-e2e.test.js.map +1 -0
  7. package/dist/__tests__/certification/agent-certificate-map.test.d.ts +2 -0
  8. package/dist/__tests__/certification/agent-certificate-map.test.d.ts.map +1 -0
  9. package/dist/__tests__/certification/agent-certificate-map.test.js +107 -0
  10. package/dist/__tests__/certification/agent-certificate-map.test.js.map +1 -0
  11. package/dist/__tests__/certification/agent-certificate.test.d.ts +2 -0
  12. package/dist/__tests__/certification/agent-certificate.test.d.ts.map +1 -0
  13. package/dist/__tests__/certification/agent-certificate.test.js +78 -0
  14. package/dist/__tests__/certification/agent-certificate.test.js.map +1 -0
  15. package/dist/__tests__/certification/verify-endpoint.test.d.ts +2 -0
  16. package/dist/__tests__/certification/verify-endpoint.test.d.ts.map +1 -0
  17. package/dist/__tests__/certification/verify-endpoint.test.js +81 -0
  18. package/dist/__tests__/certification/verify-endpoint.test.js.map +1 -0
  19. package/dist/__tests__/compliance/ai-frameworks.test.d.ts +2 -0
  20. package/dist/__tests__/compliance/ai-frameworks.test.d.ts.map +1 -0
  21. package/dist/__tests__/compliance/ai-frameworks.test.js +87 -0
  22. package/dist/__tests__/compliance/ai-frameworks.test.js.map +1 -0
  23. package/dist/__tests__/eval/llm-analyzer.test.d.ts +2 -0
  24. package/dist/__tests__/eval/llm-analyzer.test.d.ts.map +1 -0
  25. package/dist/__tests__/eval/llm-analyzer.test.js +93 -0
  26. package/dist/__tests__/eval/llm-analyzer.test.js.map +1 -0
  27. package/dist/__tests__/eval/redteam-harness.test.d.ts +2 -0
  28. package/dist/__tests__/eval/redteam-harness.test.d.ts.map +1 -0
  29. package/dist/__tests__/eval/redteam-harness.test.js +136 -0
  30. package/dist/__tests__/eval/redteam-harness.test.js.map +1 -0
  31. package/dist/__tests__/evidence/evidence.test.d.ts +2 -0
  32. package/dist/__tests__/evidence/evidence.test.d.ts.map +1 -0
  33. package/dist/__tests__/evidence/evidence.test.js +240 -0
  34. package/dist/__tests__/evidence/evidence.test.js.map +1 -0
  35. package/dist/__tests__/history/decisions.test.d.ts +2 -0
  36. package/dist/__tests__/history/decisions.test.d.ts.map +1 -0
  37. package/dist/__tests__/history/decisions.test.js +54 -0
  38. package/dist/__tests__/history/decisions.test.js.map +1 -0
  39. package/dist/__tests__/http-auth.test.d.ts +2 -0
  40. package/dist/__tests__/http-auth.test.d.ts.map +1 -0
  41. package/dist/__tests__/http-auth.test.js +55 -0
  42. package/dist/__tests__/http-auth.test.js.map +1 -0
  43. package/dist/__tests__/http-policy.test.d.ts +2 -0
  44. package/dist/__tests__/http-policy.test.d.ts.map +1 -0
  45. package/dist/__tests__/http-policy.test.js +69 -0
  46. package/dist/__tests__/http-policy.test.js.map +1 -0
  47. package/dist/__tests__/http-server-transport.test.d.ts +2 -0
  48. package/dist/__tests__/http-server-transport.test.d.ts.map +1 -0
  49. package/dist/__tests__/http-server-transport.test.js +132 -0
  50. package/dist/__tests__/http-server-transport.test.js.map +1 -0
  51. package/dist/__tests__/integration/destructive-guards.test.d.ts +2 -0
  52. package/dist/__tests__/integration/destructive-guards.test.d.ts.map +1 -0
  53. package/dist/__tests__/integration/destructive-guards.test.js +49 -0
  54. package/dist/__tests__/integration/destructive-guards.test.js.map +1 -0
  55. package/dist/__tests__/logger-redaction.test.d.ts +2 -0
  56. package/dist/__tests__/logger-redaction.test.d.ts.map +1 -0
  57. package/dist/__tests__/logger-redaction.test.js +74 -0
  58. package/dist/__tests__/logger-redaction.test.js.map +1 -0
  59. package/dist/__tests__/manifest-schema.test.d.ts +2 -0
  60. package/dist/__tests__/manifest-schema.test.d.ts.map +1 -0
  61. package/dist/__tests__/manifest-schema.test.js +43 -0
  62. package/dist/__tests__/manifest-schema.test.js.map +1 -0
  63. package/dist/__tests__/scanners/builtin-rules.test.d.ts +2 -0
  64. package/dist/__tests__/scanners/builtin-rules.test.d.ts.map +1 -0
  65. package/dist/__tests__/scanners/builtin-rules.test.js +51 -0
  66. package/dist/__tests__/scanners/builtin-rules.test.js.map +1 -0
  67. package/dist/__tests__/scanners/runtime/golden-path-runner.test.js +13 -1
  68. package/dist/__tests__/scanners/runtime/golden-path-runner.test.js.map +1 -1
  69. package/dist/__tests__/tool-guard.test.d.ts +2 -0
  70. package/dist/__tests__/tool-guard.test.d.ts.map +1 -0
  71. package/dist/__tests__/tool-guard.test.js +97 -0
  72. package/dist/__tests__/tool-guard.test.js.map +1 -0
  73. package/dist/__tests__/util/contained-file.test.d.ts +2 -0
  74. package/dist/__tests__/util/contained-file.test.d.ts.map +1 -0
  75. package/dist/__tests__/util/contained-file.test.js +78 -0
  76. package/dist/__tests__/util/contained-file.test.js.map +1 -0
  77. package/dist/__tests__/util/subprocess.test.d.ts +2 -0
  78. package/dist/__tests__/util/subprocess.test.d.ts.map +1 -0
  79. package/dist/__tests__/util/subprocess.test.js +48 -0
  80. package/dist/__tests__/util/subprocess.test.js.map +1 -0
  81. package/dist/action/diff-mode.d.ts.map +1 -1
  82. package/dist/action/diff-mode.js +31 -12
  83. package/dist/action/diff-mode.js.map +1 -1
  84. package/dist/certification/agent-certificate-map.d.ts +51 -0
  85. package/dist/certification/agent-certificate-map.d.ts.map +1 -0
  86. package/dist/certification/agent-certificate-map.js +265 -0
  87. package/dist/certification/agent-certificate-map.js.map +1 -0
  88. package/dist/certification/agent-certificate-sample.d.ts +25 -0
  89. package/dist/certification/agent-certificate-sample.d.ts.map +1 -0
  90. package/dist/certification/agent-certificate-sample.js +207 -0
  91. package/dist/certification/agent-certificate-sample.js.map +1 -0
  92. package/dist/certification/agent-certificate.d.ts +1981 -0
  93. package/dist/certification/agent-certificate.d.ts.map +1 -0
  94. package/dist/certification/agent-certificate.js +309 -0
  95. package/dist/certification/agent-certificate.js.map +1 -0
  96. package/dist/certification/autofix.d.ts.map +1 -1
  97. package/dist/certification/autofix.js +5 -3
  98. package/dist/certification/autofix.js.map +1 -1
  99. package/dist/certification/store.d.ts.map +1 -1
  100. package/dist/certification/store.js +5 -2
  101. package/dist/certification/store.js.map +1 -1
  102. package/dist/certification/verify-endpoint.d.ts +48 -0
  103. package/dist/certification/verify-endpoint.d.ts.map +1 -0
  104. package/dist/certification/verify-endpoint.js +79 -0
  105. package/dist/certification/verify-endpoint.js.map +1 -0
  106. package/dist/compliance/index.d.ts +2 -0
  107. package/dist/compliance/index.d.ts.map +1 -1
  108. package/dist/compliance/index.js +4 -0
  109. package/dist/compliance/index.js.map +1 -1
  110. package/dist/compliance/iso42001.d.ts +21 -0
  111. package/dist/compliance/iso42001.d.ts.map +1 -0
  112. package/dist/compliance/iso42001.js +160 -0
  113. package/dist/compliance/iso42001.js.map +1 -0
  114. package/dist/compliance/mapper.d.ts.map +1 -1
  115. package/dist/compliance/mapper.js +12 -0
  116. package/dist/compliance/mapper.js.map +1 -1
  117. package/dist/compliance/nist-ai-rmf.d.ts +20 -0
  118. package/dist/compliance/nist-ai-rmf.d.ts.map +1 -0
  119. package/dist/compliance/nist-ai-rmf.js +140 -0
  120. package/dist/compliance/nist-ai-rmf.js.map +1 -0
  121. package/dist/config/flags.d.ts +4 -4
  122. package/dist/eval/fixtures.d.ts.map +1 -1
  123. package/dist/eval/fixtures.js +161 -119
  124. package/dist/eval/fixtures.js.map +1 -1
  125. package/dist/eval/fixtures.test.js +4 -2
  126. package/dist/eval/fixtures.test.js.map +1 -1
  127. package/dist/eval/llm-analyzer.d.ts +40 -0
  128. package/dist/eval/llm-analyzer.d.ts.map +1 -0
  129. package/dist/eval/llm-analyzer.js +154 -0
  130. package/dist/eval/llm-analyzer.js.map +1 -0
  131. package/dist/eval/redteam-harness.d.ts +95 -0
  132. package/dist/eval/redteam-harness.d.ts.map +1 -0
  133. package/dist/eval/redteam-harness.js +137 -0
  134. package/dist/eval/redteam-harness.js.map +1 -0
  135. package/dist/evidence/collector.d.ts.map +1 -1
  136. package/dist/evidence/collector.js +21 -1
  137. package/dist/evidence/collector.js.map +1 -1
  138. package/dist/evidence/store.d.ts.map +1 -1
  139. package/dist/evidence/store.js +29 -5
  140. package/dist/evidence/store.js.map +1 -1
  141. package/dist/evidence/types.d.ts +16 -9
  142. package/dist/evidence/types.d.ts.map +1 -1
  143. package/dist/history/decisions.d.ts +63 -0
  144. package/dist/history/decisions.d.ts.map +1 -0
  145. package/dist/history/decisions.js +60 -0
  146. package/dist/history/decisions.js.map +1 -0
  147. package/dist/history/index.d.ts +2 -0
  148. package/dist/history/index.d.ts.map +1 -1
  149. package/dist/history/index.js +2 -0
  150. package/dist/history/index.js.map +1 -1
  151. package/dist/history/types.d.ts +34 -5
  152. package/dist/history/types.d.ts.map +1 -1
  153. package/dist/history/types.js +2 -0
  154. package/dist/history/types.js.map +1 -1
  155. package/dist/http-auth.d.ts +22 -0
  156. package/dist/http-auth.d.ts.map +1 -0
  157. package/dist/http-auth.js +58 -0
  158. package/dist/http-auth.js.map +1 -0
  159. package/dist/http-policy.d.ts +30 -0
  160. package/dist/http-policy.d.ts.map +1 -0
  161. package/dist/http-policy.js +54 -0
  162. package/dist/http-policy.js.map +1 -0
  163. package/dist/http-server.js +195 -12
  164. package/dist/http-server.js.map +1 -1
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +257 -16
  167. package/dist/index.js.map +1 -1
  168. package/dist/logger.d.ts.map +1 -1
  169. package/dist/logger.js +56 -2
  170. package/dist/logger.js.map +1 -1
  171. package/dist/plugins/types.d.ts +2 -2
  172. package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -1
  173. package/dist/scanners/agent/prompt-injection-fuzzer.js +26 -0
  174. package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -1
  175. package/dist/scanners/agent/types.d.ts +10 -10
  176. package/dist/scanners/bandit.d.ts.map +1 -1
  177. package/dist/scanners/bandit.js +35 -29
  178. package/dist/scanners/bandit.js.map +1 -1
  179. package/dist/scanners/binary-analysis.d.ts.map +1 -1
  180. package/dist/scanners/binary-analysis.js +24 -49
  181. package/dist/scanners/binary-analysis.js.map +1 -1
  182. package/dist/scanners/brakeman.d.ts.map +1 -1
  183. package/dist/scanners/brakeman.js +19 -33
  184. package/dist/scanners/brakeman.js.map +1 -1
  185. package/dist/scanners/builtin-rules.d.ts +24 -0
  186. package/dist/scanners/builtin-rules.d.ts.map +1 -0
  187. package/dist/scanners/builtin-rules.js +175 -0
  188. package/dist/scanners/builtin-rules.js.map +1 -0
  189. package/dist/scanners/dast.d.ts.map +1 -1
  190. package/dist/scanners/dast.js +24 -34
  191. package/dist/scanners/dast.js.map +1 -1
  192. package/dist/scanners/deploy/types.d.ts +6 -6
  193. package/dist/scanners/eslint.d.ts.map +1 -1
  194. package/dist/scanners/eslint.js +15 -24
  195. package/dist/scanners/eslint.js.map +1 -1
  196. package/dist/scanners/gosec.d.ts.map +1 -1
  197. package/dist/scanners/gosec.js +14 -62
  198. package/dist/scanners/gosec.js.map +1 -1
  199. package/dist/scanners/index.d.ts.map +1 -1
  200. package/dist/scanners/index.js +38 -7
  201. package/dist/scanners/index.js.map +1 -1
  202. package/dist/scanners/memory-safety.d.ts.map +1 -1
  203. package/dist/scanners/memory-safety.js +27 -28
  204. package/dist/scanners/memory-safety.js.map +1 -1
  205. package/dist/scanners/openapi.d.ts.map +1 -1
  206. package/dist/scanners/openapi.js +14 -22
  207. package/dist/scanners/openapi.js.map +1 -1
  208. package/dist/scanners/race-condition.d.ts.map +1 -1
  209. package/dist/scanners/race-condition.js +17 -16
  210. package/dist/scanners/race-condition.js.map +1 -1
  211. package/dist/scanners/runtime/types.d.ts +4 -4
  212. package/dist/scanners/rust.d.ts.map +1 -1
  213. package/dist/scanners/rust.js +38 -37
  214. package/dist/scanners/rust.js.map +1 -1
  215. package/dist/scanners/scale/types.d.ts +16 -16
  216. package/dist/scanners/secrets.d.ts.map +1 -1
  217. package/dist/scanners/secrets.js +66 -78
  218. package/dist/scanners/secrets.js.map +1 -1
  219. package/dist/scanners/semgrep.d.ts +2 -0
  220. package/dist/scanners/semgrep.d.ts.map +1 -1
  221. package/dist/scanners/semgrep.js +12 -0
  222. package/dist/scanners/semgrep.js.map +1 -1
  223. package/dist/scanners/terraform.d.ts.map +1 -1
  224. package/dist/scanners/terraform.js +47 -40
  225. package/dist/scanners/terraform.js.map +1 -1
  226. package/dist/scanners/trivy.d.ts.map +1 -1
  227. package/dist/scanners/trivy.js +38 -30
  228. package/dist/scanners/trivy.js.map +1 -1
  229. package/dist/telemetry/install-id.d.ts +25 -0
  230. package/dist/telemetry/install-id.d.ts.map +1 -0
  231. package/dist/telemetry/install-id.js +49 -0
  232. package/dist/telemetry/install-id.js.map +1 -0
  233. package/dist/telemetry/usage.d.ts +19 -2
  234. package/dist/telemetry/usage.d.ts.map +1 -1
  235. package/dist/telemetry/usage.js +44 -8
  236. package/dist/telemetry/usage.js.map +1 -1
  237. package/dist/tool-guard.d.ts +40 -0
  238. package/dist/tool-guard.d.ts.map +1 -0
  239. package/dist/tool-guard.js +55 -0
  240. package/dist/tool-guard.js.map +1 -0
  241. package/dist/util/index.d.ts +2 -1
  242. package/dist/util/index.d.ts.map +1 -1
  243. package/dist/util/index.js +2 -1
  244. package/dist/util/index.js.map +1 -1
  245. package/dist/util/paths.d.ts +20 -3
  246. package/dist/util/paths.d.ts.map +1 -1
  247. package/dist/util/paths.js +84 -4
  248. package/dist/util/paths.js.map +1 -1
  249. package/dist/util/subprocess.d.ts +51 -0
  250. package/dist/util/subprocess.d.ts.map +1 -0
  251. package/dist/util/subprocess.js +77 -0
  252. package/dist/util/subprocess.js.map +1 -0
  253. package/package.json +12 -2
  254. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts +0 -28
  255. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts.map +0 -1
  256. package/dist/eval/fixtures/healthcare/audit-gaps.js +0 -90
  257. package/dist/eval/fixtures/healthcare/audit-gaps.js.map +0 -1
  258. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts +0 -31
  259. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts.map +0 -1
  260. package/dist/eval/fixtures/healthcare/consent-bypass.js +0 -61
  261. package/dist/eval/fixtures/healthcare/consent-bypass.js.map +0 -1
  262. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts +0 -24
  263. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts.map +0 -1
  264. package/dist/eval/fixtures/healthcare/phi-in-logs.js +0 -41
  265. package/dist/eval/fixtures/healthcare/phi-in-logs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AASD,UAAU,MAAM;IACd,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CACpD;AA4DD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,EAAE,MA4BpB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAoBjE"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AASD,UAAU,MAAM;IACd,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CACpD;AAsHD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,EAAE,MA4BpB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAoBjE"}
package/dist/logger.js CHANGED
@@ -28,6 +28,47 @@ function shouldLog(level) {
28
28
  const currentLevel = getLogLevel();
29
29
  return LOG_LEVELS[level] >= LOG_LEVELS[currentLevel];
30
30
  }
31
+ const SENSITIVE_KEY = /(token|secret|api[-_]?key|authorization|password|passwd|credential|private[-_]?key|session[-_]?id|cookie)/i;
32
+ // High-confidence secret value shapes (provider key prefixes, bearer
33
+ // headers, PEM blocks). Unanchored and applied with replace() so a
34
+ // secret EMBEDDED in a larger string (an error message, a URL) is
35
+ // redacted in place — not just whole-string values.
36
+ const SENSITIVE_VALUE = /Bearer\s+[A-Za-z0-9._\-]+|sk-[A-Za-z0-9_-]{16,}|gh[pousr]_[A-Za-z0-9]{20,}|xox[baprs]-[A-Za-z0-9-]+|AKIA[0-9A-Z]{16}|-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g;
37
+ const REDACTED = "[REDACTED]";
38
+ const MAX_REDACT_DEPTH = 8;
39
+ function redactString(value) {
40
+ return value.replace(SENSITIVE_VALUE, REDACTED);
41
+ }
42
+ /**
43
+ * Redact secrets from log context before serialisation (CONSTITUTION:
44
+ * "never write secrets to logs"). Key-based matching catches anything
45
+ * stored under a secret-shaped name; value-based matching catches
46
+ * tokens that leak under innocent keys (e.g. inside error messages).
47
+ * `seen` guards against circular references.
48
+ */
49
+ function redactValue(value, depth, seen) {
50
+ if (typeof value === "string") {
51
+ return redactString(value);
52
+ }
53
+ if (value === null || typeof value !== "object") {
54
+ return value;
55
+ }
56
+ if (seen.has(value)) {
57
+ return "[Circular]";
58
+ }
59
+ if (depth > MAX_REDACT_DEPTH) {
60
+ return "[Truncated]";
61
+ }
62
+ seen.add(value);
63
+ if (Array.isArray(value)) {
64
+ return value.map((v) => redactValue(v, depth + 1, seen));
65
+ }
66
+ const out = {};
67
+ for (const [k, v] of Object.entries(value)) {
68
+ out[k] = SENSITIVE_KEY.test(k) ? REDACTED : redactValue(v, depth + 1, seen);
69
+ }
70
+ return out;
71
+ }
31
72
  /**
32
73
  * Format a log entry as a JSON string.
33
74
  */
@@ -38,14 +79,27 @@ function formatLog(level, message, context) {
38
79
  message,
39
80
  };
40
81
  if (context) {
82
+ const seen = new WeakSet();
41
83
  // Flatten context into the entry, but don't override reserved keys
42
84
  for (const [key, value] of Object.entries(context)) {
43
85
  if (key !== "timestamp" && key !== "level" && key !== "message") {
44
- entry[key] = value;
86
+ entry[key] = SENSITIVE_KEY.test(key) ? REDACTED : redactValue(value, 0, seen);
45
87
  }
46
88
  }
47
89
  }
48
- return JSON.stringify(entry);
90
+ try {
91
+ return JSON.stringify(entry);
92
+ }
93
+ catch {
94
+ // Last-resort guard: never let a serialisation error (e.g. a
95
+ // BigInt or an exotic un-redacted cycle) crash the caller's path.
96
+ return JSON.stringify({
97
+ timestamp: entry.timestamp,
98
+ level,
99
+ message,
100
+ _logError: "context not serialisable",
101
+ });
102
+ }
49
103
  }
50
104
  /**
51
105
  * Write a log entry to stderr.
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -112,9 +112,9 @@ export declare const PluginManifestSchema: z.ZodObject<{
112
112
  sandboxable?: boolean | undefined;
113
113
  }>>;
114
114
  }, "strip", z.ZodTypeAny, {
115
+ name: string;
115
116
  version: string;
116
117
  description: string;
117
- name: string;
118
118
  scanner: {
119
119
  type: string;
120
120
  languages: string[];
@@ -143,9 +143,9 @@ export declare const PluginManifestSchema: z.ZodObject<{
143
143
  homepage?: string | undefined;
144
144
  minVasperaVersion?: string | undefined;
145
145
  }, {
146
+ name: string;
146
147
  version: string;
147
148
  description: string;
148
- name: string;
149
149
  scanner: {
150
150
  type: string;
151
151
  languages: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-injection-fuzzer.d.ts","sourceRoot":"","sources":["../../../src/scanners/agent/prompt-injection-fuzzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EAIX,aAAa,EACb,aAAa,EAGd,MAAM,YAAY,CAAC;AAsrBpB;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,kBAAkB,CAAC,CA4D7B;AAED;;GAEG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC;IACnE,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAUD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,GAAG,IAAI,CAmDjF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAmCpE"}
1
+ {"version":3,"file":"prompt-injection-fuzzer.d.ts","sourceRoot":"","sources":["../../../src/scanners/agent/prompt-injection-fuzzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EAIX,aAAa,EACb,aAAa,EAGd,MAAM,YAAY,CAAC;AAktBpB;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,kBAAkB,CAAC,CA4D7B;AAED;;GAEG;AACH,wBAAsB,mCAAmC,IAAI,OAAO,CAAC;IACnE,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAUD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,GAAG,IAAI,CAmDjF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAmCpE"}
@@ -99,6 +99,25 @@ const JAILBREAK_INDICATORS = [
99
99
  /HACKED/i,
100
100
  /JAILBROKEN/i,
101
101
  ];
102
+ /**
103
+ * Patterns indicating the injection was NEUTRALIZED (a safe outcome). A
104
+ * response that says it blocked / prevented / refused the attempt is the
105
+ * tool resisting — not a behavior change. Without this guard the detector
106
+ * matches trigger words in the tool's *own* refusal text (e.g. "Jailbreak
107
+ * attempt blocked" matches the /jailbreak/ override indicator), which flags
108
+ * every safe tool as vulnerable — a false positive on 100% of benign tools.
109
+ */
110
+ const BLOCKED_INDICATORS = [
111
+ /\bblocked\b/i,
112
+ /\bprevented\b/i,
113
+ /\bdenied\b/i,
114
+ /\brefused\b/i,
115
+ /\brejected\b/i,
116
+ /\bcannot\b/i,
117
+ /\bnot\s+allowed\b/i,
118
+ /validation\s+prevented/i,
119
+ /without\s+behavior\s+change/i,
120
+ ];
102
121
  /**
103
122
  * Patterns for sensitive data leakage
104
123
  */
@@ -122,6 +141,13 @@ const SENSITIVE_DATA_PATTERNS = [
122
141
  */
123
142
  function detectBehaviorChange(response, payload) {
124
143
  const indicators = [];
144
+ // If the response says it neutralized the attempt, the tool resisted —
145
+ // do not let trigger words in its own refusal text ("Jailbreak attempt
146
+ // blocked") count as a successful injection. Strong compromise markers
147
+ // below would still be absent in a genuine block, so this is safe.
148
+ if (BLOCKED_INDICATORS.some((p) => p.test(response))) {
149
+ return { changed: false, indicators: ["blocked"] };
150
+ }
125
151
  // Check for payload echoing (injection succeeded but may be safe)
126
152
  if (response.toLowerCase().includes(payload.text.toLowerCase().slice(0, 50))) {
127
153
  indicators.push("payload-echoed");
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-injection-fuzzer.js","sourceRoot":"","sources":["../../../src/scanners/agent/prompt-injection-fuzzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-injection-fuzzer.js","sourceRoot":"","sources":["../../../src/scanners/agent/prompt-injection-fuzzer.ts"],"names":[],"mappings":"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"}
@@ -126,21 +126,21 @@ export declare const MCPManifestSchema: z.ZodObject<{
126
126
  codeExecution: z.ZodOptional<z.ZodBoolean>;
127
127
  requiredPermissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
128
128
  }, "strip", z.ZodTypeAny, {
129
- description: string;
130
129
  name: string;
130
+ description: string;
131
+ readOnlyHint?: boolean | undefined;
131
132
  inputSchema?: any;
132
133
  destructiveHint?: boolean | undefined;
133
- readOnlyHint?: boolean | undefined;
134
134
  allowedOrigins?: string[] | undefined;
135
135
  networkAccess?: boolean | undefined;
136
136
  codeExecution?: boolean | undefined;
137
137
  requiredPermissions?: string[] | undefined;
138
138
  }, {
139
- description: string;
140
139
  name: string;
140
+ description: string;
141
+ readOnlyHint?: boolean | undefined;
141
142
  inputSchema?: any;
142
143
  destructiveHint?: boolean | undefined;
143
- readOnlyHint?: boolean | undefined;
144
144
  allowedOrigins?: string[] | undefined;
145
145
  networkAccess?: boolean | undefined;
146
146
  codeExecution?: boolean | undefined;
@@ -213,14 +213,14 @@ export declare const MCPManifestSchema: z.ZodObject<{
213
213
  }>>;
214
214
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
215
215
  }, "strip", z.ZodTypeAny, {
216
- version: string;
217
216
  name: string;
217
+ version: string;
218
218
  tools: {
219
- description: string;
220
219
  name: string;
220
+ description: string;
221
+ readOnlyHint?: boolean | undefined;
221
222
  inputSchema?: any;
222
223
  destructiveHint?: boolean | undefined;
223
- readOnlyHint?: boolean | undefined;
224
224
  allowedOrigins?: string[] | undefined;
225
225
  networkAccess?: boolean | undefined;
226
226
  codeExecution?: boolean | undefined;
@@ -250,14 +250,14 @@ export declare const MCPManifestSchema: z.ZodObject<{
250
250
  logging?: boolean | undefined;
251
251
  } | undefined;
252
252
  }, {
253
- version: string;
254
253
  name: string;
254
+ version: string;
255
255
  tools: {
256
- description: string;
257
256
  name: string;
257
+ description: string;
258
+ readOnlyHint?: boolean | undefined;
258
259
  inputSchema?: any;
259
260
  destructiveHint?: boolean | undefined;
260
- readOnlyHint?: boolean | undefined;
261
261
  allowedOrigins?: string[] | undefined;
262
262
  networkAccess?: boolean | undefined;
263
263
  codeExecution?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"bandit.d.ts","sourceRoot":"","sources":["../../src/scanners/bandit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAwB,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAqD3F;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAiBzE;AASD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,aAAa,CAAC,CAgFxB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWxE"}
1
+ {"version":3,"file":"bandit.d.ts","sourceRoot":"","sources":["../../src/scanners/bandit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAwB,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAmD3F;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAczE;AASD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,aAAa,CAAC,CAyExB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BxE"}
@@ -5,30 +5,26 @@
5
5
  *
6
6
  * @module scanners/bandit
7
7
  */
8
- import { exec } from "child_process";
9
- import { promisify } from "util";
8
+ import { runCommand, probeBinary } from "../util/subprocess.js";
9
+ import { parseJson } from "../util/json.js";
10
10
  import { SEVERITY_MAPPINGS } from "./types.js";
11
- const execAsync = promisify(exec);
12
11
  /**
13
12
  * Check if Bandit is available
14
13
  */
15
14
  export async function checkBanditAvailable() {
16
- try {
17
- const { stdout } = await execAsync("bandit --version", { timeout: 5000 });
18
- const version = stdout.trim().split("\n")[0];
15
+ const version = await probeBinary("bandit");
16
+ if (version !== null) {
19
17
  return {
20
18
  scanner: "bandit",
21
19
  available: true,
22
20
  version,
23
21
  };
24
22
  }
25
- catch (error) {
26
- return {
27
- scanner: "bandit",
28
- available: false,
29
- error: error instanceof Error ? error.message : "Bandit not found",
30
- };
31
- }
23
+ return {
24
+ scanner: "bandit",
25
+ available: false,
26
+ error: "Bandit not found",
27
+ };
32
28
  }
33
29
  /**
34
30
  * Convert Bandit severity to vaspera severity
@@ -53,27 +49,20 @@ export async function runBandit(projectPath, options) {
53
49
  error: "Bandit is not installed. Install with: pip install bandit",
54
50
  };
55
51
  }
56
- // Build command
57
- let command = `bandit -r "${projectPath}" -f json`;
52
+ const args = ["-r", projectPath, "-f", "json"];
58
53
  if (options?.exclude && options.exclude.length > 0) {
59
- command += ` --exclude ${options.exclude.join(",")}`;
54
+ args.push("--exclude", options.exclude.join(","));
60
55
  }
61
56
  if (options?.configFile) {
62
- command += ` -c "${options.configFile}"`;
57
+ args.push("-c", options.configFile);
63
58
  }
64
- // Run Bandit
65
- const { stdout, stderr } = await execAsync(command, {
59
+ // Bandit exits with code 1 if issues are found; runCommand tolerates
60
+ // non-zero exits that still produced stdout.
61
+ const { stdout } = await runCommand("bandit", args, {
66
62
  timeout: options?.timeout || 120000,
67
63
  maxBuffer: 10 * 1024 * 1024, // 10MB
68
- }).catch((error) => {
69
- // Bandit exits with code 1 if issues are found
70
- if (error.stdout) {
71
- return { stdout: error.stdout, stderr: error.stderr || "" };
72
- }
73
- throw error;
74
64
  });
75
- // Parse JSON output
76
- const output = JSON.parse(stdout);
65
+ const output = parseJson(stdout, "bandit output");
77
66
  // Convert to DeterministicFindings
78
67
  const findings = output.results.map((result) => ({
79
68
  scanner: "bandit",
@@ -118,8 +107,25 @@ export async function runBandit(projectPath, options) {
118
107
  */
119
108
  export async function detectPython(projectPath) {
120
109
  try {
121
- // Check for common Python files
122
- const { stdout } = await execAsync(`find "${projectPath}" -maxdepth 3 -name "*.py" -o -name "requirements.txt" -o -name "setup.py" -o -name "pyproject.toml" | head -1`, { timeout: 5000 });
110
+ const { stdout } = await runCommand("find", [
111
+ projectPath,
112
+ "-maxdepth",
113
+ "3",
114
+ "(",
115
+ "-name",
116
+ "*.py",
117
+ "-o",
118
+ "-name",
119
+ "requirements.txt",
120
+ "-o",
121
+ "-name",
122
+ "setup.py",
123
+ "-o",
124
+ "-name",
125
+ "pyproject.toml",
126
+ ")",
127
+ "-print",
128
+ ], { timeout: 5000 });
123
129
  return stdout.trim().length > 0;
124
130
  }
125
131
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"bandit.js","sourceRoot":"","sources":["../../src/scanners/bandit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bandit.js","sourceRoot":"","sources":["../../src/scanners/bandit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"binary-analysis.d.ts","sourceRoot":"","sources":["../../src/scanners/binary-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAwB,aAAa,EAAY,MAAM,YAAY,CAAC;AAehF,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd;AAaD;;GAEG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC,CAyCD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA6EtF;AAoVD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC,aAAa,CAAC,CAwIxB"}
1
+ {"version":3,"file":"binary-analysis.d.ts","sourceRoot":"","sources":["../../src/scanners/binary-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAwB,aAAa,EAAY,MAAM,YAAY,CAAC;AAahF,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC1E,IAAI,EAAE,MAAM,CAAC;CACd;AAaD;;GAEG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC,CAWD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA6EtF;AA+VD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC,aAAa,CAAC,CAwIxB"}
@@ -11,12 +11,10 @@
11
11
  * - Rust FFI (Cargo.toml with cdylib)
12
12
  * - Go CGO (import "C" in .go files)
13
13
  */
14
- import { exec } from "child_process";
15
- import { promisify } from "util";
16
14
  import * as fs from "fs/promises";
17
15
  import * as path from "path";
18
16
  import { glob } from "glob";
19
- const execAsync = promisify(exec);
17
+ import { runCommand, probeBinary } from "../util/subprocess.js";
20
18
  // CWE mappings for binary security issues
21
19
  const BINARY_CWES = {
22
20
  "missing-canary": ["CWE-121"], // Stack-based Buffer Overflow
@@ -31,45 +29,14 @@ const BINARY_CWES = {
31
29
  * Check if binary analysis tools are available
32
30
  */
33
31
  export async function checkBinaryAnalysisAvailable() {
34
- const results = {
35
- checksec: false,
36
- nm: false,
37
- objdump: false,
38
- file: false,
32
+ // checksec ships as either a Python CLI or a bash script
33
+ const checksec = (await probeBinary("checksec")) ?? (await probeBinary("checksec.sh"));
34
+ return {
35
+ checksec: checksec !== null,
36
+ nm: (await probeBinary("nm")) !== null,
37
+ objdump: (await probeBinary("objdump")) !== null,
38
+ file: (await probeBinary("file")) !== null,
39
39
  };
40
- // Check for checksec (Python version or bash script)
41
- try {
42
- await execAsync("checksec --version 2>/dev/null || checksec.sh --version 2>/dev/null");
43
- results.checksec = true;
44
- }
45
- catch {
46
- // checksec not available
47
- }
48
- // Check for nm
49
- try {
50
- await execAsync("nm --version");
51
- results.nm = true;
52
- }
53
- catch {
54
- // nm not available
55
- }
56
- // Check for objdump
57
- try {
58
- await execAsync("objdump --version");
59
- results.objdump = true;
60
- }
61
- catch {
62
- // objdump not available
63
- }
64
- // Check for file command
65
- try {
66
- await execAsync("file --version");
67
- results.file = true;
68
- }
69
- catch {
70
- // file not available
71
- }
72
- return results;
73
40
  }
74
41
  /**
75
42
  * Detect native modules and binaries in the project
@@ -198,15 +165,22 @@ function parseChecksecOutput(output) {
198
165
  * Run checksec on a binary file
199
166
  */
200
167
  async function runChecksecOnBinary(binaryPath) {
168
+ // Try JSON output first (newer checksec versions), then fall back to
169
+ // the plain text format for older versions.
201
170
  try {
202
- // Try JSON output first (newer checksec versions)
203
- const { stdout } = await execAsync(`checksec --file="${binaryPath}" --output=json 2>/dev/null || checksec --file="${binaryPath}" 2>/dev/null`, {
204
- timeout: 10000,
205
- });
171
+ const { stdout } = await runCommand("checksec", [`--file=${binaryPath}`, "--output=json"], { timeout: 10000 });
206
172
  return parseChecksecOutput(stdout);
207
173
  }
208
174
  catch {
209
- return null;
175
+ try {
176
+ const { stdout } = await runCommand("checksec", [`--file=${binaryPath}`], {
177
+ timeout: 10000,
178
+ });
179
+ return parseChecksecOutput(stdout);
180
+ }
181
+ catch {
182
+ return null;
183
+ }
210
184
  }
211
185
  }
212
186
  /**
@@ -215,15 +189,16 @@ async function runChecksecOnBinary(binaryPath) {
215
189
  async function analyzeWithNm(binaryPath) {
216
190
  const flags = {};
217
191
  try {
218
- const { stdout } = await execAsync(`nm -D "${binaryPath}" 2>/dev/null | head -100`, {
192
+ const { stdout } = await runCommand("nm", ["-D", binaryPath], {
219
193
  timeout: 10000,
220
194
  });
195
+ const head = stdout.split("\n").slice(0, 100).join("\n");
221
196
  // Check for stack protector symbols (indicates canary)
222
- if (stdout.includes("__stack_chk_fail") || stdout.includes("__stack_chk_guard")) {
197
+ if (head.includes("__stack_chk_fail") || head.includes("__stack_chk_guard")) {
223
198
  flags.canary = true;
224
199
  }
225
200
  // Check for fortify symbols
226
- if (stdout.includes("__fortify_fail") || stdout.includes("_chk@")) {
201
+ if (head.includes("__fortify_fail") || head.includes("_chk@")) {
227
202
  flags.fortify = true;
228
203
  }
229
204
  }