@clear-capabilities/agentic-security-scanner 0.118.2 → 0.119.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 (155) hide show
  1. package/CHANGELOG.md +256 -0
  2. package/bin/agentic-security.js +78 -1
  3. package/dist/178.index.js +1 -1
  4. package/dist/384.index.js +1 -1
  5. package/dist/415.index.js +90 -0
  6. package/dist/444.index.js +89 -0
  7. package/dist/503.index.js +288 -0
  8. package/dist/637.index.js +15 -1
  9. package/dist/838.index.js +1 -1
  10. package/dist/985.index.js +5 -1
  11. package/dist/agentic-security.mjs +18 -18
  12. package/dist/agentic-security.mjs.sha256 +1 -1
  13. package/package.json +13 -8
  14. package/src/dataflow/CLAUDE.md +1 -1
  15. package/src/dataflow/catalog.js +50 -11
  16. package/src/dataflow/engine.js +76 -1
  17. package/src/dataflow/implicit-flow.js +4 -2
  18. package/src/dataflow/index.js +9 -4
  19. package/src/dataflow/proof-gate.js +5 -0
  20. package/src/dataflow/summaries.js +19 -1
  21. package/src/engine.js +95 -7
  22. package/src/ir/parser-go.js +8 -0
  23. package/src/mcp/tools.js +6 -2
  24. package/src/posture/fix-history.js +24 -0
  25. package/src/posture/provenance.js +39 -0
  26. package/src/posture/sca-verdict.js +130 -0
  27. package/src/posture/secret-history.js +72 -0
  28. package/src/pr-delta.js +13 -0
  29. package/src/report/index.js +50 -0
  30. package/src/sast/agent-untrusted-flow.js +107 -0
  31. package/src/sast/api-authz.js +71 -0
  32. package/src/sast/cross-service.js +98 -0
  33. package/src/sast/event-entrypoint.js +90 -0
  34. package/src/sast/iac-terraform.js +107 -0
  35. package/src/sast/rbac-consistency.js +113 -0
  36. package/src/sast/wrong-context-sanitizer.js +55 -0
  37. package/src/sca/image-packages.js +74 -0
  38. package/src/sca/import-reachability.js +271 -0
  39. package/src/sca/install-script-analysis.js +82 -0
  40. package/bin/.agentic-security/findings.json +0 -1907
  41. package/bin/.agentic-security/last-scan.json +0 -1907
  42. package/bin/.agentic-security/last-scan.json.sig +0 -1
  43. package/bin/.agentic-security/scan-history.json +0 -166
  44. package/bin/.agentic-security/streak.json +0 -20
  45. package/src/.agentic-security/dpia.md +0 -26
  46. package/src/.agentic-security/findings.json +0 -117732
  47. package/src/.agentic-security/last-scan.json +0 -117732
  48. package/src/.agentic-security/last-scan.json.sig +0 -1
  49. package/src/.agentic-security/pqc-migration-plan.json +0 -80
  50. package/src/.agentic-security/pqc-migration-plan.md +0 -32
  51. package/src/.agentic-security/sbom-history/0775d96ba4cf814520d02760cfb3010760c7684f.json +0 -6
  52. package/src/.agentic-security/sbom-history/29300441d3460832137a8e51a92b74068cad2f15.json +0 -6
  53. package/src/.agentic-security/sbom-history/3852ad2aa0e50951bed0c930c29d1861aa13d048.json +0 -6
  54. package/src/.agentic-security/sbom-history/3d96e2daec97e3226c9679bac6e64a89ca10bfe9.json +0 -6
  55. package/src/.agentic-security/sbom-history/5f0b136622fce09b469a1a6137c04d5b18652ea4.json +0 -6
  56. package/src/.agentic-security/sbom-history/64e30595d447b62344d0d9200760269df2095332.json +0 -6
  57. package/src/.agentic-security/sbom-history/71f3241902c9e7437764e3caa046ba8a3bcdd32a.json +0 -6
  58. package/src/.agentic-security/sbom-history/99c372cdc33ecc9dde92960b4ffadf7775860e61.json +0 -6
  59. package/src/.agentic-security/sbom-history/9c93b15e8cf3ff2ddb8cdae92371b82e178b463c.json +0 -6
  60. package/src/.agentic-security/sbom-history/a3544abf1863d71776b61302ca74d9ead2b26a9f.json +0 -6
  61. package/src/.agentic-security/sbom-history/dca15abdec43c508aa342db86dc5db8d7f01fbbe.json +0 -6
  62. package/src/.agentic-security/scan-history.json +0 -12946
  63. package/src/.agentic-security/streak.json +0 -21
  64. package/src/.agentic-security/threat-model.json +0 -3702
  65. package/src/.agentic-security/threat-model.md +0 -118
  66. package/src/dataflow/.agentic-security/dpia.md +0 -26
  67. package/src/dataflow/.agentic-security/findings.json +0 -6086
  68. package/src/dataflow/.agentic-security/last-scan.json +0 -6086
  69. package/src/dataflow/.agentic-security/last-scan.json.sig +0 -1
  70. package/src/dataflow/.agentic-security/sbom-history/15d7c4d20f9d968ebec29445c9e9b3fc6f74e6a1.json +0 -6
  71. package/src/dataflow/.agentic-security/sbom-history/3852ad2aa0e50951bed0c930c29d1861aa13d048.json +0 -6
  72. package/src/dataflow/.agentic-security/sbom-history/73166872888d9ddcbe98645af818ecc7d8917b07.json +0 -6
  73. package/src/dataflow/.agentic-security/sbom-history/8869fe64035bec0152d92ece961e9369d8637076.json +0 -6
  74. package/src/dataflow/.agentic-security/sbom-history/9c93b15e8cf3ff2ddb8cdae92371b82e178b463c.json +0 -6
  75. package/src/dataflow/.agentic-security/sbom-history/b7ac2dada4a9216ccfe8969fc57f988c83f46975.json +0 -6
  76. package/src/dataflow/.agentic-security/scan-history.json +0 -250
  77. package/src/dataflow/.agentic-security/streak.json +0 -21
  78. package/src/dataflow/.agentic-security/threat-model.json +0 -161
  79. package/src/dataflow/.agentic-security/threat-model.md +0 -43
  80. package/src/ir/.agentic-security/dpia.md +0 -26
  81. package/src/ir/.agentic-security/exploit-bundles.json +0 -77
  82. package/src/ir/.agentic-security/findings.json +0 -4011
  83. package/src/ir/.agentic-security/last-scan.json +0 -4011
  84. package/src/ir/.agentic-security/last-scan.json.sig +0 -1
  85. package/src/ir/.agentic-security/sbom-history/73166872888d9ddcbe98645af818ecc7d8917b07.json +0 -6
  86. package/src/ir/.agentic-security/sbom-history/b5f468a158f6a145aedd8680841c106b9809f16b.json +0 -6
  87. package/src/ir/.agentic-security/scan-history.json +0 -193
  88. package/src/ir/.agentic-security/streak.json +0 -20
  89. package/src/ir/.agentic-security/threat-model.json +0 -143
  90. package/src/ir/.agentic-security/threat-model.md +0 -39
  91. package/src/mcp/.agentic-security/findings.json +0 -8632
  92. package/src/mcp/.agentic-security/last-scan.json +0 -8632
  93. package/src/mcp/.agentic-security/last-scan.json.sig +0 -1
  94. package/src/mcp/.agentic-security/scan-history.json +0 -331
  95. package/src/mcp/.agentic-security/streak.json +0 -20
  96. package/src/posture/.agentic-security/dpia.md +0 -26
  97. package/src/posture/.agentic-security/findings.json +0 -77181
  98. package/src/posture/.agentic-security/last-scan.json +0 -77181
  99. package/src/posture/.agentic-security/last-scan.json.sig +0 -1
  100. package/src/posture/.agentic-security/pqc-migration-plan.json +0 -65
  101. package/src/posture/.agentic-security/pqc-migration-plan.md +0 -30
  102. package/src/posture/.agentic-security/sbom-history/0724c133d2943c87555695b5b2adcfcfc3373a2d.json +0 -6
  103. package/src/posture/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +0 -6
  104. package/src/posture/.agentic-security/sbom-history/99c372cdc33ecc9dde92960b4ffadf7775860e61.json +0 -6
  105. package/src/posture/.agentic-security/sbom-history/b7ac2dada4a9216ccfe8969fc57f988c83f46975.json +0 -6
  106. package/src/posture/.agentic-security/scan-history.json +0 -8904
  107. package/src/posture/.agentic-security/streak.json +0 -21
  108. package/src/posture/.agentic-security/threat-model.json +0 -2038
  109. package/src/posture/.agentic-security/threat-model.md +0 -73
  110. package/src/posture/compliance-frameworks/.agentic-security/findings.json +0 -80
  111. package/src/posture/compliance-frameworks/.agentic-security/last-scan.json +0 -80
  112. package/src/posture/compliance-frameworks/.agentic-security/last-scan.json.sig +0 -1
  113. package/src/posture/compliance-frameworks/.agentic-security/scan-history.json +0 -90
  114. package/src/posture/compliance-frameworks/.agentic-security/streak.json +0 -22
  115. package/src/report/.agentic-security/dpia.md +0 -26
  116. package/src/report/.agentic-security/sbom-history/7d45b5e03804aac084b4a2b4dc8c6f10107d2005.json +0 -6
  117. package/src/report/.agentic-security/sbom-history/f94be839aa6a1011f53da016416a561698b8f338.json +0 -6
  118. package/src/report/.agentic-security/threat-model.json +0 -7
  119. package/src/report/.agentic-security/threat-model.md +0 -22
  120. package/src/sast/.agentic-security/dpia.md +0 -26
  121. package/src/sast/.agentic-security/findings.json +0 -6154
  122. package/src/sast/.agentic-security/last-scan.json +0 -6154
  123. package/src/sast/.agentic-security/last-scan.json.sig +0 -1
  124. package/src/sast/.agentic-security/pqc-migration-plan.json +0 -65
  125. package/src/sast/.agentic-security/pqc-migration-plan.md +0 -30
  126. package/src/sast/.agentic-security/sbom-history/043a7b401c68f5a298c83d4c42e94f118ff2a89a.json +0 -6
  127. package/src/sast/.agentic-security/sbom-history/0775d96ba4cf814520d02760cfb3010760c7684f.json +0 -6
  128. package/src/sast/.agentic-security/sbom-history/20d77ad7363a82777d506dedbbb1ecfed52f094a.json +0 -6
  129. package/src/sast/.agentic-security/sbom-history/29300441d3460832137a8e51a92b74068cad2f15.json +0 -6
  130. package/src/sast/.agentic-security/sbom-history/3852ad2aa0e50951bed0c930c29d1861aa13d048.json +0 -6
  131. package/src/sast/.agentic-security/sbom-history/3c6b3205f04e26f7654943d465281d00e0fa395e.json +0 -6
  132. package/src/sast/.agentic-security/sbom-history/3d96e2daec97e3226c9679bac6e64a89ca10bfe9.json +0 -6
  133. package/src/sast/.agentic-security/sbom-history/5282502e090013219eb006f7e02d8c983bc29c8e.json +0 -6
  134. package/src/sast/.agentic-security/sbom-history/5f0b136622fce09b469a1a6137c04d5b18652ea4.json +0 -6
  135. package/src/sast/.agentic-security/sbom-history/64e30595d447b62344d0d9200760269df2095332.json +0 -6
  136. package/src/sast/.agentic-security/sbom-history/71f3241902c9e7437764e3caa046ba8a3bcdd32a.json +0 -6
  137. package/src/sast/.agentic-security/sbom-history/73514b485d4770f3c5ee57d87338bccd1c61d8b7.json +0 -6
  138. package/src/sast/.agentic-security/sbom-history/96fa584fc3134512237d58aac63d6f3778b0cbcb.json +0 -6
  139. package/src/sast/.agentic-security/sbom-history/99c372cdc33ecc9dde92960b4ffadf7775860e61.json +0 -6
  140. package/src/sast/.agentic-security/sbom-history/a3544abf1863d71776b61302ca74d9ead2b26a9f.json +0 -6
  141. package/src/sast/.agentic-security/sbom-history/a4a34ab8b3d758de2adc8c3dc3e42d4cb0db00a3.json +0 -6
  142. package/src/sast/.agentic-security/sbom-history/ac236ec3602cfc8fb133f389ec3687e409084673.json +0 -6
  143. package/src/sast/.agentic-security/sbom-history/b57b3e1292f1f9f0de6c5a34a436e330c78008a3.json +0 -6
  144. package/src/sast/.agentic-security/sbom-history/dca15abdec43c508aa342db86dc5db8d7f01fbbe.json +0 -6
  145. package/src/sast/.agentic-security/sbom-history/dcbfd4935922dd165093c08a1003c338eed937c5.json +0 -6
  146. package/src/sast/.agentic-security/sbom-history/fa017f725615b0293814344c8ef7dfeb06775ca0.json +0 -6
  147. package/src/sast/.agentic-security/scan-history.json +0 -941
  148. package/src/sast/.agentic-security/streak.json +0 -22
  149. package/src/sast/.agentic-security/threat-model.json +0 -816
  150. package/src/sast/.agentic-security/threat-model.md +0 -91
  151. package/src/sca/.agentic-security/findings.json +0 -7460
  152. package/src/sca/.agentic-security/last-scan.json +0 -7460
  153. package/src/sca/.agentic-security/last-scan.json.sig +0 -1
  154. package/src/sca/.agentic-security/scan-history.json +0 -113
  155. package/src/sca/.agentic-security/streak.json +0 -21
@@ -1 +0,0 @@
1
- da76e96762f8d7ee6ac2ee8968d5822c14bee45de513ed9c1d60cf6f6694c261
@@ -1,6 +0,0 @@
1
- {
2
- "sha": "73166872888d9ddcbe98645af818ecc7d8917b07",
3
- "ts": "2026-05-31T15:37:04.152Z",
4
- "componentCount": 0,
5
- "components": []
6
- }
@@ -1,6 +0,0 @@
1
- {
2
- "sha": "b5f468a158f6a145aedd8680841c106b9809f16b",
3
- "ts": "2026-05-31T16:25:21.141Z",
4
- "componentCount": 0,
5
- "components": []
6
- }
@@ -1,193 +0,0 @@
1
- [
2
- {
3
- "timestamp": "2026-05-28T18:59:26.541Z",
4
- "label": "scan",
5
- "total": 15,
6
- "critical": 0,
7
- "high": 5,
8
- "medium": 10,
9
- "low": 0,
10
- "kev": 0,
11
- "ids": [
12
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
13
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
14
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
15
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
16
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
17
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
18
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
19
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
20
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
21
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
22
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
23
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
24
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
25
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
26
- "toctou-fs:type-stubs.js:48"
27
- ]
28
- },
29
- {
30
- "timestamp": "2026-05-28T19:04:00.910Z",
31
- "label": "scan",
32
- "total": 15,
33
- "critical": 0,
34
- "high": 5,
35
- "medium": 10,
36
- "low": 0,
37
- "kev": 0,
38
- "ids": [
39
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
40
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
41
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
42
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
43
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
44
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
45
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
46
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
47
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
48
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
49
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
50
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
51
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
52
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
53
- "toctou-fs:type-stubs.js:48"
54
- ]
55
- },
56
- {
57
- "timestamp": "2026-05-28T19:06:14.172Z",
58
- "label": "scan",
59
- "total": 15,
60
- "critical": 0,
61
- "high": 5,
62
- "medium": 10,
63
- "low": 0,
64
- "kev": 0,
65
- "ids": [
66
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
67
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
68
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
69
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
70
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
71
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
72
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
73
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
74
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
75
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
76
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
77
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
78
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
79
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
80
- "toctou-fs:type-stubs.js:48"
81
- ]
82
- },
83
- {
84
- "timestamp": "2026-05-28T19:06:52.695Z",
85
- "label": "scan",
86
- "total": 15,
87
- "critical": 0,
88
- "high": 5,
89
- "medium": 10,
90
- "low": 0,
91
- "kev": 0,
92
- "ids": [
93
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
94
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
95
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
96
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
97
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
98
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
99
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
100
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
101
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
102
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
103
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
104
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
105
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
106
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
107
- "toctou-fs:type-stubs.js:48"
108
- ]
109
- },
110
- {
111
- "timestamp": "2026-05-28T20:16:46.839Z",
112
- "label": "scan",
113
- "total": 15,
114
- "critical": 0,
115
- "high": 5,
116
- "medium": 10,
117
- "low": 0,
118
- "kev": 0,
119
- "ids": [
120
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
121
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
122
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
123
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
124
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
125
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
126
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
127
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
128
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
129
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
130
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
131
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
132
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
133
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
134
- "toctou-fs:type-stubs.js:48"
135
- ]
136
- },
137
- {
138
- "timestamp": "2026-05-28T21:57:00.566Z",
139
- "label": "scan",
140
- "total": 16,
141
- "critical": 0,
142
- "high": 5,
143
- "medium": 11,
144
- "low": 0,
145
- "kev": 0,
146
- "ids": [
147
- "struct:cpp-preprocessor.js:94:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
148
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
149
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
150
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
151
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
152
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
153
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
154
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
155
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
156
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
157
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
158
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
159
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
160
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
161
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
162
- "toctou-fs:type-stubs.js:48"
163
- ]
164
- },
165
- {
166
- "timestamp": "2026-05-29T06:24:38.526Z",
167
- "label": "scan",
168
- "total": 16,
169
- "critical": 0,
170
- "high": 5,
171
- "medium": 11,
172
- "low": 0,
173
- "kev": 0,
174
- "ids": [
175
- "struct:cpp-preprocessor.js:94:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
176
- "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
177
- "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
178
- "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
179
- "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
180
- "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
181
- "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
182
- "struct:type-stubs.js:190:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
183
- "struct:type-stubs.js:198:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
184
- "struct:type-stubs.js:216:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
185
- "struct:type-stubs.js:245:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
186
- "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
187
- "struct:type-stubs.js:57:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
188
- "struct:type-stubs.js:58:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
189
- "struct:type-stubs.js:79:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
190
- "toctou-fs:type-stubs.js:48"
191
- ]
192
- }
193
- ]
@@ -1,20 +0,0 @@
1
- {
2
- "firstScanDate": "2026-05-28T18:59:26.568Z",
3
- "lastScanDate": "2026-05-29T06:24:38.574Z",
4
- "totalScans": 7,
5
- "daysCleanCritical": 2,
6
- "lastCleanDate": "2026-05-29",
7
- "lastCriticalDate": null,
8
- "hasEverHadCritical": false,
9
- "bestDaysCleanCritical": 2,
10
- "totalFindingsAtFirstScan": 16,
11
- "totalFindingsAtLastScan": 17,
12
- "totalFixesInferred": 0,
13
- "lastGrade": "B",
14
- "bestGrade": "B",
15
- "launchCheckPassedAt": null,
16
- "achievements": [
17
- "first-scan"
18
- ],
19
- "previousGrade": "B"
20
- }
@@ -1,143 +0,0 @@
1
- {
2
- "entities": [],
3
- "boundaries": [],
4
- "assets": [],
5
- "threats": [
6
- {
7
- "stride": "T",
8
- "strideLabel": "Tampering",
9
- "cwe": "CWE-915",
10
- "family": "mass-assignment",
11
- "severity": "high",
12
- "file": "parser-cs.js",
13
- "vuln": "Mass Assignment (req.body Direct to Model)",
14
- "finding_id": "struct:parser-cs.js:208:Mass_Assignment_(req.body_Direct_to_Model)",
15
- "affectsAsset": null,
16
- "atEntity": null
17
- },
18
- {
19
- "stride": "T",
20
- "strideLabel": "Tampering",
21
- "cwe": "CWE-915",
22
- "family": "mass-assignment",
23
- "severity": "high",
24
- "file": "parser-go.js",
25
- "vuln": "Mass Assignment (req.body Direct to Model)",
26
- "finding_id": "struct:parser-go.js:253:Mass_Assignment_(req.body_Direct_to_Model)",
27
- "affectsAsset": null,
28
- "atEntity": null
29
- },
30
- {
31
- "stride": "T",
32
- "strideLabel": "Tampering",
33
- "cwe": "CWE-915",
34
- "family": "mass-assignment",
35
- "severity": "high",
36
- "file": "parser-kt.js",
37
- "vuln": "Mass Assignment (req.body Direct to Model)",
38
- "finding_id": "struct:parser-kt.js:207:Mass_Assignment_(req.body_Direct_to_Model)",
39
- "affectsAsset": null,
40
- "atEntity": null
41
- },
42
- {
43
- "stride": "T",
44
- "strideLabel": "Tampering",
45
- "cwe": "CWE-915",
46
- "family": "mass-assignment",
47
- "severity": "high",
48
- "file": "parser-php.js",
49
- "vuln": "Mass Assignment (req.body Direct to Model)",
50
- "finding_id": "struct:parser-php.js:209:Mass_Assignment_(req.body_Direct_to_Model)",
51
- "affectsAsset": null,
52
- "atEntity": null
53
- },
54
- {
55
- "stride": "T",
56
- "strideLabel": "Tampering",
57
- "cwe": "CWE-915",
58
- "family": "mass-assignment",
59
- "severity": "high",
60
- "file": "parser-rb.js",
61
- "vuln": "Mass Assignment (req.body Direct to Model)",
62
- "finding_id": "struct:parser-rb.js:201:Mass_Assignment_(req.body_Direct_to_Model)",
63
- "affectsAsset": null,
64
- "atEntity": null
65
- },
66
- {
67
- "stride": "T",
68
- "strideLabel": "Tampering",
69
- "cwe": "CWE-400",
70
- "family": "dos-sync-io",
71
- "severity": "medium",
72
- "file": "cpp-preprocessor.js",
73
- "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
74
- "finding_id": "struct:cpp-preprocessor.js:94:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
75
- "affectsAsset": null,
76
- "atEntity": null
77
- },
78
- {
79
- "stride": "T",
80
- "strideLabel": "Tampering",
81
- "cwe": "CWE-400",
82
- "family": "dos-sync-io",
83
- "severity": "medium",
84
- "file": "type-stubs.js",
85
- "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
86
- "finding_id": "struct:type-stubs.js:48:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
87
- "affectsAsset": null,
88
- "atEntity": null
89
- },
90
- {
91
- "stride": "T",
92
- "strideLabel": "Tampering",
93
- "cwe": "CWE-400",
94
- "family": "dos-sync-io",
95
- "severity": "medium",
96
- "file": "parser-py-cst.js",
97
- "vuln": "Synchronous Blocking I/O (DoS Risk in Server Context)",
98
- "finding_id": "struct:parser-py-cst.js:91:Synchronous_Blocking_I/O_(DoS_Risk_in_Server_Context)",
99
- "affectsAsset": null,
100
- "atEntity": null
101
- },
102
- {
103
- "stride": "I",
104
- "strideLabel": "Information Disclosure",
105
- "cwe": "CWE-327",
106
- "family": "crypto-weak-hash",
107
- "severity": "medium",
108
- "file": "parser-py.helper.py",
109
- "line": 68,
110
- "vuln": "Weak hash algorithm (MD5 / SHA-1 / MD2 / MD4) used",
111
- "finding_id": "crypto-weak-hash:parser-py.helper.py:68",
112
- "affectsAsset": null,
113
- "atEntity": null
114
- },
115
- {
116
- "stride": "T",
117
- "strideLabel": "Tampering",
118
- "cwe": "CWE-367",
119
- "family": "toctou-file-existence-permission-check-b",
120
- "severity": "medium",
121
- "file": "type-stubs.js",
122
- "line": 48,
123
- "vuln": "TOCTOU: file existence/permission check before open",
124
- "finding_id": "toctou-fs:type-stubs.js:48",
125
- "affectsAsset": null,
126
- "atEntity": null
127
- },
128
- {
129
- "stride": "T",
130
- "strideLabel": "Tampering",
131
- "cwe": "CWE-176",
132
- "family": "path-normalization",
133
- "severity": "medium",
134
- "file": "universal-ir.js",
135
- "line": 93,
136
- "vuln": "Path Normalization Gap — extension extraction without null-byte/traversal sanitization",
137
- "finding_id": "path-norm:universal-ir.js:93",
138
- "affectsAsset": null,
139
- "atEntity": null
140
- }
141
- ],
142
- "attackTrees": []
143
- }
@@ -1,39 +0,0 @@
1
- # Threat Model (auto-generated)
2
-
3
- Generated by agentic-security on 2026-05-31.
4
-
5
- This threat model is derived from static analysis of the current codebase and is regenerated on every scan. It is intended as a working artifact, not a finished compliance document.
6
-
7
- ## Entities + boundaries
8
-
9
- ```mermaid
10
- flowchart TB
11
- subgraph External
12
- end
13
- subgraph Application
14
- end
15
- ```
16
-
17
- ## Assets
18
-
19
-
20
- ## STRIDE threats
21
-
22
- ### Tampering (10)
23
-
24
- - [high] **mass-assignment** (CWE-915) at `parser-cs.js:undefined` — Mass Assignment (req.body Direct to Model)
25
- - [high] **mass-assignment** (CWE-915) at `parser-go.js:undefined` — Mass Assignment (req.body Direct to Model)
26
- - [high] **mass-assignment** (CWE-915) at `parser-kt.js:undefined` — Mass Assignment (req.body Direct to Model)
27
- - [high] **mass-assignment** (CWE-915) at `parser-php.js:undefined` — Mass Assignment (req.body Direct to Model)
28
- - [high] **mass-assignment** (CWE-915) at `parser-rb.js:undefined` — Mass Assignment (req.body Direct to Model)
29
- - [medium] **dos-sync-io** (CWE-400) at `cpp-preprocessor.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
30
- - [medium] **dos-sync-io** (CWE-400) at `type-stubs.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
31
- - [medium] **dos-sync-io** (CWE-400) at `parser-py-cst.js:undefined` — Synchronous Blocking I/O (DoS Risk in Server Context)
32
- - [medium] **toctou-file-existence-permission-check-b** (CWE-367) at `type-stubs.js:48` — TOCTOU: file existence/permission check before open
33
- - [medium] **path-normalization** (CWE-176) at `universal-ir.js:93` — Path Normalization Gap — extension extraction without null-byte/traversal sanitization
34
-
35
- ### Information Disclosure (1)
36
-
37
- - [medium] **crypto-weak-hash** (CWE-327) at `parser-py.helper.py:68` — Weak hash algorithm (MD5 / SHA-1 / MD2 / MD4) used
38
-
39
- ## Attack trees