Chris Brown
85a63471a2
fix: sanitize os.system() shell injection in manimgl scene templates
...
os.system(f"manimgl {__file__} ClassName") interpolates the script's own
path into a shell string. These templates are meant to be copied and
renamed per-scene by an agent, so a scene/folder name containing shell
metacharacters is a real injection path, not just malformed input.
Switched to subprocess.run() with an argument list (no shell=True), so
there's nothing left for a shell to interpret regardless of what the
path contains. Same fix applied in both duplicate locations
(.claude/skills and .agents/skills) since the files are identical.
Reviewed scripts/lib/tts.mjs's child_process usage as part of the same
report -- not included in this PR, it already passes args as a real
array with no shell:true anywhere in the call chain, so it isn't
actually exploitable.
2026-07-21 11:26:42 -05:00
..
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-07-10 14:02:30 +08:00
2026-03-29 08:25:17 -07:00
2026-07-10 23:30:19 +05:30
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-04-28 08:11:02 -07:00
2026-04-28 08:11:02 -07:00
2026-04-28 08:11:02 -07:00
2026-06-29 19:09:22 +01:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-06-30 14:35:34 +08:00
2026-05-04 21:40:17 +08:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-06-26 13:18:35 +05:30
2026-03-29 08:25:17 -07:00
2026-07-08 11:00:57 -07:00
2026-04-05 15:31:37 -07:00
2026-06-26 13:18:35 +05:30
2026-04-16 20:07:00 -07:00
2026-04-16 20:07:00 -07:00
2026-04-16 20:07:00 -07:00
2026-04-16 20:07:00 -07:00
2026-04-16 20:07:00 -07:00
2026-04-16 20:07:00 -07:00
2026-04-16 20:07:00 -07:00
2026-04-16 20:07:00 -07:00
2026-03-29 08:25:17 -07:00
2026-06-27 14:00:00 -07:00
2026-06-27 14:00:00 -07:00
2026-06-27 14:00:00 -07:00
2026-06-27 14:00:00 -07:00
2026-06-27 14:00:00 -07:00
2026-06-29 12:16:07 -07:00
2026-06-27 14:00:00 -07:00
2026-07-10 20:53:45 +08:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-07-18 16:47:35 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-07-21 11:26:42 -05:00
2026-06-27 14:00:00 -07:00
2026-06-27 14:00:00 -07:00
2026-03-29 08:25:17 -07:00
2026-06-27 14:00:00 -07:00
2026-03-29 08:25:17 -07:00
2026-04-28 08:11:02 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-06-27 14:00:00 -07:00
2026-04-23 23:30:23 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-04-28 08:11:02 -07:00
2026-06-25 19:00:47 +05:30
2026-03-29 08:25:17 -07:00
2026-06-29 12:16:07 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-06-26 13:18:35 +05:30
2026-06-26 13:18:35 +05:30
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-06-25 19:00:47 +05:30
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-03-29 08:25:17 -07:00
2026-06-27 14:00:00 -07:00