shell=True subprocess command injection vulnerabilities
NousResearch/hermes-agent · cluster 1241 · gateway
Data as of
6 open items. Fix attempted, not merged.
The short answer
- Known?
- Yes. 18 related items grouped here, 6 issues already closed.
- Fix event
- No fix has been merged to main. 6 PRs closed without merging; see the attempts below.
- Tracker
- The maintainers' tracker marks this
unresolved. That is separate from the fix event. - Still open
- 2 issues and 4 PRs.
Next step: read the attempts below. Your case may extend or revive that work.
Pick up a Lab taskMultiple reports and corresponding fixes address command injection risks from subprocess calls using shell=True across several components, including TUI gateway, CLI, config-driven execution paths, and STT handling. The work involves replacing shell=True with safer alternatives like shlex.split and adding fail-closed guards for dangerous-command checks.
Open issues2
Open PRs4
- PR#35545fix(security): convert shell=True to shlex.split in cli.py and mcp_catalog.py
- PR#53156fix(config): reject unsafe config.yaml quick-command sources
- PR#127393fix(tui-gateway): remove shell=True command injection from quick commands (#16560)
- PR#127408fix(security): screen quick-command exec snippets through the approval guard (#16560)
6 PRs closed without merging
From the close comments: duplicate 2 · done elsewhere 1 · superseded by another PR 1 · other 2
-
#10698 fix(security): replace shell=True with shlex.split in config-driven execution paths · other →
#10692 -
#15542 fix(security): fail-closed when dangerous-command guard cannot be loaded in TUI shell.exec · superseded by another PR →
c3055d6,0e8648c -
#17045 security(tui-gateway): fail-closed dangerous-command check in shell.exec / command.dispatch (#16560) · duplicate →
#15542,#15881,#16560 -
#28214 fix(security): harden TUI gateway quick-commands exec path with centralized guard helper · done elsewhere →
#16560,#46056,#46057 - #41537 fix(security): remove shell=True command injection (tui_gateway + tools_config) · other
Show 1 more
-
#65761 fix(security): remove shell=True from three subprocess.run sites · duplicate →
#65729,#65557
Closed issues · 6
- Closed#1241[Security] subprocess invocation uses shell=True
- Closed#10692shell=True in config-driven execution paths bypasses terminal tool safety controls
- Closed#45160CRITICAL: TUI gateway server.py has 2 shell=True subprocess calls (lines 6367, 8512)
- Closed#45572Multiple command injection vectors via shell=True in subprocess calls
- Closed#65557Three sites use subprocess with shell=True on untrusted or user-influenced input
- Closed#65729Three sites use subprocess with shell=True on untrusted or user-influenced input
How this cluster was grouped
-
Link evidence (
partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text. - Members outside that structural core may belong to a different underlying problem.
-
Pairwise link density
0.09: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36.1.00means every pair is linked.
Pick up a Lab task
Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.
Open the LabAt a glance
- Subsystem
- gateway
- Closed issues
- 6
- Attempts
- 6 PRs closed without merging