Summary
A high-severity OS command injection vulnerability in Reasonix Studio can cause arbitrary commands to run when the desktop application's workspace-changes diff viewer processes repository content.
Exploitation may be possible when a local attacker controls files such as .gitattributes and .git/config in a repository opened by the application.
Affected context
The vulnerability occurs in the application's internal Git command handling, specifically when the workspace-changes diff viewer invokes Git clean or smudge filters. Risk is present when repository-controlled configuration and attribute files influence those filter operations and the repository is opened or inspected by the desktop application.
Exploit preconditions
- Attack surface: The Reasonix Studio desktop application's workspace-changes diff viewer
- Required access: Local access sufficient to create or modify repository content, including
.gitattributesand.git/config - Trigger point: Diff processing that invokes Git filter.clean or filter.smudge behavior
- Why exploitation is possible: Repository-controlled filter configuration can cause the application to invoke commands without adequately separating trusted application operations from untrusted repository content
Why this happens
The underlying issue is command construction or execution based on Git filter settings that can be controlled through repository content. When the application processes clean or smudge filters while rendering diffs, attacker-influenced values may reach an operating-system command execution path without sufficient validation, allowlisting, or trust-boundary enforcement. This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').
Potential impact
- An attacker may execute arbitrary commands with the desktop application's privileges.
- Local files and repository contents could be read, modified, or deleted.
- Application credentials, tokens, or other accessible secrets could be exposed.
- The workstation could be used for persistence, lateral movement, or additional compromise.
General mitigation guidance
Mitigation generally focuses on preventing repository-controlled data from selecting or shaping operating-system commands.
Common defensive patterns include:
- Treating Git filter definitions and repository configuration as untrusted input.
- Using structured process APIs with fixed executable paths and separate argument values rather than shell command strings.
- Allowing only explicitly supported filter operations and rejecting unexpected command forms.
- Separating diff rendering from executable filter behavior where filtering is not required.
- Applying least privilege to the desktop application and limiting access to sensitive files and credentials.
- Providing secure-by-default repository handling that requires explicit user consent before executing repository-defined tooling.
How teams detect issues like this
Organizations can look for this class of issue through:
- Static analysis rules identifying shell-based process execution, string concatenation, or interpolation near Git filter handling.
- Code review checks for use of
.git/configor.gitattributesvalues in process-launching code. - Tests using repositories with unexpected filter definitions to verify that diff viewing does not execute unapproved commands.
- Endpoint and application telemetry monitoring for child processes spawned during repository inspection or diff rendering.
- Policy enforcement that blocks untrusted repository metadata from selecting executable programs without explicit approval.
- Automated security review tools that flag command execution paths receiving repository-controlled input.

