1+ {
2+ "program_path" : " ." ,
3+ "language" : " javascript" ,
4+ "frameworks" : [],
5+ "weak_points" : [
6+ {
7+ "category" : " SupplyChain" ,
8+ "location" : " flake.nix" ,
9+ "file" : " flake.nix" ,
10+ "severity" : " High" ,
11+ "description" : " flake.nix declares inputs without narHash, rev pinning, or sibling flake.lock — dependency revision is unpinned in flake.nix" ,
12+ "recommended_attack" : []
13+ },
14+ {
15+ "category" : " UncheckedError" ,
16+ "location" : " contractiles/k9/template-hunt.k9.ncl" ,
17+ "file" : " contractiles/k9/template-hunt.k9.ncl" ,
18+ "severity" : " Low" ,
19+ "description" : " 14 TODO/FIXME/HACK markers in contractiles/k9/template-hunt.k9.ncl" ,
20+ "recommended_attack" : [
21+ " cpu"
22+ ]
23+ },
24+ {
25+ "category" : " DynamicCodeExecution" ,
26+ "location" : " extension/lib/rescript/DevTools.res.js" ,
27+ "file" : " extension/lib/rescript/DevTools.res.js" ,
28+ "severity" : " Critical" ,
29+ "description" : " eval() usage in extension/lib/rescript/DevTools.res.js" ,
30+ "recommended_attack" : [
31+ " cpu" ,
32+ " memory"
33+ ]
34+ },
35+ {
36+ "category" : " DynamicCodeExecution" ,
37+ "location" : " extension/lib/dom-utils.js" ,
38+ "file" : " extension/lib/dom-utils.js" ,
39+ "severity" : " High" ,
40+ "description" : " DOM manipulation (innerHTML/document.write) in extension/lib/dom-utils.js" ,
41+ "recommended_attack" : [
42+ " memory" ,
43+ " network"
44+ ]
45+ },
46+ {
47+ "category" : " DynamicCodeExecution" ,
48+ "location" : " extension/devtools/panel.js" ,
49+ "file" : " extension/devtools/panel.js" ,
50+ "severity" : " Critical" ,
51+ "description" : " eval() usage in extension/devtools/panel.js" ,
52+ "recommended_attack" : [
53+ " cpu" ,
54+ " memory"
55+ ]
56+ },
57+ {
58+ "category" : " InsecureProtocol" ,
59+ "location" : " .screenshots/generate-mockups.sh" ,
60+ "file" : " .screenshots/generate-mockups.sh" ,
61+ "severity" : " Medium" ,
62+ "description" : " 4 HTTP (non-HTTPS) URLs in .screenshots/generate-mockups.sh" ,
63+ "recommended_attack" : [
64+ " network"
65+ ]
66+ },
67+ {
68+ "category" : " HardcodedSecret" ,
69+ "location" : " scripts/sign-extension.sh" ,
70+ "file" : " scripts/sign-extension.sh" ,
71+ "severity" : " Critical" ,
72+ "description" : " Possible hardcoded secret in scripts/sign-extension.sh" ,
73+ "recommended_attack" : [
74+ " network"
75+ ]
76+ },
77+ {
78+ "category" : " InputBoundary" ,
79+ "location" : " tests/property/flag_properties_test.ts" ,
80+ "file" : " tests/property/flag_properties_test.ts" ,
81+ "severity" : " Medium" ,
82+ "description" : " 1 JSON.parse call(s) with 0 try block(s) in tests/property/flag_properties_test.ts — JSON.parse throws SyntaxError on malformed input; wrap in try-catch" ,
83+ "recommended_attack" : [
84+ " cpu"
85+ ]
86+ },
87+ {
88+ "category" : " InputBoundary" ,
89+ "location" : " tests/bench/flag_bench.ts" ,
90+ "file" : " tests/bench/flag_bench.ts" ,
91+ "severity" : " Medium" ,
92+ "description" : " 1 JSON.parse call(s) with 0 try block(s) in tests/bench/flag_bench.ts — JSON.parse throws SyntaxError on malformed input; wrap in try-catch" ,
93+ "recommended_attack" : [
94+ " cpu"
95+ ]
96+ }
97+ ],
98+ "statistics" : {
99+ "total_lines" : 10402 ,
100+ "unsafe_blocks" : 6 ,
101+ "panic_sites" : 0 ,
102+ "unwrap_calls" : 0 ,
103+ "allocation_sites" : 0 ,
104+ "io_operations" : 17 ,
105+ "threading_constructs" : 0
106+ },
107+ "file_statistics" : [
108+ {
109+ "file_path" : " flake.nix" ,
110+ "lines" : 116 ,
111+ "unsafe_blocks" : 0 ,
112+ "panic_sites" : 0 ,
113+ "unwrap_calls" : 0 ,
114+ "allocation_sites" : 0 ,
115+ "io_operations" : 2 ,
116+ "threading_constructs" : 0
117+ },
118+ {
119+ "file_path" : " extension/popup/popup.js" ,
120+ "lines" : 264 ,
121+ "unsafe_blocks" : 0 ,
122+ "panic_sites" : 0 ,
123+ "unwrap_calls" : 0 ,
124+ "allocation_sites" : 0 ,
125+ "io_operations" : 1 ,
126+ "threading_constructs" : 0
127+ },
128+ {
129+ "file_path" : " extension/sidebar/sidebar.js" ,
130+ "lines" : 378 ,
131+ "unsafe_blocks" : 0 ,
132+ "panic_sites" : 0 ,
133+ "unwrap_calls" : 0 ,
134+ "allocation_sites" : 0 ,
135+ "io_operations" : 1 ,
136+ "threading_constructs" : 0
137+ },
138+ {
139+ "file_path" : " extension/lib/rescript/DatabaseUpdater.res" ,
140+ "lines" : 335 ,
141+ "unsafe_blocks" : 3 ,
142+ "panic_sites" : 0 ,
143+ "unwrap_calls" : 0 ,
144+ "allocation_sites" : 0 ,
145+ "io_operations" : 2 ,
146+ "threading_constructs" : 0
147+ },
148+ {
149+ "file_path" : " extension/lib/rescript/DatabaseUpdater.res.js" ,
150+ "lines" : 355 ,
151+ "unsafe_blocks" : 0 ,
152+ "panic_sites" : 0 ,
153+ "unwrap_calls" : 0 ,
154+ "allocation_sites" : 0 ,
155+ "io_operations" : 2 ,
156+ "threading_constructs" : 0
157+ },
158+ {
159+ "file_path" : " extension/devtools/panel.js" ,
160+ "lines" : 323 ,
161+ "unsafe_blocks" : 0 ,
162+ "panic_sites" : 0 ,
163+ "unwrap_calls" : 0 ,
164+ "allocation_sites" : 0 ,
165+ "io_operations" : 1 ,
166+ "threading_constructs" : 0
167+ },
168+ {
169+ "file_path" : " .containerization/build.sh" ,
170+ "lines" : 153 ,
171+ "unsafe_blocks" : 0 ,
172+ "panic_sites" : 0 ,
173+ "unwrap_calls" : 0 ,
174+ "allocation_sites" : 0 ,
175+ "io_operations" : 1 ,
176+ "threading_constructs" : 0
177+ },
178+ {
179+ "file_path" : " .screenshots/generate-mockups.sh" ,
180+ "lines" : 410 ,
181+ "unsafe_blocks" : 0 ,
182+ "panic_sites" : 0 ,
183+ "unwrap_calls" : 0 ,
184+ "allocation_sites" : 0 ,
185+ "io_operations" : 4 ,
186+ "threading_constructs" : 0
187+ },
188+ {
189+ "file_path" : " lib/ocaml/DatabaseUpdater.res" ,
190+ "lines" : 334 ,
191+ "unsafe_blocks" : 3 ,
192+ "panic_sites" : 0 ,
193+ "unwrap_calls" : 0 ,
194+ "allocation_sites" : 0 ,
195+ "io_operations" : 2 ,
196+ "threading_constructs" : 0
197+ },
198+ {
199+ "file_path" : " scripts/sign-extension.sh" ,
200+ "lines" : 185 ,
201+ "unsafe_blocks" : 0 ,
202+ "panic_sites" : 0 ,
203+ "unwrap_calls" : 0 ,
204+ "allocation_sites" : 0 ,
205+ "io_operations" : 1 ,
206+ "threading_constructs" : 0
207+ }
208+ ],
209+ "recommended_attacks" : [
210+ " cpu" ,
211+ " memory" ,
212+ " network" ,
213+ " disk"
214+ ],
215+ "dependency_graph" : {
216+ "edges" : [
217+ {
218+ "from" : " extension/lib/rescript/DatabaseUpdater.res" ,
219+ "to" : " extension/lib/rescript/DatabaseUpdater.res.js" ,
220+ "relation" : " shared_dir:extension/lib/rescript" ,
221+ "weight" : 1.0
222+ }
223+ ]
224+ },
225+ "taint_matrix" : {
226+ "rows" : [
227+ {
228+ "source_category" : " HardcodedSecret" ,
229+ "sink_axis" : " network" ,
230+ "severity_value" : 5.0 ,
231+ "files" : [
232+ " scripts/sign-extension.sh"
233+ ],
234+ "frameworks" : [],
235+ "relation" : " HardcodedSecret->Network"
236+ },
237+ {
238+ "source_category" : " InsecureProtocol" ,
239+ "sink_axis" : " network" ,
240+ "severity_value" : 2.5 ,
241+ "files" : [
242+ " .screenshots/generate-mockups.sh"
243+ ],
244+ "frameworks" : [],
245+ "relation" : " InsecureProtocol->Network"
246+ },
247+ {
248+ "source_category" : " DynamicCodeExecution" ,
249+ "sink_axis" : " cpu" ,
250+ "severity_value" : 5.0 ,
251+ "files" : [
252+ " extension/lib/rescript/DevTools.res.js" ,
253+ " extension/devtools/panel.js"
254+ ],
255+ "frameworks" : [],
256+ "relation" : " DynamicCodeExecution->Cpu"
257+ },
258+ {
259+ "source_category" : " InputBoundary" ,
260+ "sink_axis" : " cpu" ,
261+ "severity_value" : 2.5 ,
262+ "files" : [
263+ " tests/property/flag_properties_test.ts" ,
264+ " tests/bench/flag_bench.ts"
265+ ],
266+ "frameworks" : [],
267+ "relation" : " InputBoundary->Cpu"
268+ },
269+ {
270+ "source_category" : " UncheckedError" ,
271+ "sink_axis" : " cpu" ,
272+ "severity_value" : 1.0 ,
273+ "files" : [
274+ " contractiles/k9/template-hunt.k9.ncl"
275+ ],
276+ "frameworks" : [],
277+ "relation" : " UncheckedError->Cpu"
278+ },
279+ {
280+ "source_category" : " DynamicCodeExecution" ,
281+ "sink_axis" : " memory" ,
282+ "severity_value" : 5.0 ,
283+ "files" : [
284+ " extension/lib/rescript/DevTools.res.js" ,
285+ " extension/lib/dom-utils.js" ,
286+ " extension/devtools/panel.js"
287+ ],
288+ "frameworks" : [],
289+ "relation" : " DynamicCodeExecution->Memory"
290+ },
291+ {
292+ "source_category" : " DynamicCodeExecution" ,
293+ "sink_axis" : " network" ,
294+ "severity_value" : 3.5 ,
295+ "files" : [
296+ " extension/lib/dom-utils.js"
297+ ],
298+ "frameworks" : [],
299+ "relation" : " DynamicCodeExecution->Network"
300+ }
301+ ]
302+ }
303+ }
0 commit comments