torusguard 1.3.3 → 1.3.5

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 (322) hide show
  1. package/.torusguard/.manifest.json +66 -63
  2. package/.torusguard/rules/business-logic/TG-BIZ-001-client-controlled-sensitive-business-value.md +30 -14
  3. package/.torusguard/rules/business-logic/TG-BIZ-002-replayable-one-time-operation.md +33 -16
  4. package/.torusguard/rules/business-logic/TG-BIZ-003-missing-workflow-state-validation.md +31 -15
  5. package/.torusguard/rules/business-logic/TG-BIZ-004-unrestricted-sensitive-business-flow.md +26 -16
  6. package/.torusguard/rules/cache/TG-CACHE-001-sensitive-response-publicly-cacheable.md +24 -16
  7. package/.torusguard/rules/cache/TG-CACHE-002-missing-user-cache-isolation.md +32 -18
  8. package/.torusguard/rules/cache/TG-CACHE-003-sensitive-data-in-url.md +24 -17
  9. package/.torusguard/rules/csrf/TG-CSRF-001-missing-csrf-protection.md +31 -18
  10. package/.torusguard/rules/csrf/TG-CSRF-002-unsafe-credentialed-cross-origin-request.md +28 -17
  11. package/.torusguard/rules/graphql/TG-GQL-002-resolver-missing-authorization.md +33 -17
  12. package/.torusguard/rules/graphql/TG-GQL-003-unbounded-graphql-pagination-or-batching.md +31 -16
  13. package/.torusguard/rules/graphql/TG-GQL-004-unnecessary-production-introspection.md +25 -16
  14. package/.torusguard/rules/secrets/TG-SEC-005-secret-in-git-history.md +24 -19
  15. package/.torusguard/rules/secrets/TG-SEC-006-secret-in-build-artifact.md +36 -19
  16. package/.torusguard/rules/secrets/TG-SEC-007-secret-in-test-or-example-fixture.md +21 -16
  17. package/.torusguard/rules/ssrf/TG-SSRF-002-missing-internal-network-protection.md +45 -18
  18. package/.torusguard/rules/ssrf/TG-SSRF-003-unsafe-redirect-following.md +20 -16
  19. package/.torusguard/rules/ssrf/TG-SSRF-004-unbounded-outbound-request.md +28 -19
  20. package/.torusguard/rules/supply-chain/TG-SUPPLY-001-missing-or-ignored-dependency-lockfile.md +25 -18
  21. package/.torusguard/rules/supply-chain/TG-SUPPLY-003-unsafe-ci-cd-secret-exposure.md +29 -19
  22. package/.torusguard/rules/supply-chain/TG-SUPPLY-004-unpinned-ci-action.md +23 -18
  23. package/.torusguard/rules/supply-chain/TG-SUPPLY-005-unsafe-dependency-install-script.md +23 -18
  24. package/.torusguard/rules/webhook/TG-WEBHOOK-001-missing-webhook-signature-verification.md +36 -16
  25. package/.torusguard/rules/webhook/TG-WEBHOOK-002-replayable-webhook.md +26 -17
  26. package/.torusguard/rules/webhook/TG-WEBHOOK-003-missing-webhook-idempotency.md +30 -16
  27. package/.torusguard/rules/webhook/TG-WEBHOOK-004-unvalidated-webhook-event-type.md +25 -16
  28. package/.torusguard/rules/websocket/TG-WS-002-missing-channel-level-authorization.md +28 -17
  29. package/.torusguard/rules/websocket/TG-WS-003-unvalidated-websocket-message.md +31 -17
  30. package/.torusguard/rules/websocket/TG-WS-004-unbounded-websocket-connections.md +31 -17
  31. package/.torusguard/rules_catalog.json +520 -0
  32. package/.torusguard/runs/report-latest.html +93 -7
  33. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/metadata.json +15 -0
  34. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/minimal_patch_plan.md +21 -0
  35. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-115-9a059e/patch.diff +9 -0
  36. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/metadata.json +15 -0
  37. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/minimal_patch_plan.md +21 -0
  38. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-119-61557c/patch.diff +9 -0
  39. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/metadata.json +15 -0
  40. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/minimal_patch_plan.md +21 -0
  41. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-265-996ca3/patch.diff +9 -0
  42. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/metadata.json +15 -0
  43. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/minimal_patch_plan.md +21 -0
  44. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-503-d11cf8/patch.diff +9 -0
  45. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/metadata.json +15 -0
  46. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/minimal_patch_plan.md +21 -0
  47. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-db-004-79-91f41f/patch.diff +9 -0
  48. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/metadata.json +15 -0
  49. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/minimal_patch_plan.md +21 -0
  50. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-107-516a40/patch.diff +9 -0
  51. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/metadata.json +15 -0
  52. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/minimal_patch_plan.md +21 -0
  53. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-128-7809a1/patch.diff +9 -0
  54. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/metadata.json +15 -0
  55. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/minimal_patch_plan.md +21 -0
  56. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-002-256-c8a22e/patch.diff +9 -0
  57. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +15 -0
  58. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  59. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  60. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/metadata.json +15 -0
  61. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/minimal_patch_plan.md +21 -0
  62. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-platform-001-183-47fd5e/patch.diff +9 -0
  63. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/metadata.json +15 -0
  64. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/minimal_patch_plan.md +21 -0
  65. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-209-4f6424/patch.diff +9 -0
  66. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/metadata.json +15 -0
  67. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/minimal_patch_plan.md +21 -0
  68. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-257-89bf34/patch.diff +9 -0
  69. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/metadata.json +15 -0
  70. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/minimal_patch_plan.md +21 -0
  71. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-341-ce228c/patch.diff +9 -0
  72. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/metadata.json +15 -0
  73. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/minimal_patch_plan.md +21 -0
  74. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-355-7b190b/patch.diff +9 -0
  75. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/metadata.json +15 -0
  76. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/minimal_patch_plan.md +21 -0
  77. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-64-5af31a/patch.diff +9 -0
  78. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/metadata.json +15 -0
  79. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/minimal_patch_plan.md +21 -0
  80. package/.torusguard/runs/run-20260910-120238-audit/bundles/bnd-tg-sec-001-9-f51467/patch.diff +9 -0
  81. package/.torusguard/runs/run-20260910-120238-audit/findings.json +1520 -0
  82. package/.torusguard/runs/run-20260910-120238-audit/findings.md +560 -0
  83. package/.torusguard/runs/run-20260910-120238-audit/manifest.json +13 -0
  84. package/.torusguard/runs/run-20260910-120238-audit/recheck.md +86 -0
  85. package/.torusguard/runs/run-20260910-120238-audit/remediation.md +262 -0
  86. package/.torusguard/runs/run-20260910-120238-audit/summary.md +5 -0
  87. package/.torusguard/runs/run-20260910-121238-audit/findings.json +794 -0
  88. package/.torusguard/runs/run-20260910-121238-audit/findings.md +344 -0
  89. package/.torusguard/runs/run-20260910-121238-audit/manifest.json +12 -0
  90. package/.torusguard/runs/run-20260910-121238-audit/summary.md +5 -0
  91. package/.torusguard/runs/run-20260910-130454-audit/findings.json +893 -0
  92. package/.torusguard/runs/run-20260910-130454-audit/findings.md +386 -0
  93. package/.torusguard/runs/run-20260910-130454-audit/manifest.json +12 -0
  94. package/.torusguard/runs/run-20260910-130454-audit/summary.md +5 -0
  95. package/.torusguard/runs/run-20260910-130519-audit/findings.json +563 -0
  96. package/.torusguard/runs/run-20260910-130519-audit/findings.md +246 -0
  97. package/.torusguard/runs/run-20260910-130519-audit/manifest.json +12 -0
  98. package/.torusguard/runs/run-20260910-130519-audit/summary.md +5 -0
  99. package/.torusguard/runs/run-20260912-214110-audit/findings.json +1256 -0
  100. package/.torusguard/runs/run-20260912-214110-audit/findings.md +534 -0
  101. package/.torusguard/runs/run-20260912-214110-audit/manifest.json +12 -0
  102. package/.torusguard/runs/run-20260912-214110-audit/summary.md +5 -0
  103. package/.torusguard/runs/run-20260912-214813-audit/findings.json +992 -0
  104. package/.torusguard/runs/run-20260912-214813-audit/findings.md +422 -0
  105. package/.torusguard/runs/run-20260912-214813-audit/manifest.json +12 -0
  106. package/.torusguard/runs/run-20260912-214813-audit/summary.md +5 -0
  107. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/metadata.json +17 -0
  108. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/minimal_patch_plan.md +21 -0
  109. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-auth-003-49-7c96f3/patch.diff +9 -0
  110. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +17 -0
  111. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  112. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  113. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/metadata.json +17 -0
  114. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/minimal_patch_plan.md +21 -0
  115. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-platform-001-12-cf8156/patch.diff +9 -0
  116. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/metadata.json +17 -0
  117. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/minimal_patch_plan.md +21 -0
  118. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-rate-001-26-affcfa/patch.diff +9 -0
  119. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/metadata.json +17 -0
  120. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/minimal_patch_plan.md +21 -0
  121. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-sec-001-9-e22e50/patch.diff +9 -0
  122. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/metadata.json +17 -0
  123. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/minimal_patch_plan.md +21 -0
  124. package/.torusguard/runs/run-20260912-215555-audit/bundles/bnd-tg-ssrf-004-9-9803ad/patch.diff +9 -0
  125. package/.torusguard/runs/run-20260912-215555-audit/findings.json +530 -0
  126. package/.torusguard/runs/run-20260912-215555-audit/findings.md +232 -0
  127. package/.torusguard/runs/run-20260912-215555-audit/manifest.json +13 -0
  128. package/.torusguard/runs/run-20260912-215555-audit/remediation.md +102 -0
  129. package/.torusguard/runs/run-20260912-215555-audit/summary.md +5 -0
  130. package/.torusguard/runs/run-20260912-215731-audit/apply_plan.md +6 -0
  131. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/metadata.json +17 -0
  132. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/minimal_patch_plan.md +21 -0
  133. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-client-001-7-587129/patch.diff +9 -0
  134. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/metadata.json +17 -0
  135. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/minimal_patch_plan.md +21 -0
  136. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-db-002-9-5f7850/patch.diff +9 -0
  137. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/metadata.json +17 -0
  138. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/minimal_patch_plan.md +22 -0
  139. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-001-27-2486f1/patch.diff +10 -0
  140. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/metadata.json +17 -0
  141. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/minimal_patch_plan.md +21 -0
  142. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-input-003-53-d167b4/patch.diff +9 -0
  143. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/metadata.json +17 -0
  144. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/minimal_patch_plan.md +21 -0
  145. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-001-12-cf8156/patch.diff +9 -0
  146. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/metadata.json +17 -0
  147. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/minimal_patch_plan.md +23 -0
  148. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-17-876973/patch.diff +11 -0
  149. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/metadata.json +17 -0
  150. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/minimal_patch_plan.md +23 -0
  151. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-platform-002-5-40c794/patch.diff +11 -0
  152. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/metadata.json +17 -0
  153. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/minimal_patch_plan.md +21 -0
  154. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-001-26-affcfa/patch.diff +9 -0
  155. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/metadata.json +17 -0
  156. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/minimal_patch_plan.md +21 -0
  157. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-rate-002-54-0b38d2/patch.diff +9 -0
  158. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/metadata.json +17 -0
  159. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/minimal_patch_plan.md +21 -0
  160. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-18-a3c1e8/patch.diff +9 -0
  161. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/metadata.json +17 -0
  162. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/minimal_patch_plan.md +21 -0
  163. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-001-9-e22e50/patch.diff +9 -0
  164. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/metadata.json +17 -0
  165. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/minimal_patch_plan.md +21 -0
  166. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-28-a1a0a1/patch.diff +9 -0
  167. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/metadata.json +17 -0
  168. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/minimal_patch_plan.md +21 -0
  169. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-sec-004-30-00569e/patch.diff +9 -0
  170. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/metadata.json +17 -0
  171. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/minimal_patch_plan.md +21 -0
  172. package/.torusguard/runs/run-20260912-215731-audit/bundles/bnd-tg-ssrf-004-9-9803ad/patch.diff +9 -0
  173. package/.torusguard/runs/run-20260912-215731-audit/diff_summary.md +186 -0
  174. package/.torusguard/runs/run-20260912-215731-audit/findings.json +497 -0
  175. package/.torusguard/runs/run-20260912-215731-audit/findings.md +218 -0
  176. package/.torusguard/runs/run-20260912-215731-audit/manifest.json +14 -0
  177. package/.torusguard/runs/run-20260912-215731-audit/recheck.md +76 -0
  178. package/.torusguard/runs/run-20260912-215731-audit/remediation.md +234 -0
  179. package/.torusguard/runs/run-20260912-215731-audit/summary.md +5 -0
  180. package/.torusguard/runs/run-20260912-220134-audit/findings.json +68 -0
  181. package/.torusguard/runs/run-20260912-220134-audit/findings.md +36 -0
  182. package/.torusguard/runs/run-20260912-220134-audit/manifest.json +12 -0
  183. package/.torusguard/runs/run-20260912-220134-audit/summary.md +5 -0
  184. package/.torusguard/runs/run-20260912-220200-audit/findings.json +1 -0
  185. package/.torusguard/runs/run-20260912-220200-audit/findings.md +8 -0
  186. package/.torusguard/runs/run-20260912-220200-audit/manifest.json +12 -0
  187. package/.torusguard/runs/run-20260912-220200-audit/recheck.md +6 -0
  188. package/.torusguard/runs/run-20260912-220200-audit/summary.md +5 -0
  189. package/.torusguard/runs/run-20260912-220227-audit/findings.json +1 -0
  190. package/.torusguard/runs/run-20260912-220227-audit/findings.md +8 -0
  191. package/.torusguard/runs/run-20260912-220227-audit/manifest.json +12 -0
  192. package/.torusguard/runs/run-20260912-220227-audit/recheck.md +6 -0
  193. package/.torusguard/runs/run-20260912-220227-audit/summary.md +5 -0
  194. package/.torusguard/scripts/__pycache__/audit_runner.cpython-311.pyc +0 -0
  195. package/.torusguard/scripts/__pycache__/diff_guard.cpython-311.pyc +0 -0
  196. package/.torusguard/scripts/__pycache__/finding_scorer.cpython-311.pyc +0 -0
  197. package/.torusguard/scripts/__pycache__/html_reporter.cpython-311.pyc +0 -0
  198. package/.torusguard/scripts/__pycache__/report_sync.cpython-311.pyc +0 -0
  199. package/.torusguard/scripts/__pycache__/rules_sync.cpython-311.pyc +0 -0
  200. package/.torusguard/scripts/__pycache__/stack_detect.cpython-311.pyc +0 -0
  201. package/.torusguard/scripts/__pycache__/term_ui.cpython-311.pyc +0 -0
  202. package/.torusguard/scripts/apply_runner.py +383 -339
  203. package/.torusguard/scripts/audit_runner.py +1306 -550
  204. package/.torusguard/scripts/finding_scorer.py +14 -2
  205. package/.torusguard/scripts/harden_runner.py +628 -375
  206. package/.torusguard/scripts/recheck_runner.py +248 -221
  207. package/.torusguard/scripts/recipes_runner.py +137 -130
  208. package/.torusguard/scripts/report_sync.py +423 -0
  209. package/.torusguard/scripts/sarif_exporter.py +116 -116
  210. package/.torusguard/scripts/term_ui.py +162 -0
  211. package/.torusguard/skills/torusguard/SKILL.md +61 -31
  212. package/.torusguard/skills/torusguard-apply/SKILL.md +80 -46
  213. package/.torusguard/skills/torusguard-audit/SKILL.md +83 -70
  214. package/.torusguard/skills/torusguard-authorize/SKILL.md +5 -4
  215. package/.torusguard/skills/torusguard-exploit-check/SKILL.md +6 -5
  216. package/.torusguard/skills/torusguard-full/SKILL.md +1 -1
  217. package/.torusguard/skills/torusguard-harden/SKILL.md +94 -63
  218. package/.torusguard/skills/torusguard-init/SKILL.md +64 -52
  219. package/.torusguard/skills/torusguard-recheck/SKILL.md +77 -53
  220. package/.torusguard/skills/torusguard-report/SKILL.md +72 -54
  221. package/.torusguard/skills/torusguard-status/SKILL.md +58 -42
  222. package/.torusguard/skills/torusguard-verify/SKILL.md +8 -7
  223. package/.torusguard/skills/torusguard-web-validate/SKILL.md +8 -7
  224. package/.torusguard/snapshots/run-20260912-215731-audit/demo/playground/vulnerable_nextjs/actions.ts.bak +24 -0
  225. package/.torusguard/snapshots/run-20260912-215731-audit/examples/hardened-react-express/server/index.js.bak +121 -0
  226. package/.torusguard/snapshots/run-20260912-215731-audit/examples/python/fastapi-vuln/main.py.bak +20 -0
  227. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/client/src/App.jsx.bak +63 -0
  228. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/client/vite.config.js.bak +12 -0
  229. package/.torusguard/snapshots/run-20260912-215731-audit/examples/vulnerable-react-express/server/index.js.bak +82 -0
  230. package/.torusguard/workflows/apply.md +11 -4
  231. package/.torusguard/workflows/audit.md +7 -1
  232. package/.torusguard/workflows/authorize.md +2 -1
  233. package/.torusguard/workflows/exploit-check.md +2 -1
  234. package/.torusguard/workflows/harden.md +7 -1
  235. package/.torusguard/workflows/init.md +6 -1
  236. package/.torusguard/workflows/memory.md +2 -1
  237. package/.torusguard/workflows/recheck.md +7 -1
  238. package/.torusguard/workflows/report.md +7 -1
  239. package/.torusguard/workflows/status.md +6 -1
  240. package/.torusguard/workflows/verify.md +6 -1
  241. package/.torusguard/workflows/web-validate.md +2 -1
  242. package/README.md +470 -344
  243. package/bin/torusguard.js +209 -97
  244. package/package.json +1 -1
  245. package/skills/torusguard/SKILL.md +73 -42
  246. package/skills/torusguard/payload/.manifest.json +66 -63
  247. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-001-client-controlled-sensitive-business-value.md +30 -14
  248. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-002-replayable-one-time-operation.md +33 -16
  249. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-003-missing-workflow-state-validation.md +31 -15
  250. package/skills/torusguard/payload/rules/business-logic/TG-BIZ-004-unrestricted-sensitive-business-flow.md +26 -16
  251. package/skills/torusguard/payload/rules/cache/TG-CACHE-001-sensitive-response-publicly-cacheable.md +24 -16
  252. package/skills/torusguard/payload/rules/cache/TG-CACHE-002-missing-user-cache-isolation.md +32 -18
  253. package/skills/torusguard/payload/rules/cache/TG-CACHE-003-sensitive-data-in-url.md +24 -17
  254. package/skills/torusguard/payload/rules/csrf/TG-CSRF-001-missing-csrf-protection.md +31 -18
  255. package/skills/torusguard/payload/rules/csrf/TG-CSRF-002-unsafe-credentialed-cross-origin-request.md +28 -17
  256. package/skills/torusguard/payload/rules/graphql/TG-GQL-002-resolver-missing-authorization.md +33 -17
  257. package/skills/torusguard/payload/rules/graphql/TG-GQL-003-unbounded-graphql-pagination-or-batching.md +31 -16
  258. package/skills/torusguard/payload/rules/graphql/TG-GQL-004-unnecessary-production-introspection.md +25 -16
  259. package/skills/torusguard/payload/rules/secrets/TG-SEC-005-secret-in-git-history.md +24 -19
  260. package/skills/torusguard/payload/rules/secrets/TG-SEC-006-secret-in-build-artifact.md +36 -19
  261. package/skills/torusguard/payload/rules/secrets/TG-SEC-007-secret-in-test-or-example-fixture.md +21 -16
  262. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-002-missing-internal-network-protection.md +45 -18
  263. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-003-unsafe-redirect-following.md +20 -16
  264. package/skills/torusguard/payload/rules/ssrf/TG-SSRF-004-unbounded-outbound-request.md +28 -19
  265. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-001-missing-or-ignored-dependency-lockfile.md +25 -18
  266. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-003-unsafe-ci-cd-secret-exposure.md +29 -19
  267. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-004-unpinned-ci-action.md +23 -18
  268. package/skills/torusguard/payload/rules/supply-chain/TG-SUPPLY-005-unsafe-dependency-install-script.md +23 -18
  269. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-001-missing-webhook-signature-verification.md +36 -16
  270. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-002-replayable-webhook.md +26 -17
  271. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-003-missing-webhook-idempotency.md +30 -16
  272. package/skills/torusguard/payload/rules/webhook/TG-WEBHOOK-004-unvalidated-webhook-event-type.md +25 -16
  273. package/skills/torusguard/payload/rules/websocket/TG-WS-002-missing-channel-level-authorization.md +28 -17
  274. package/skills/torusguard/payload/rules/websocket/TG-WS-003-unvalidated-websocket-message.md +31 -17
  275. package/skills/torusguard/payload/rules/websocket/TG-WS-004-unbounded-websocket-connections.md +31 -17
  276. package/skills/torusguard/payload/rules_catalog.json +520 -0
  277. package/skills/torusguard/payload/scripts/apply_runner.py +383 -339
  278. package/skills/torusguard/payload/scripts/audit_runner.py +1306 -550
  279. package/skills/torusguard/payload/scripts/finding_scorer.py +14 -2
  280. package/skills/torusguard/payload/scripts/harden_runner.py +628 -375
  281. package/skills/torusguard/payload/scripts/recheck_runner.py +248 -221
  282. package/skills/torusguard/payload/scripts/recipes_runner.py +137 -130
  283. package/skills/torusguard/payload/scripts/report_sync.py +423 -0
  284. package/skills/torusguard/payload/scripts/sarif_exporter.py +116 -116
  285. package/skills/torusguard/payload/scripts/term_ui.py +162 -0
  286. package/skills/torusguard/payload/skills/torusguard/SKILL.md +75 -42
  287. package/skills/torusguard/payload/skills/torusguard-apply/SKILL.md +63 -25
  288. package/skills/torusguard/payload/skills/torusguard-audit/SKILL.md +62 -45
  289. package/skills/torusguard/payload/skills/torusguard-authorize/SKILL.md +11 -5
  290. package/skills/torusguard/payload/skills/torusguard-exploit-check/SKILL.md +12 -6
  291. package/skills/torusguard/payload/skills/torusguard-full/SKILL.md +7 -2
  292. package/skills/torusguard/payload/skills/torusguard-harden/SKILL.md +71 -36
  293. package/skills/torusguard/payload/skills/torusguard-init/SKILL.md +45 -29
  294. package/skills/torusguard/payload/skills/torusguard-recheck/SKILL.md +59 -31
  295. package/skills/torusguard/payload/skills/torusguard-report/SKILL.md +52 -30
  296. package/skills/torusguard/payload/skills/torusguard-status/SKILL.md +40 -20
  297. package/skills/torusguard/payload/skills/torusguard-verify/SKILL.md +14 -8
  298. package/skills/torusguard/payload/skills/torusguard-web-validate/SKILL.md +14 -8
  299. package/skills/torusguard/payload/workflows/apply.md +11 -4
  300. package/skills/torusguard/payload/workflows/audit.md +7 -1
  301. package/skills/torusguard/payload/workflows/authorize.md +2 -1
  302. package/skills/torusguard/payload/workflows/exploit-check.md +2 -1
  303. package/skills/torusguard/payload/workflows/harden.md +7 -1
  304. package/skills/torusguard/payload/workflows/init.md +6 -1
  305. package/skills/torusguard/payload/workflows/memory.md +2 -1
  306. package/skills/torusguard/payload/workflows/recheck.md +7 -1
  307. package/skills/torusguard/payload/workflows/report.md +7 -1
  308. package/skills/torusguard/payload/workflows/status.md +6 -1
  309. package/skills/torusguard/payload/workflows/verify.md +6 -1
  310. package/skills/torusguard/payload/workflows/web-validate.md +2 -1
  311. package/skills/torusguard-apply/SKILL.md +63 -27
  312. package/skills/torusguard-audit/SKILL.md +62 -50
  313. package/skills/torusguard-authorize/SKILL.md +7 -2
  314. package/skills/torusguard-exploit-check/SKILL.md +7 -2
  315. package/skills/torusguard-full/SKILL.md +7 -2
  316. package/skills/torusguard-harden/SKILL.md +71 -40
  317. package/skills/torusguard-init/SKILL.md +45 -30
  318. package/skills/torusguard-recheck/SKILL.md +59 -32
  319. package/skills/torusguard-report/SKILL.md +52 -31
  320. package/skills/torusguard-status/SKILL.md +40 -21
  321. package/skills/torusguard-verify/SKILL.md +7 -2
  322. package/skills/torusguard-web-validate/SKILL.md +7 -2
@@ -0,0 +1,520 @@
1
+ {
2
+ "TG-AUTH-001": {
3
+ "id": "TG-AUTH-001",
4
+ "title": "Weak Password Storage",
5
+ "severity": "Critical",
6
+ "category": "auth",
7
+ "file": "TG-AUTH-001-weak-password-storage.md"
8
+ },
9
+ "TG-AUTH-002": {
10
+ "id": "TG-AUTH-002",
11
+ "title": "Client-Only Authorization",
12
+ "severity": "High",
13
+ "category": "auth",
14
+ "file": "TG-AUTH-002-client-only-authorization.md"
15
+ },
16
+ "TG-AUTH-003": {
17
+ "id": "TG-AUTH-003",
18
+ "title": "Missing Object-Level Authorization (IDOR)",
19
+ "severity": "High",
20
+ "category": "auth",
21
+ "file": "TG-AUTH-003-missing-object-authorization.md"
22
+ },
23
+ "TG-AUTH-004": {
24
+ "id": "TG-AUTH-004",
25
+ "title": "Insecure Session Cookie Configuration",
26
+ "severity": "High",
27
+ "category": "auth",
28
+ "file": "TG-AUTH-004-insecure-session-cookie.md"
29
+ },
30
+ "TG-AUTH-005": {
31
+ "id": "TG-AUTH-005",
32
+ "title": "Unsafe Password Reset Flow",
33
+ "severity": "High",
34
+ "category": "auth",
35
+ "file": "TG-AUTH-005-unsafe-password-reset.md"
36
+ },
37
+ "TG-CLIENT-001": {
38
+ "id": "TG-CLIENT-001",
39
+ "title": "Public Production Source Maps",
40
+ "severity": "Medium",
41
+ "category": "client",
42
+ "file": "TG-CLIENT-001-public-production-source-maps.md"
43
+ },
44
+ "TG-CLIENT-002": {
45
+ "id": "TG-CLIENT-002",
46
+ "title": "Sensitive Client Bundle Content",
47
+ "severity": "High",
48
+ "category": "client",
49
+ "file": "TG-CLIENT-002-sensitive-client-bundle-content.md"
50
+ },
51
+ "TG-DB-001": {
52
+ "id": "TG-DB-001",
53
+ "title": "Frontend Database Query Logic",
54
+ "severity": "High",
55
+ "category": "db",
56
+ "file": "TG-DB-001-frontend-database-query.md"
57
+ },
58
+ "TG-DB-002": {
59
+ "id": "TG-DB-002",
60
+ "title": "Privileged Database Credential in Browser Context",
61
+ "severity": "Critical",
62
+ "category": "db",
63
+ "file": "TG-DB-002-privileged-database-credential.md"
64
+ },
65
+ "TG-DB-003": {
66
+ "id": "TG-DB-003",
67
+ "title": "Frontend Use of Admin or Server-Only Database SDKs",
68
+ "severity": "Critical",
69
+ "category": "db",
70
+ "file": "TG-DB-003-frontend-admin-sdk.md"
71
+ },
72
+ "TG-DB-004": {
73
+ "id": "TG-DB-004",
74
+ "title": "Missing Tenant Query Isolation in Multi-Tenant Models",
75
+ "severity": "Critical",
76
+ "category": "db",
77
+ "file": "TG-DB-004-missing-tenant-query-isolation.md"
78
+ },
79
+ "TG-DIFF-001": {
80
+ "id": "TG-DIFF-001",
81
+ "title": "Accidental Security Check Bypass in Patch Additions",
82
+ "severity": "Critical",
83
+ "category": "diff",
84
+ "file": "TG-DIFF-001.md"
85
+ },
86
+ "TG-DIFF-002": {
87
+ "id": "TG-DIFF-002",
88
+ "title": "Secret and Token Ingestion in Patch Additions",
89
+ "severity": "Critical",
90
+ "category": "diff",
91
+ "file": "TG-DIFF-002.md"
92
+ },
93
+ "TG-DIFF-003": {
94
+ "id": "TG-DIFF-003",
95
+ "title": "Unintentional Removal of Tenant Filter in Patch Deletions",
96
+ "severity": "High",
97
+ "category": "diff",
98
+ "file": "TG-DIFF-003.md"
99
+ },
100
+ "TG-INPUT-001": {
101
+ "id": "TG-INPUT-001",
102
+ "title": "Missing Server-Side Validation",
103
+ "severity": "High",
104
+ "category": "input",
105
+ "file": "TG-INPUT-001-missing-server-validation.md"
106
+ },
107
+ "TG-INPUT-002": {
108
+ "id": "TG-INPUT-002",
109
+ "title": "Raw SQL Concatenation",
110
+ "severity": "Critical",
111
+ "category": "input",
112
+ "file": "TG-INPUT-002-raw-sql-concatenation.md"
113
+ },
114
+ "TG-INPUT-003": {
115
+ "id": "TG-INPUT-003",
116
+ "title": "Unsafe HTML Rendering or Code Execution",
117
+ "severity": "High",
118
+ "category": "input",
119
+ "file": "TG-INPUT-003-unsafe-html-or-code-execution.md"
120
+ },
121
+ "TG-INPUT-004": {
122
+ "id": "TG-INPUT-004",
123
+ "title": "Unrestricted File Upload",
124
+ "severity": "High",
125
+ "category": "input",
126
+ "file": "TG-INPUT-004-unrestricted-file-upload.md"
127
+ },
128
+ "TG-INPUT-005": {
129
+ "id": "TG-INPUT-005",
130
+ "title": "Unsafe Template Rendering & Disabled Autoescaping",
131
+ "severity": "High",
132
+ "category": "input",
133
+ "file": "TG-INPUT-005-unsafe-template-rendering-and-escaping.md"
134
+ },
135
+ "TG-INPUT-006": {
136
+ "id": "TG-INPUT-006",
137
+ "title": "Path Traversal and Unsafe Upload Storage",
138
+ "severity": "Critical",
139
+ "category": "input",
140
+ "file": "TG-INPUT-006-unsafe-file-path-traversal.md"
141
+ },
142
+ "TG-PLATFORM-001": {
143
+ "id": "TG-PLATFORM-001",
144
+ "title": "Wildcard CORS With Credentials",
145
+ "severity": "High",
146
+ "category": "platform",
147
+ "file": "TG-PLATFORM-001-wildcard-cors-with-credentials.md"
148
+ },
149
+ "TG-PLATFORM-002": {
150
+ "id": "TG-PLATFORM-002",
151
+ "title": "Missing Security Headers",
152
+ "severity": "Medium",
153
+ "category": "platform",
154
+ "file": "TG-PLATFORM-002-missing-security-headers.md"
155
+ },
156
+ "TG-PLATFORM-003": {
157
+ "id": "TG-PLATFORM-003",
158
+ "title": "Production Stack Trace Exposure",
159
+ "severity": "Medium",
160
+ "category": "platform",
161
+ "file": "TG-PLATFORM-003-production-stack-trace-exposure.md"
162
+ },
163
+ "TG-PLATFORM-004": {
164
+ "id": "TG-PLATFORM-004",
165
+ "title": "Missing Request Size Limits",
166
+ "severity": "Medium",
167
+ "category": "platform",
168
+ "file": "TG-PLATFORM-004-missing-request-size-limits.md"
169
+ },
170
+ "TG-RATE-001": {
171
+ "id": "TG-RATE-001",
172
+ "title": "Unlimited Authentication Endpoint",
173
+ "severity": "High",
174
+ "category": "rate",
175
+ "file": "TG-RATE-001-unlimited-auth-endpoint.md"
176
+ },
177
+ "TG-RATE-002": {
178
+ "id": "TG-RATE-002",
179
+ "title": "Unlimited Public Write Endpoint",
180
+ "severity": "Medium",
181
+ "category": "rate",
182
+ "file": "TG-RATE-002-unlimited-public-write-endpoint.md"
183
+ },
184
+ "TG-RATE-003": {
185
+ "id": "TG-RATE-003",
186
+ "title": "Unbounded Resource Consumption",
187
+ "severity": "High",
188
+ "category": "rate",
189
+ "file": "TG-RATE-003-unbounded-resource-consumption.md"
190
+ },
191
+ "TG-SEC-001": {
192
+ "id": "TG-SEC-001",
193
+ "title": "Hardcoded Secrets in Tracked Source",
194
+ "severity": "Critical",
195
+ "category": "sec",
196
+ "file": "TG-SEC-001-hardcoded-secrets.md"
197
+ },
198
+ "TG-SEC-002": {
199
+ "id": "TG-SEC-002",
200
+ "title": "Secrets in Public Environment Variables",
201
+ "severity": "Critical",
202
+ "category": "sec",
203
+ "file": "TG-SEC-002-public-environment-secrets.md"
204
+ },
205
+ "TG-SEC-003": {
206
+ "id": "TG-SEC-003",
207
+ "title": "Tracked Environment File",
208
+ "severity": "High",
209
+ "category": "sec",
210
+ "file": "TG-SEC-003-tracked-env-file.md"
211
+ },
212
+ "TG-SEC-004": {
213
+ "id": "TG-SEC-004",
214
+ "title": "Sensitive Information in Logs",
215
+ "severity": "Medium",
216
+ "category": "sec",
217
+ "file": "TG-SEC-004-sensitive-logging.md"
218
+ },
219
+ "TG-AGENT-001": {
220
+ "id": "TG-AGENT-001",
221
+ "title": "Prompt Injection in System Context Files",
222
+ "severity": "Critical",
223
+ "category": "agent",
224
+ "file": "TG-AGENT-001-prompt-injection-system-context.md"
225
+ },
226
+ "TG-AGENT-002": {
227
+ "id": "TG-AGENT-002",
228
+ "title": "Unsafe Tool Dispatch & Shell Execution without Sandboxing",
229
+ "severity": "Critical",
230
+ "category": "agent",
231
+ "file": "TG-AGENT-002-unsafe-tool-dispatch-unsandboxed-execution.md"
232
+ },
233
+ "TG-AGENT-003": {
234
+ "id": "TG-AGENT-003",
235
+ "title": "Overly Broad MCP Tool Scoping & Credential Access",
236
+ "severity": "High",
237
+ "category": "agent",
238
+ "file": "TG-AGENT-003-broad-mcp-tool-scoping.md"
239
+ },
240
+ "TG-AGENT-004": {
241
+ "id": "TG-AGENT-004",
242
+ "title": "Persistent Memory & Cross-Session Information Leakage",
243
+ "severity": "High",
244
+ "category": "agent",
245
+ "file": "TG-AGENT-004-persistent-memory-cross-session-leakage.md"
246
+ },
247
+ "TG-AUTH-006": {
248
+ "id": "TG-AUTH-006",
249
+ "title": "Mass Assignment & Privilege Escalation via Payloads",
250
+ "severity": "Critical",
251
+ "category": "auth",
252
+ "file": "TG-AUTH-006-mass-assignment.md"
253
+ },
254
+ "TG-AUTH-007": {
255
+ "id": "TG-AUTH-007",
256
+ "title": "Missing Object-Level and Property-Level Authorization (IDOR)",
257
+ "severity": "Critical",
258
+ "category": "auth",
259
+ "file": "TG-AUTH-007-missing-property-level-authorization.md"
260
+ },
261
+ "TG-AUTH-008": {
262
+ "id": "TG-AUTH-008",
263
+ "title": "Untrusted Role or Tenant Header Injection",
264
+ "severity": "Critical",
265
+ "category": "auth",
266
+ "file": "TG-AUTH-008-untrusted-role-header-injection.md"
267
+ },
268
+ "TG-BIZ-001": {
269
+ "id": "TG-BIZ-001",
270
+ "title": "Client-Controlled Sensitive Business Value",
271
+ "severity": "Critical",
272
+ "category": "biz",
273
+ "file": "TG-BIZ-001-client-controlled-sensitive-business-value.md"
274
+ },
275
+ "TG-BIZ-002": {
276
+ "id": "TG-BIZ-002",
277
+ "title": "Replayable One-Time Operation",
278
+ "severity": "Critical",
279
+ "category": "biz",
280
+ "file": "TG-BIZ-002-replayable-one-time-operation.md"
281
+ },
282
+ "TG-BIZ-003": {
283
+ "id": "TG-BIZ-003",
284
+ "title": "Missing Workflow-State Validation",
285
+ "severity": "Critical",
286
+ "category": "biz",
287
+ "file": "TG-BIZ-003-missing-workflow-state-validation.md"
288
+ },
289
+ "TG-BIZ-004": {
290
+ "id": "TG-BIZ-004",
291
+ "title": "Unrestricted Sensitive Business Flow",
292
+ "severity": "Critical",
293
+ "category": "biz",
294
+ "file": "TG-BIZ-004-unrestricted-sensitive-business-flow.md"
295
+ },
296
+ "TG-CACHE-001": {
297
+ "id": "TG-CACHE-001",
298
+ "title": "Sensitive Response Publicly Cacheable",
299
+ "severity": "Critical",
300
+ "category": "cache",
301
+ "file": "TG-CACHE-001-sensitive-response-publicly-cacheable.md"
302
+ },
303
+ "TG-CACHE-002": {
304
+ "id": "TG-CACHE-002",
305
+ "title": "Missing User Cache Isolation",
306
+ "severity": "Critical",
307
+ "category": "cache",
308
+ "file": "TG-CACHE-002-missing-user-cache-isolation.md"
309
+ },
310
+ "TG-CACHE-003": {
311
+ "id": "TG-CACHE-003",
312
+ "title": "Sensitive Data in URL",
313
+ "severity": "Critical",
314
+ "category": "cache",
315
+ "file": "TG-CACHE-003-sensitive-data-in-url.md"
316
+ },
317
+ "TG-CSRF-001": {
318
+ "id": "TG-CSRF-001",
319
+ "title": "Missing CSRF Protection",
320
+ "severity": "Critical",
321
+ "category": "csrf",
322
+ "file": "TG-CSRF-001-missing-csrf-protection.md"
323
+ },
324
+ "TG-CSRF-002": {
325
+ "id": "TG-CSRF-002",
326
+ "title": "Unsafe Credentialed Cross-Origin Request",
327
+ "severity": "Critical",
328
+ "category": "csrf",
329
+ "file": "TG-CSRF-002-unsafe-credentialed-cross-origin-request.md"
330
+ },
331
+ "TG-EDGE-001": {
332
+ "id": "TG-EDGE-001",
333
+ "title": "Serverless & Edge Global State Memory Leakage",
334
+ "severity": "High",
335
+ "category": "edge",
336
+ "file": "TG-EDGE-001-serverless-global-state-leak.md"
337
+ },
338
+ "TG-EDGE-003": {
339
+ "id": "TG-EDGE-003",
340
+ "title": "AWS Lambda Ephemeral Execution & Cold Start Security",
341
+ "severity": "High",
342
+ "category": "edge",
343
+ "file": "TG-EDGE-003-aws-lambda-ephemeral-cold-start.md"
344
+ },
345
+ "TG-GQL-001": {
346
+ "id": "TG-GQL-001",
347
+ "title": "Missing Query Depth or Complexity Limits",
348
+ "severity": "High",
349
+ "category": "gql",
350
+ "file": "TG-GQL-001-missing-query-depth-or-complexity-limits.md"
351
+ },
352
+ "TG-GQL-002": {
353
+ "id": "TG-GQL-002",
354
+ "title": "Resolver Missing Authorization",
355
+ "severity": "Critical",
356
+ "category": "gql",
357
+ "file": "TG-GQL-002-resolver-missing-authorization.md"
358
+ },
359
+ "TG-GQL-003": {
360
+ "id": "TG-GQL-003",
361
+ "title": "Unbounded GraphQL Pagination or Batching",
362
+ "severity": "Critical",
363
+ "category": "gql",
364
+ "file": "TG-GQL-003-unbounded-graphql-pagination-or-batching.md"
365
+ },
366
+ "TG-GQL-004": {
367
+ "id": "TG-GQL-004",
368
+ "title": "Unnecessary Production Introspection",
369
+ "severity": "Critical",
370
+ "category": "gql",
371
+ "file": "TG-GQL-004-unnecessary-production-introspection.md"
372
+ },
373
+ "TG-SEC-005": {
374
+ "id": "TG-SEC-005",
375
+ "title": "Secret in Git History",
376
+ "severity": "Critical",
377
+ "category": "sec",
378
+ "file": "TG-SEC-005-secret-in-git-history.md"
379
+ },
380
+ "TG-SEC-006": {
381
+ "id": "TG-SEC-006",
382
+ "title": "Secret in Build Artifact",
383
+ "severity": "Critical",
384
+ "category": "sec",
385
+ "file": "TG-SEC-006-secret-in-build-artifact.md"
386
+ },
387
+ "TG-SEC-007": {
388
+ "id": "TG-SEC-007",
389
+ "title": "Secret in Test or Example Fixture",
390
+ "severity": "Critical",
391
+ "category": "sec",
392
+ "file": "TG-SEC-007-secret-in-test-or-example-fixture.md"
393
+ },
394
+ "TG-SSRF-001": {
395
+ "id": "TG-SSRF-001",
396
+ "title": "User-Controlled Server-Side URL Fetch",
397
+ "severity": "Critical",
398
+ "category": "ssrf",
399
+ "file": "TG-SSRF-001-user-controlled-server-side-url-fetch.md"
400
+ },
401
+ "TG-SSRF-002": {
402
+ "id": "TG-SSRF-002",
403
+ "title": "Missing Internal Network Protection",
404
+ "severity": "Critical",
405
+ "category": "ssrf",
406
+ "file": "TG-SSRF-002-missing-internal-network-protection.md"
407
+ },
408
+ "TG-SSRF-003": {
409
+ "id": "TG-SSRF-003",
410
+ "title": "Unsafe Redirect Following",
411
+ "severity": "Critical",
412
+ "category": "ssrf",
413
+ "file": "TG-SSRF-003-unsafe-redirect-following.md"
414
+ },
415
+ "TG-SSRF-004": {
416
+ "id": "TG-SSRF-004",
417
+ "title": "Unbounded Outbound Request",
418
+ "severity": "Critical",
419
+ "category": "ssrf",
420
+ "file": "TG-SSRF-004-unbounded-outbound-request.md"
421
+ },
422
+ "TG-SUPPLY-001": {
423
+ "id": "TG-SUPPLY-001",
424
+ "title": "Missing or Ignored Dependency Lockfile",
425
+ "severity": "Critical",
426
+ "category": "supply",
427
+ "file": "TG-SUPPLY-001-missing-or-ignored-dependency-lockfile.md"
428
+ },
429
+ "TG-SUPPLY-002": {
430
+ "id": "TG-SUPPLY-002",
431
+ "title": "Vulnerable Dependency Review Missing",
432
+ "severity": "Critical",
433
+ "category": "supply",
434
+ "file": "TG-SUPPLY-002-vulnerable-dependency-review-missing.md"
435
+ },
436
+ "TG-SUPPLY-003": {
437
+ "id": "TG-SUPPLY-003",
438
+ "title": "Unsafe CI/CD Secret Exposure",
439
+ "severity": "Critical",
440
+ "category": "supply",
441
+ "file": "TG-SUPPLY-003-unsafe-ci-cd-secret-exposure.md"
442
+ },
443
+ "TG-SUPPLY-004": {
444
+ "id": "TG-SUPPLY-004",
445
+ "title": "Unpinned CI Action",
446
+ "severity": "Critical",
447
+ "category": "supply",
448
+ "file": "TG-SUPPLY-004-unpinned-ci-action.md"
449
+ },
450
+ "TG-SUPPLY-005": {
451
+ "id": "TG-SUPPLY-005",
452
+ "title": "Unsafe Dependency Install Script",
453
+ "severity": "Critical",
454
+ "category": "supply",
455
+ "file": "TG-SUPPLY-005-unsafe-dependency-install-script.md"
456
+ },
457
+ "TG-SUPPLY-006": {
458
+ "id": "TG-SUPPLY-006",
459
+ "title": "Container Build Secret Persistence",
460
+ "severity": "High",
461
+ "category": "supply",
462
+ "file": "TG-SUPPLY-006-container-build-secret-persistence.md"
463
+ },
464
+ "TG-WEBHOOK-001": {
465
+ "id": "TG-WEBHOOK-001",
466
+ "title": "Missing Webhook Signature Verification",
467
+ "severity": "Critical",
468
+ "category": "webhook",
469
+ "file": "TG-WEBHOOK-001-missing-webhook-signature-verification.md"
470
+ },
471
+ "TG-WEBHOOK-002": {
472
+ "id": "TG-WEBHOOK-002",
473
+ "title": "Replayable Webhook",
474
+ "severity": "Critical",
475
+ "category": "webhook",
476
+ "file": "TG-WEBHOOK-002-replayable-webhook.md"
477
+ },
478
+ "TG-WEBHOOK-003": {
479
+ "id": "TG-WEBHOOK-003",
480
+ "title": "Missing Webhook Idempotency",
481
+ "severity": "Critical",
482
+ "category": "webhook",
483
+ "file": "TG-WEBHOOK-003-missing-webhook-idempotency.md"
484
+ },
485
+ "TG-WEBHOOK-004": {
486
+ "id": "TG-WEBHOOK-004",
487
+ "title": "Unvalidated Webhook Event Type",
488
+ "severity": "Critical",
489
+ "category": "webhook",
490
+ "file": "TG-WEBHOOK-004-unvalidated-webhook-event-type.md"
491
+ },
492
+ "TG-WS-001": {
493
+ "id": "TG-WS-001",
494
+ "title": "Unauthenticated WebSocket Handshake",
495
+ "severity": "High",
496
+ "category": "ws",
497
+ "file": "TG-WS-001-unauthenticated-websocket-handshake.md"
498
+ },
499
+ "TG-WS-002": {
500
+ "id": "TG-WS-002",
501
+ "title": "Missing Channel-Level Authorization",
502
+ "severity": "Critical",
503
+ "category": "ws",
504
+ "file": "TG-WS-002-missing-channel-level-authorization.md"
505
+ },
506
+ "TG-WS-003": {
507
+ "id": "TG-WS-003",
508
+ "title": "Unvalidated WebSocket Message",
509
+ "severity": "Critical",
510
+ "category": "ws",
511
+ "file": "TG-WS-003-unvalidated-websocket-message.md"
512
+ },
513
+ "TG-WS-004": {
514
+ "id": "TG-WS-004",
515
+ "title": "Unbounded WebSocket Connections",
516
+ "severity": "Critical",
517
+ "category": "ws",
518
+ "file": "TG-WS-004-unbounded-websocket-connections.md"
519
+ }
520
+ }