Renn F and Renzo F
1f769f6315
[sandbox-ext] fix: drop dynamic verify SQL (bandit B608) — static query + Python membership
...
CI bandit -ll flagged B608 at sandbox.py:264 (f-string ANY(ARRAY[...])
with interpolated feature names). Root-cause fix: verify_step now runs a
static 'SELECT extname FROM pg_extension' and verify_ok checks set
membership against the installed extnames — no interpolation, no string-
built-SQL surface, and a more correct check (membership vs count). The
enable_step CREATE EXTENSION stays (identifiers can't be parameterized;
allowlist-validated upstream, the containment). Tests updated from the
count-based exec_out to the extname-list exec_out.
2026-07-13 20:05:45 +02:00
..
2026-06-17 06:36:28 +02:00
2026-07-02 05:46:01 +02:00
2026-07-07 10:09:23 +02:00
2026-07-02 18:28:07 +02:00
2026-07-08 21:40:22 +02:00
2026-07-11 22:54:42 +02:00
2026-07-10 09:38:10 +02:00
2026-07-08 16:40:02 +02:00
2026-06-14 13:43:46 +02:00
2026-06-09 17:08:34 +02:00
2026-07-10 02:37:12 +02:00
2026-06-14 13:43:46 +02:00
2026-06-29 05:38:21 +02:00
2026-06-29 05:38:21 +02:00
2026-07-13 08:06:57 +02:00
2026-07-02 15:36:49 +02:00
2026-07-02 05:46:01 +02:00
2026-07-08 16:01:01 +02:00
2026-06-19 09:15:01 +02:00
2026-07-09 20:59:53 +02:00
2026-07-04 07:34:40 +02:00
2026-07-03 19:24:00 +02:00
2026-07-08 16:01:01 +02:00
2026-07-08 16:01:01 +02:00
2026-06-29 05:38:21 +02:00
2026-07-07 10:09:23 +02:00
2026-07-07 10:09:23 +02:00
2026-06-20 09:27:29 +02:00
2026-06-26 01:43:08 +02:00
2026-07-13 15:41:00 +02:00
2026-06-29 05:38:21 +02:00
2026-07-08 10:41:02 +02:00
2026-07-11 07:39:53 +02:00
2026-06-30 08:08:35 +02:00
2026-07-02 05:46:01 +02:00
2026-06-24 01:15:57 +02:00
2026-07-07 10:09:23 +02:00
2026-07-02 15:36:49 +02:00
2026-07-11 15:51:19 +02:00
2026-07-07 10:09:23 +02:00
2026-07-01 05:18:45 +02:00
2026-07-07 10:09:23 +02:00
2026-06-29 05:38:21 +02:00
2026-07-11 22:54:42 +02:00
2026-06-29 05:38:21 +02:00
2026-07-11 09:21:15 +02:00
2026-06-26 03:36:42 +02:00
2026-07-08 22:16:50 +02:00
2026-07-07 10:09:23 +02:00
2026-06-19 09:15:01 +02:00
2026-06-22 03:49:45 +02:00
2026-06-29 05:38:21 +02:00
2026-06-06 22:10:48 +02:00
2026-06-21 00:04:24 +02:00
2026-06-30 08:08:35 +02:00
2026-06-29 05:38:21 +02:00
2026-06-26 01:43:08 +02:00
2026-06-29 05:38:21 +02:00
2026-06-11 04:36:17 +02:00
2026-06-30 08:08:35 +02:00
2026-07-07 10:09:23 +02:00
2026-07-02 05:46:01 +02:00
2026-07-02 15:36:49 +02:00
2026-07-07 10:09:23 +02:00
2026-07-11 22:54:42 +02:00
2026-07-11 22:54:42 +02:00
2026-07-03 19:24:00 +02:00
2026-07-03 19:24:00 +02:00
2026-07-01 23:54:48 +02:00
2026-06-11 04:36:17 +02:00
2026-07-08 16:40:02 +02:00
2026-07-13 20:05:45 +02:00
2026-07-13 20:05:45 +02:00
2026-07-08 16:40:02 +02:00
2026-07-13 15:41:00 +02:00
2026-07-08 16:01:01 +02:00
2026-07-07 10:09:23 +02:00
2026-06-29 05:38:21 +02:00
2026-06-29 05:38:21 +02:00
2026-06-17 21:03:27 +02:00
2026-07-10 22:55:00 +02:00
2026-06-29 05:38:21 +02:00
2026-07-02 18:28:07 +02:00
2026-06-29 11:32:34 +02:00
2026-07-09 17:14:13 +02:00
2026-07-01 23:54:48 +02:00
2026-06-30 08:08:35 +02:00
2026-07-08 03:26:12 +02:00
2026-06-30 08:08:35 +02:00
2026-07-08 16:01:01 +02:00
2026-06-30 08:08:35 +02:00
2026-06-14 13:43:46 +02:00
2026-07-07 10:09:23 +02:00
2026-07-07 10:09:23 +02:00
2026-06-19 20:57:02 +02:00
2026-07-11 03:17:59 +02:00
2026-07-11 03:17:59 +02:00
2026-07-11 15:51:19 +02:00
2026-07-11 15:51:19 +02:00
2026-07-05 13:37:17 +02:00
2026-07-11 07:39:17 +02:00
2026-07-03 19:24:00 +02:00
2026-07-03 19:24:00 +02:00