circle-ir 4.9.19 → 4.9.21

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 (251) hide show
  1. package/dist/analysis/config-loader.d.ts.map +1 -1
  2. package/dist/analysis/config-loader.js +56 -7
  3. package/dist/analysis/config-loader.js.map +1 -1
  4. package/dist/analysis/constant-propagation/evaluator.d.ts.map +1 -1
  5. package/dist/analysis/constant-propagation/evaluator.js.map +1 -1
  6. package/dist/analysis/constant-propagation/index.js.map +1 -1
  7. package/dist/analysis/constant-propagation/propagator.d.ts.map +1 -1
  8. package/dist/analysis/constant-propagation/propagator.js +3 -1
  9. package/dist/analysis/constant-propagation/propagator.js.map +1 -1
  10. package/dist/analysis/dfg-verifier.d.ts.map +1 -1
  11. package/dist/analysis/dfg-verifier.js.map +1 -1
  12. package/dist/analysis/dfg-walk.js.map +1 -1
  13. package/dist/analysis/findings.d.ts +1 -1
  14. package/dist/analysis/findings.d.ts.map +1 -1
  15. package/dist/analysis/findings.js +27 -1
  16. package/dist/analysis/findings.js.map +1 -1
  17. package/dist/analysis/interprocedural.js.map +1 -1
  18. package/dist/analysis/metrics/metric-runner.d.ts.map +1 -1
  19. package/dist/analysis/metrics/passes/cohesion-metrics-pass.d.ts.map +1 -1
  20. package/dist/analysis/metrics/passes/complexity-metrics-pass.d.ts.map +1 -1
  21. package/dist/analysis/metrics/passes/composite-metrics-pass.d.ts.map +1 -1
  22. package/dist/analysis/metrics/passes/coupling-metrics-pass.d.ts.map +1 -1
  23. package/dist/analysis/metrics/passes/data-flow-metrics-pass.d.ts.map +1 -1
  24. package/dist/analysis/metrics/passes/documentation-metrics-pass.d.ts.map +1 -1
  25. package/dist/analysis/metrics/passes/halstead-metrics-pass.d.ts.map +1 -1
  26. package/dist/analysis/metrics/passes/inheritance-metrics-pass.d.ts.map +1 -1
  27. package/dist/analysis/metrics/passes/size-metrics-pass.d.ts.map +1 -1
  28. package/dist/analysis/passes/blocking-main-thread-pass.d.ts +1 -1
  29. package/dist/analysis/passes/blocking-main-thread-pass.d.ts.map +1 -1
  30. package/dist/analysis/passes/broad-catch-pass.d.ts +1 -1
  31. package/dist/analysis/passes/broad-catch-pass.d.ts.map +1 -1
  32. package/dist/analysis/passes/cache-no-vary-pass.d.ts +1 -1
  33. package/dist/analysis/passes/cache-no-vary-pass.d.ts.map +1 -1
  34. package/dist/analysis/passes/circular-dependency-pass.d.ts.map +1 -1
  35. package/dist/analysis/passes/cleanup-verify-pass.d.ts +1 -1
  36. package/dist/analysis/passes/cleanup-verify-pass.d.ts.map +1 -1
  37. package/dist/analysis/passes/cleartext-credential-transport-pass.d.ts +1 -1
  38. package/dist/analysis/passes/cleartext-credential-transport-pass.d.ts.map +1 -1
  39. package/dist/analysis/passes/cli-main-reflection-suppress-pass.d.ts +1 -1
  40. package/dist/analysis/passes/cli-main-reflection-suppress-pass.d.ts.map +1 -1
  41. package/dist/analysis/passes/constant-propagation-pass.d.ts +1 -1
  42. package/dist/analysis/passes/constant-propagation-pass.d.ts.map +1 -1
  43. package/dist/analysis/passes/constant-propagation-pass.js.map +1 -1
  44. package/dist/analysis/passes/cross-file-pass.d.ts.map +1 -1
  45. package/dist/analysis/passes/cross-file-pass.js +1 -1
  46. package/dist/analysis/passes/cross-file-pass.js.map +1 -1
  47. package/dist/analysis/passes/csrf-protection-disabled-pass.d.ts +1 -1
  48. package/dist/analysis/passes/csrf-protection-disabled-pass.d.ts.map +1 -1
  49. package/dist/analysis/passes/dead-code-pass.d.ts +1 -1
  50. package/dist/analysis/passes/dead-code-pass.d.ts.map +1 -1
  51. package/dist/analysis/passes/deep-inheritance-pass.d.ts +1 -1
  52. package/dist/analysis/passes/deep-inheritance-pass.d.ts.map +1 -1
  53. package/dist/analysis/passes/dependency-fan-out-pass.d.ts +1 -1
  54. package/dist/analysis/passes/dependency-fan-out-pass.d.ts.map +1 -1
  55. package/dist/analysis/passes/deserialization-safety-gate-pass.d.ts +1 -1
  56. package/dist/analysis/passes/deserialization-safety-gate-pass.d.ts.map +1 -1
  57. package/dist/analysis/passes/deserialization-safety-gate-pass.js.map +1 -1
  58. package/dist/analysis/passes/double-close-pass.d.ts +1 -1
  59. package/dist/analysis/passes/double-close-pass.d.ts.map +1 -1
  60. package/dist/analysis/passes/excessive-allocation-pass.d.ts +1 -1
  61. package/dist/analysis/passes/excessive-allocation-pass.d.ts.map +1 -1
  62. package/dist/analysis/passes/feature-envy-pass.d.ts +1 -1
  63. package/dist/analysis/passes/feature-envy-pass.d.ts.map +1 -1
  64. package/dist/analysis/passes/god-class-pass.d.ts +1 -1
  65. package/dist/analysis/passes/god-class-pass.d.ts.map +1 -1
  66. package/dist/analysis/passes/infinite-loop-pass.d.ts +1 -1
  67. package/dist/analysis/passes/infinite-loop-pass.d.ts.map +1 -1
  68. package/dist/analysis/passes/info-disclosure-stacktrace-pass.d.ts +1 -1
  69. package/dist/analysis/passes/info-disclosure-stacktrace-pass.d.ts.map +1 -1
  70. package/dist/analysis/passes/insecure-cookie-pass.d.ts +1 -1
  71. package/dist/analysis/passes/insecure-cookie-pass.d.ts.map +1 -1
  72. package/dist/analysis/passes/insecure-deserialization-config-pass.d.ts +1 -1
  73. package/dist/analysis/passes/insecure-deserialization-config-pass.d.ts.map +1 -1
  74. package/dist/analysis/passes/interprocedural-pass.d.ts +1 -1
  75. package/dist/analysis/passes/interprocedural-pass.d.ts.map +1 -1
  76. package/dist/analysis/passes/jwt-verify-disabled-pass.d.ts +1 -1
  77. package/dist/analysis/passes/jwt-verify-disabled-pass.d.ts.map +1 -1
  78. package/dist/analysis/passes/language-sources-pass.d.ts +10 -10
  79. package/dist/analysis/passes/language-sources-pass.d.ts.map +1 -1
  80. package/dist/analysis/passes/language-sources-pass.js +3 -8
  81. package/dist/analysis/passes/language-sources-pass.js.map +1 -1
  82. package/dist/analysis/passes/leaked-global-pass.d.ts +1 -1
  83. package/dist/analysis/passes/leaked-global-pass.d.ts.map +1 -1
  84. package/dist/analysis/passes/library-profile-sink-gate-pass.d.ts +2 -2
  85. package/dist/analysis/passes/library-profile-sink-gate-pass.d.ts.map +1 -1
  86. package/dist/analysis/passes/library-profile-source-gate-pass.d.ts +1 -1
  87. package/dist/analysis/passes/library-profile-source-gate-pass.d.ts.map +1 -1
  88. package/dist/analysis/passes/library-profile-xss-gate-pass.d.ts +1 -1
  89. package/dist/analysis/passes/library-profile-xss-gate-pass.d.ts.map +1 -1
  90. package/dist/analysis/passes/mass-assignment-pass.d.ts +1 -1
  91. package/dist/analysis/passes/mass-assignment-pass.d.ts.map +1 -1
  92. package/dist/analysis/passes/missing-await-pass.d.ts +1 -1
  93. package/dist/analysis/passes/missing-await-pass.d.ts.map +1 -1
  94. package/dist/analysis/passes/missing-guard-dom-pass.d.ts +1 -1
  95. package/dist/analysis/passes/missing-guard-dom-pass.d.ts.map +1 -1
  96. package/dist/analysis/passes/missing-override-pass.d.ts +1 -1
  97. package/dist/analysis/passes/missing-override-pass.d.ts.map +1 -1
  98. package/dist/analysis/passes/missing-public-doc-pass.d.ts +1 -1
  99. package/dist/analysis/passes/missing-public-doc-pass.d.ts.map +1 -1
  100. package/dist/analysis/passes/missing-sanitizer-gate-pass.d.ts +1 -1
  101. package/dist/analysis/passes/missing-sanitizer-gate-pass.d.ts.map +1 -1
  102. package/dist/analysis/passes/missing-stream-pass.d.ts +1 -1
  103. package/dist/analysis/passes/missing-stream-pass.d.ts.map +1 -1
  104. package/dist/analysis/passes/module-side-effect-pass.d.ts +1 -1
  105. package/dist/analysis/passes/module-side-effect-pass.d.ts.map +1 -1
  106. package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.d.ts +1 -1
  107. package/dist/analysis/passes/mybatis-annotation-sql-sink-pass.d.ts.map +1 -1
  108. package/dist/analysis/passes/n-plus-one-pass.d.ts +1 -1
  109. package/dist/analysis/passes/n-plus-one-pass.d.ts.map +1 -1
  110. package/dist/analysis/passes/naming-convention-pass.d.ts +1 -1
  111. package/dist/analysis/passes/naming-convention-pass.d.ts.map +1 -1
  112. package/dist/analysis/passes/naming-convention-pass.js.map +1 -1
  113. package/dist/analysis/passes/null-deref-pass.d.ts +1 -1
  114. package/dist/analysis/passes/null-deref-pass.d.ts.map +1 -1
  115. package/dist/analysis/passes/orphan-module-pass.d.ts.map +1 -1
  116. package/dist/analysis/passes/plaintext-password-storage-pass.d.ts +1 -1
  117. package/dist/analysis/passes/plaintext-password-storage-pass.d.ts.map +1 -1
  118. package/dist/analysis/passes/prompt-injection-safety-gate-pass.d.ts +1 -1
  119. package/dist/analysis/passes/prompt-injection-safety-gate-pass.d.ts.map +1 -1
  120. package/dist/analysis/passes/python-receiver-taint-format-pass.d.ts +1 -1
  121. package/dist/analysis/passes/python-receiver-taint-format-pass.d.ts.map +1 -1
  122. package/dist/analysis/passes/react-inline-jsx-pass.d.ts +1 -1
  123. package/dist/analysis/passes/react-inline-jsx-pass.d.ts.map +1 -1
  124. package/dist/analysis/passes/redundant-loop-pass.d.ts +1 -1
  125. package/dist/analysis/passes/redundant-loop-pass.d.ts.map +1 -1
  126. package/dist/analysis/passes/resource-leak-pass.d.ts +1 -1
  127. package/dist/analysis/passes/resource-leak-pass.d.ts.map +1 -1
  128. package/dist/analysis/passes/scan-secrets-pass.d.ts +1 -1
  129. package/dist/analysis/passes/scan-secrets-pass.d.ts.map +1 -1
  130. package/dist/analysis/passes/security-headers-pass.d.ts +1 -1
  131. package/dist/analysis/passes/security-headers-pass.d.ts.map +1 -1
  132. package/dist/analysis/passes/security-headers-pass.js.map +1 -1
  133. package/dist/analysis/passes/serial-await-pass.d.ts +1 -1
  134. package/dist/analysis/passes/serial-await-pass.d.ts.map +1 -1
  135. package/dist/analysis/passes/sink-filter-pass.d.ts +1 -1
  136. package/dist/analysis/passes/sink-filter-pass.d.ts.map +1 -1
  137. package/dist/analysis/passes/sink-filter-pass.js +1 -1
  138. package/dist/analysis/passes/sink-filter-pass.js.map +1 -1
  139. package/dist/analysis/passes/sink-semantics-pass.d.ts +1 -1
  140. package/dist/analysis/passes/sink-semantics-pass.d.ts.map +1 -1
  141. package/dist/analysis/passes/source-semantics-pass.d.ts +1 -1
  142. package/dist/analysis/passes/source-semantics-pass.d.ts.map +1 -1
  143. package/dist/analysis/passes/speculative-prompt-param-source-pass.d.ts +1 -1
  144. package/dist/analysis/passes/speculative-prompt-param-source-pass.d.ts.map +1 -1
  145. package/dist/analysis/passes/speculative-prompt-param-source-pass.js.map +1 -1
  146. package/dist/analysis/passes/spring4shell-pass.d.ts +1 -1
  147. package/dist/analysis/passes/spring4shell-pass.d.ts.map +1 -1
  148. package/dist/analysis/passes/stale-doc-ref-pass.d.ts +1 -1
  149. package/dist/analysis/passes/stale-doc-ref-pass.d.ts.map +1 -1
  150. package/dist/analysis/passes/string-concat-loop-pass.d.ts +1 -1
  151. package/dist/analysis/passes/string-concat-loop-pass.d.ts.map +1 -1
  152. package/dist/analysis/passes/swallowed-exception-pass.d.ts +1 -1
  153. package/dist/analysis/passes/swallowed-exception-pass.d.ts.map +1 -1
  154. package/dist/analysis/passes/sync-io-async-pass.d.ts +1 -1
  155. package/dist/analysis/passes/sync-io-async-pass.d.ts.map +1 -1
  156. package/dist/analysis/passes/taint-matcher-pass.d.ts +1 -1
  157. package/dist/analysis/passes/taint-matcher-pass.d.ts.map +1 -1
  158. package/dist/analysis/passes/taint-propagation-pass.d.ts +1 -1
  159. package/dist/analysis/passes/taint-propagation-pass.d.ts.map +1 -1
  160. package/dist/analysis/passes/tls-verify-disabled-pass.d.ts +1 -1
  161. package/dist/analysis/passes/tls-verify-disabled-pass.d.ts.map +1 -1
  162. package/dist/analysis/passes/todo-in-prod-pass.d.ts +1 -1
  163. package/dist/analysis/passes/todo-in-prod-pass.d.ts.map +1 -1
  164. package/dist/analysis/passes/unbounded-collection-pass.d.ts +1 -1
  165. package/dist/analysis/passes/unbounded-collection-pass.d.ts.map +1 -1
  166. package/dist/analysis/passes/unchecked-return-pass.d.ts +1 -1
  167. package/dist/analysis/passes/unchecked-return-pass.d.ts.map +1 -1
  168. package/dist/analysis/passes/unhandled-exception-pass.d.ts +1 -1
  169. package/dist/analysis/passes/unhandled-exception-pass.d.ts.map +1 -1
  170. package/dist/analysis/passes/unhandled-exception-pass.js +4 -20
  171. package/dist/analysis/passes/unhandled-exception-pass.js.map +1 -1
  172. package/dist/analysis/passes/unrestricted-file-upload-pass.d.ts +1 -1
  173. package/dist/analysis/passes/unrestricted-file-upload-pass.d.ts.map +1 -1
  174. package/dist/analysis/passes/unused-interface-method-pass.d.ts +1 -1
  175. package/dist/analysis/passes/unused-interface-method-pass.d.ts.map +1 -1
  176. package/dist/analysis/passes/unused-variable-pass.d.ts +1 -1
  177. package/dist/analysis/passes/unused-variable-pass.d.ts.map +1 -1
  178. package/dist/analysis/passes/use-after-close-pass.d.ts +1 -1
  179. package/dist/analysis/passes/use-after-close-pass.d.ts.map +1 -1
  180. package/dist/analysis/passes/variable-shadowing-pass.d.ts +1 -1
  181. package/dist/analysis/passes/variable-shadowing-pass.d.ts.map +1 -1
  182. package/dist/analysis/passes/weak-crypto-pass.d.ts +1 -1
  183. package/dist/analysis/passes/weak-crypto-pass.d.ts.map +1 -1
  184. package/dist/analysis/passes/weak-hash-pass.d.ts +1 -1
  185. package/dist/analysis/passes/weak-hash-pass.d.ts.map +1 -1
  186. package/dist/analysis/passes/weak-password-encoding-pass.d.ts +1 -1
  187. package/dist/analysis/passes/weak-password-encoding-pass.d.ts.map +1 -1
  188. package/dist/analysis/passes/weak-password-hash-pass.d.ts +1 -1
  189. package/dist/analysis/passes/weak-password-hash-pass.d.ts.map +1 -1
  190. package/dist/analysis/passes/weak-random-pass.d.ts +1 -1
  191. package/dist/analysis/passes/weak-random-pass.d.ts.map +1 -1
  192. package/dist/analysis/passes/xml-entity-expansion-pass.d.ts +1 -1
  193. package/dist/analysis/passes/xml-entity-expansion-pass.d.ts.map +1 -1
  194. package/dist/analysis/path-finder.d.ts.map +1 -1
  195. package/dist/analysis/path-finder.js.map +1 -1
  196. package/dist/analysis/project-profile-transform.js.map +1 -1
  197. package/dist/analysis/require-entry-path.js.map +1 -1
  198. package/dist/analysis/sbom.js.map +1 -1
  199. package/dist/analysis/taint-matcher.js.map +1 -1
  200. package/dist/analyzer.d.ts.map +1 -1
  201. package/dist/analyzer.js +4 -0
  202. package/dist/analyzer.js.map +1 -1
  203. package/dist/browser/circle-ir.js +157 -54
  204. package/dist/browser.js.map +1 -1
  205. package/dist/core/circle-ir-core.cjs +150 -29
  206. package/dist/core/circle-ir-core.js +150 -29
  207. package/dist/core/extractors/cfg.js +2 -2
  208. package/dist/core/extractors/cfg.js.map +1 -1
  209. package/dist/core/extractors/dfg.js +1 -1
  210. package/dist/core/extractors/dfg.js.map +1 -1
  211. package/dist/core/extractors/runtime-registrations.js +2 -2
  212. package/dist/core/extractors/runtime-registrations.js.map +1 -1
  213. package/dist/core/extractors/types.js.map +1 -1
  214. package/dist/core/parser.d.ts.map +1 -1
  215. package/dist/core/parser.js +4 -0
  216. package/dist/core/parser.js.map +1 -1
  217. package/dist/graph/analysis-pass.d.ts.map +1 -1
  218. package/dist/graph/code-graph.d.ts.map +1 -1
  219. package/dist/graph/dominator-graph.d.ts.map +1 -1
  220. package/dist/graph/exception-flow-graph.d.ts.map +1 -1
  221. package/dist/graph/import-graph.d.ts.map +1 -1
  222. package/dist/graph/project-graph.d.ts.map +1 -1
  223. package/dist/graph/scope-graph.d.ts.map +1 -1
  224. package/dist/languages/plugins/base.d.ts.map +1 -1
  225. package/dist/languages/plugins/bash.d.ts +1 -1
  226. package/dist/languages/plugins/bash.d.ts.map +1 -1
  227. package/dist/languages/plugins/csharp.d.ts +1 -1
  228. package/dist/languages/plugins/csharp.d.ts.map +1 -1
  229. package/dist/languages/plugins/go.d.ts +1 -1
  230. package/dist/languages/plugins/go.d.ts.map +1 -1
  231. package/dist/languages/plugins/html.d.ts +1 -1
  232. package/dist/languages/plugins/html.d.ts.map +1 -1
  233. package/dist/languages/plugins/java.d.ts +1 -1
  234. package/dist/languages/plugins/java.d.ts.map +1 -1
  235. package/dist/languages/plugins/javascript.d.ts +1 -1
  236. package/dist/languages/plugins/javascript.d.ts.map +1 -1
  237. package/dist/languages/plugins/python.d.ts +1 -1
  238. package/dist/languages/plugins/python.d.ts.map +1 -1
  239. package/dist/languages/plugins/rust.d.ts +1 -1
  240. package/dist/languages/plugins/rust.d.ts.map +1 -1
  241. package/dist/languages/plugins/vue.d.ts +1 -1
  242. package/dist/languages/plugins/vue.d.ts.map +1 -1
  243. package/dist/resolution/cross-file.d.ts.map +1 -1
  244. package/dist/resolution/symbol-table.d.ts.map +1 -1
  245. package/dist/resolution/type-hierarchy.d.ts.map +1 -1
  246. package/dist/resolution/type-hierarchy.js.map +1 -1
  247. package/dist/types/index.d.ts +28 -0
  248. package/dist/types/index.d.ts.map +1 -1
  249. package/dist/utils/logger.d.ts.map +1 -1
  250. package/dist/wasm/web-tree-sitter.wasm +0 -0
  251. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/analysis/config-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,CAiB1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG;IACtD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAcA;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,kBAAkB,EAAE,CAQtB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,EAAE,EACtB,qBAAqB,GAAE,MAAM,EAAO,GACnC,WAAW,CAYb;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAuwB1C,CAAC;AA+KF,eAAO,MAAM,aAAa,EAAE,WAAW,EAymEtC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAgjBhD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,EAiDtD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAO9C;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,EA8F5C,CAAC"}
1
+ {"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/analysis/config-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,CAiB1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG;IACtD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC,CAcA;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAAE,GAC7B,kBAAkB,EAAE,CAQtB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,EAAE,EACtB,qBAAqB,GAAE,MAAM,EAAO,GACnC,WAAW,CAYb;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAwzB1C,CAAC;AA+KF,eAAO,MAAM,aAAa,EAAE,WAAW,EAymEtC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAgjBhD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,EAiDtD,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAO9C;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,EA8F5C,CAAC"}
@@ -210,12 +210,56 @@ export const DEFAULT_SOURCES = [
210
210
  { method: 'getIn', class: 'Exchange', type: 'http_body', severity: 'high', return_tainted: true },
211
211
  { method: 'getHeader', class: 'Message', type: 'http_header', severity: 'high', return_tainted: true },
212
212
  // File name sources (common in path traversal vulnerabilities)
213
- { method: 'getFileName', type: 'file_input', severity: 'high', return_tainted: true },
214
- { method: 'getName', class: 'File', type: 'file_input', severity: 'high', return_tainted: true },
215
- { method: 'getPath', class: 'File', type: 'file_input', severity: 'high', return_tainted: true },
216
- { method: 'getAbsolutePath', class: 'File', type: 'file_input', severity: 'high', return_tainted: true },
217
- { method: 'toString', class: 'Path', type: 'file_input', severity: 'medium', return_tainted: true },
218
- { method: 'getFileName', class: 'Path', type: 'file_input', severity: 'high', return_tainted: true },
213
+ //
214
+ // cognium-dev#387 — the CLASSLESS `getFileName` was removed with the path
215
+ // projections below. It had no class and no `languages` scope, so it matched
216
+ // every `.getFileName()` anywhere, and it kept `Paths.get("/etc/app.conf")
217
+ // .getFileName()` reporting path_traversal after the class-scoped
218
+ // `Path.getFileName` was dropped — i.e. it silently defeated that removal,
219
+ // the same way the classless `getPath` defeated the first revision of this
220
+ // change. Measured redundant for the sources that matter: with it removed,
221
+ // `Part.getFileName`, `BodyPart`/`MimeBodyPart.getFileName` and
222
+ // `MultipartFile.getOriginalFilename` all still bind their sources from
223
+ // their own class-scoped entries below.
224
+ // cognium-dev#387 — REMOVED as taint sources: `File.getName`,
225
+ // `File.getPath`, `File.getAbsolutePath`, `Path.toString`,
226
+ // `Path.getFileName`, and the classless `getPath` further down this file.
227
+ //
228
+ // All of these are pure path PROJECTIONS: they hand back some part of the
229
+ // path the object already holds. They cannot introduce taint that is not
230
+ // already present — if the File/Path was built from untrusted input,
231
+ // propagation carries it — but as blanket sources they turned every
232
+ // program-constructed path into a high-severity source, and the enclosing
233
+ // call is usually itself a sink, so source and sink land on the same line.
234
+ // Each of these was a measured false positive with NO untrusted input
235
+ // anywhere in the file:
236
+ //
237
+ // File f = new File("/etc/app.conf");
238
+ // new FileInputStream(f.getAbsolutePath()); // path_traversal
239
+ // new FileInputStream(f.getPath()); // path_traversal
240
+ // new FileInputStream("/d/" + f.getName()); // path_traversal
241
+ // Paths.get("/etc/app.conf").getFileName(); // path_traversal
242
+ //
243
+ // and conversely, with a genuinely tainted path the finding does NOT depend
244
+ // on the projection being a source: it comes from the http source and
245
+ // survives. Verified across six shapes — same-method, inline with no
246
+ // intermediate variable, `getPath`, `Paths.get(p).toString()`, a File passed
247
+ // cross-method as a parameter, and a field-held File read in another method.
248
+ //
249
+ // The genuinely untrusted name sources are separately class-scoped and
250
+ // unaffected: `ZipEntry`/`TarArchiveEntry.getName` (Zip/Tar Slip),
251
+ // `MultipartFile.getOriginalFilename`/`getName`, `Part`, `BodyPart`.
252
+ // Measured: those still bind their sources with these removed.
253
+ //
254
+ // NO `listFiles` COVERAGE IS LOST — an earlier revision of this change
255
+ // claimed there was. Measured directly, before vs after, for a File taken
256
+ // from `dir.listFiles()`: `getName` 0 flows -> 0 flows, `getAbsolutePath`
257
+ // 0 -> 0, `getPath` 1 -> 1. The first two never fired in that shape at all,
258
+ // because class resolution does not resolve a for-each variable to `File`.
259
+ // Modelling `listFiles` / `Files.list` / `Files.walk` as sources is still
260
+ // worth doing — the directory listing IS external data — but it is additive,
261
+ // needs its own FP measurement, and is not a regression from this change.
262
+ // Tracked on #387.
219
263
  // Multipart file uploads
220
264
  { method: 'getOriginalFilename', class: 'MultipartFile', type: 'file_input', severity: 'high', return_tainted: true },
221
265
  { method: 'getName', class: 'MultipartFile', type: 'file_input', severity: 'high', return_tainted: true },
@@ -307,7 +351,12 @@ export const DEFAULT_SOURCES = [
307
351
  // Jenkins/CI pipeline sources
308
352
  { method: 'getScriptPath', type: 'io_input', severity: 'critical', return_tainted: true },
309
353
  { method: 'getFilePathSuffix', type: 'io_input', severity: 'high', return_tainted: true },
310
- { method: 'getPath', type: 'file_input', severity: 'high', return_tainted: true },
354
+ // cognium-dev#387 — the classless `getPath` was REMOVED here too. The first
355
+ // revision of this change dropped only the class-scoped `File.getPath` and
356
+ // left this one, so `f.getPath()` kept emitting a `file_input` source and the
357
+ // self-flow false positive survived — the change did not do what it claimed.
358
+ // This entry is strictly broader than the one it shadowed: no class and no
359
+ // `languages` scope, so it matched every `.getPath()` in every language.
311
360
  { method: 'contentAsString', type: 'file_input', severity: 'critical', return_tainted: true },
312
361
  { method: 'readAsString', type: 'file_input', severity: 'critical', return_tainted: true },
313
362
  { method: 'content', type: 'file_input', severity: 'high', return_tainted: true },