Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Tools/GitHubGitHub/kalnux/cve-2026-1961-foreman-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubkalnux/cve-2026-1961-foreman-poc

CVE-2026-1961-foreman-poc

PoC for CVE-2026-1961 — command injection in Foreman's WebSocket proxy (lib/ws_proxy.rb) via unsanitized compute resource hostname, leading to RCE as the foreman user. Responsibly disclosed and patched.

View Repository
8h 50m agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Foreman WebSocket Proxy Command Injection (CVE-2026-1961) — PoC

Proof-of-concept for a command injection vulnerability in Foreman's WebSocket proxy (lib/ws_proxy.rb), disclosed responsibly to Red Hat and patched.

Summary

Foreman's WebSocket proxy interpolates an unsanitized host value — sourced from a compute resource provider's API response (e.g. VMware vSphere HostSystem.name) — directly into a shell command executed via Open3.popen3. An attacker who controls or spoofs a compute resource server that a Foreman instance connects to can inject arbitrary shell commands, achieving remote code execution as the foreman user when an administrator opens a VM's Console.

Successful exploitation grants access to Foreman's database credentials and encryption keys, exposing all stored infrastructure credentials (vCenter, AWS, SSH keys, API tokens) and enabling further pivoting into the managed infrastructure.

Details

CVECVE-2026-1961
CWECWE-78 (OS Command Injection)
CVSS 3.18.0 (High) — AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Affected componentlib/ws_proxy.rb
Affected versionsForeman up to and including 3.18.0 (confirmed on 3.17.0; code path unchanged since 2020)
Fixed inForeman 3.18.1, 3.17.2, 3.16.3
Authentication requiredNone (attacker runs the malicious server; the Foreman admin authenticates to it as part of normal workflow)
User interactionAdministrator clicks Console on a VM (normal workflow)
Advisoryhttps://access.redhat.com/security/cve/cve-2026-1961

Root Cause

At lib/ws_proxy.rb:44, the host parameter is interpolated directly into a shell command string:

root@kitploit:~
cmd = "websockify --daemon --idle-timeout=#{idle_timeout} --timeout=#{timeout} #{port} #{host}:#{host_port}"

host comes from the compute resource API response and is never sanitized before being passed to a shell via Open3.popen3.

Proof of Concept

malicious_vsphere_server.py implements a minimal vSphere SOAP API — enough to handle authentication and VM enumeration — and returns a poisoned HostSystem.name value containing a shell metacharacter payload.

Usage

root@kitploit:~
python3 malicious_vsphere_server.py

Reproduction Steps

  1. Start the malicious vSphere server on the attacker system:
    root@kitploit:~
    python3 malicious_vsphere_server.py
    
  2. Configure a Foreman compute resource (Foreman UI):
    • Navigate to Infrastructure → Compute Resources → Create Compute Resource
    • Provider: VMware
    • vCenter/Server: <attacker_ip>
    • Username / Password: any (user / pass)
    • Load Datacenters (loads EvilDatacenter)
    • Display Type: VNC
    • Uncheck VNC Console Passwords and Enable Caching
    • Submit
  3. Trigger exploitation:
    • Navigate to the Virtual Machines tab
    • Locate TestVM
    • Actions → Console
  4. Verify RCE on the Foreman server:
    root@kitploit:~
    find /tmp -name "vsphere_rce.txt" 2>/dev/null
    cat /tmp/systemd-private-*/tmp/vsphere_rce.txt
    
    Expected output: foreman

Author

Houssam Sahli (Malleum)

Legal

Released post-patch, following coordinated disclosure. Provided for authorized security testing and educational purposes only. Do not use against systems you do not own or do not have explicit permission to test.

Download Tool