T08 · Insecure Dependencies
- Location
scripts/moltx_engage_gate.py:35- Finding
Untrusted Workspace Module Is Imported and Executed
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a real workflow helper, but it can automatically like or repost content with a user's MoltX account without an explicit confirmation step.
Review carefully before installing. Only run the MoltX engage-gate helper when you are comfortable with it choosing a feed post and liking or reposting it from your account. Prefer running it in an isolated workspace with a trusted moltx-streamliner dependency, and avoid passing untrusted slug values to the draft command.
scripts/moltx_engage_gate.py:35Untrusted Workspace Module Is Imported and Executed
scripts/release_conductor.py:86Unvalidated Slug Permits Draft Output Path Traversal
The module docstring explicitly says the script 'does NOT post anything,' but the implementation issues POST requests to like or repost content. This is dangerous because operators, downstream agents, or reviewers may rely on the documentation and run the script expecting read-only behavior, causing unintended account actions and undermining trust in automation safety boundaries.
The skill advertises and instructs use of shell execution plus file read/write behavior, but it does not declare any explicit tool scope such as permissions or allowed-tools. This creates an authorization ambiguity where an agent may grant broader-than-expected capabilities, making accidental or unsafe command/file operations more likely during skill execution.
The script performs network-side engagement actions automatically, with no interactive confirmation, explicit consent gate, or dry-run default in the execution path. In the context of a workflow skill intended to bypass or satisfy platform engage-gates, this increases the risk of unintended social actions, policy violations, and abuse if invoked by another script or agent without the user's awareness.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
scripts_dir = skill_folder / "scripts"
if scripts_dir.exists():
for py in scripts_dir.rglob("*.py"):
r = subprocess.run([sys.executable, "-m", "py_compile", str(py)], capture_output=True, text=True)
if r.returncode != 0:
print(f"Python syntax error in {py}\n{r.stderr}")
return 4
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
changelog,
]
print("RUN:", " ".join(cmd))
r = subprocess.run(cmd)
return r.returncode
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
started_iso = now_iso()
try:
cp = subprocess.run(
cmd,
capture_output=True,
text=True,
The manifest describes standardized JSON result envelopes for chaining scripts, which implies wrapping command results, but this implementation directly provides a general-purpose arbitrary command runner via subprocess.run. Spawning any local executable is a powerful capability not explicitly stated in the manifest and goes beyond simple data formatting or path-resolution helpers.
No suspicious patterns detected.