Roo-Code versions up to 3.54.0 have a command approval bypass vulnerability in the parseCommandLine() function. This flaw allows attackers to execute arbitrary shell commands by using command substitution syntax in command position, bypassing the intended approval mechanism. Indirect prompt injection can be used to submit commands that evade the echo allowlist check, leading to unauthorized shell command execution.
Roo-Code versions up to 3.54.0 have a command approval bypass vulnerability in the parseCommandLine() function. This flaw allows attackers to use indirect prompt injection with crafted commands containing glob characters and command substitutions, bypassing user approval when auto-approval is enabled.
Roo-Code versions up to 3.54.0 have a command approval bypass vulnerability. This flaw allows attackers to execute shell commands that should be denied because the parseCommandLine() function incorrectly treats certain command substitutions as parameter expansions. Attackers can exploit this via indirect prompt injection by embedding denied commands inside allowed commands such as echo, enabling execution without user approval on bash 5.3+ or ksh93 environments.
Roo-Code versions up to 3.54.0 have a command approval bypass vulnerability. This flaw allows attackers to bypass user approval for shell commands by exploiting a quote-masking regex in the parseCommandLine() function. Specifically, attackers can use indirect prompt injection with escaped or single-quoted double quotes to conceal command separators behind allowlisted prefixes such as echo, leading to unauthorized command execution.
Roo Code versions up to 3.54.0 have a command approval bypass vulnerability in the getCommandDecision() function. This flaw allows attackers to prefix denied shell commands with a bare >& redirect, causing the commands to be auto-approved and executed. Indirect prompt injection can be used to manipulate the allowlist to match a redirect target such as echo, while the shell executes the originally denied command on the developer's machine. The vulnerability has a high severity score of 7.7.
Roo-Code through 3.54.0 contains an auto-approve bypass vulnerability that allows attackers to execute denied shell commands by exploiting a word-boundary mismatch in comment handling between the approval gate's shell parser and bash. Attackers can craft a command string with an allowlisted word immediately followed by a hash character, separator, and denied command to pass the approval gate while bash executes the denied command with the agent's auto-execute privileges on the developer's machine.
Roo-Code through 3.54.0 contains an auto-approve bypass vulnerability in the shell command parsing logic that allows attackers to execute denied shell commands by exploiting the omission of the bash pipe operator from the command parser's operator token set. Attackers can craft a command line with an allowlisted prefix followed by the stderr-redirecting pipe operator and a denied command, causing the parser to approve the full pipeline while bash executes the denied component with the agent's auto-execute privileges on the developer's machine.
Roo Code through 3.54.0 contains a command injection vulnerability in the auto-approve execute feature that allows attackers to bypass allowlist/denylist enforcement by nesting command substitutions inside parameter expansion defaults. The command parser in parse-command.ts replaces parameter expansions with opaque placeholders before extracting command substitutions, causing the containsDangerousSubstitution guard to miss nested payloads, which are then auto-approved based on the outer allowlisted command prefix and executed by the shell via execa, enabling arbitrary command execution.
Roo Code is an AI-powered autonomous coding agent that lives in users' editors. Prior to version 3.26.7, Due to an error in validation it was possible for Roo to automatically execute commands that did not match the allow list prefixes. This issue has been patched in version 3.26.7.
Roo Code is an AI-powered autonomous coding agent that lives in users' editors. In versions 3.23.18 and below, RooCode does not validate line breaks (\n) in its command input, allowing potential bypass of the allow-list mechanism. The project appears to lack parsing or validation logic to prevent multi-line command injection. When commands are evaluated for execution, only the first line or token may be considered, enabling attackers to smuggle additional commands in subsequent lines. This is fixed in version 3.23.19.
Roo Code is an AI-powered autonomous coding agent. Prior to 3.22.6, if the victim had "Write" auto-approved, an attacker with the ability to submit prompts to the agent could write to VS Code settings files and trigger code execution. There were multiple ways to achieve that. One example is with the php.validate.executablePath setting which lets you set the path for the php executable for syntax validation. The attacker could have written the path to an arbitrary command there and then created a php file to trigger it. This vulnerability is fixed in 3.22.6.
Roo Code is an AI-powered autonomous coding agent. The project-specific MCP configuration for the Roo Code agent is stored in the `.roo/mcp.json` file within the VS Code workspace. Because the MCP configuration format allows for execution of arbitrary commands, prior to version 3.20.3, it would have been possible for an attacker with access to craft a prompt to ask the agent to write a malicious command to the MCP configuration file. If the user had opted-in to auto-approving file writes within the project, this would have led to arbitrary command execution. This issue is of moderate severity, since it requires the attacker to already be able to submit prompts to the agent (for instance through a prompt injection attack), for the user to have MCP enabled (on by default), and for the user to have enabled auto-approved file writes (off by default). Version 3.20.3 fixes the issue by adding an additional layer of opt-in configuration for auto-approving writing to Roo's configuration files, including all files within the `.roo/` folder.
Roo Code is an AI-powered autonomous coding agent. Prior to version 3.20.3, there was an issue where the Roo Code agent's `search_files` tool did not respect the setting to disable reads outside of the VS Code workspace. This means that an attacker who was able to inject a prompt into the agent could potentially read a sensitive file and then write the information to a JSON schema. Users have the option to disable schema fetching in VS Code, but the feature is enabled by default. For users with this feature enabled, writing to the schema would trigger a network request without the user having a chance to deny. This issue is of moderate severity, since it requires the attacker to already be able to submit prompts to the agent. Version 3.20.3 fixed the issue where `search_files` did not respect the setting to limit it to the workspace. This reduces the scope of the damage if an attacker is able to take control of the agent through prompt injection or another vector.