
CVE-2026-1961 के लिए PoC — Foreman के WebSocket proxy (lib/ws_proxy.rb) में unsanitized compute resource hostname के माध्यम से command injection, जिससे foreman user के रूप में RCE होता है। जिम्मेदारीपूर्वक disclosed और patched।
Foreman के WebSocket प्रॉक्सी (lib/ws_proxy.rb) में कमांड इंजेक्शन कमज़ोरी के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जिसे ज़िम्मेदारीपूर्वक Red Hat को बताया गया और पैच किया गया।
Foreman का WebSocket प्रॉक्सी एक अनसैनिटाइज़्ड host मान — जो किसी कंप्यूट रिसोर्स प्रोवाइडर के API रिस्पॉन्स (जैसे VMware vSphere HostSystem.name) से आता है — को सीधे Open3.popen3 के माध्यम से निष्पादित शेल कमांड में इंटरपोलेट करता है। एक हमलावर जो किसी ऐसे कंप्यूट रिसोर्स सर्वर को नियंत्रित या स्पूफ़ करता है जिससे कोई Foreman इंस्टेंस कनेक्ट होता है, मनमाने शेल कमांड इंजेक्ट कर सकता है, और जब कोई एडमिनिस्ट्रेटर किसी VM का Console खोलता है तो foreman उपयोगकर्ता के रूप में रिमोट कोड एक्ज़ीक्यूशन प्राप्त कर सकता है।
सफल शोषण से Foreman के डेटाबेस क्रेडेंशियल्स और एन्क्रिप्शन कुंजियों तक पहुँच मिलती है, जिससे सभी संग्रहीत इंफ्रास्ट्रक्चर क्रेडेंशियल्स (vCenter, AWS, SSH कुंजियाँ, API टोकन) उजागर हो जाते हैं और प्रबंधित इंफ्रास्ट्रक्चर में आगे पिवट करना संभव हो जाता है।
| CVE | CVE-2026-1961 |
| CWE | CWE-78 (OS Command Injection) |
| CVSS 3.1 | 8.0 (High) — AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H |
| प्रभावित घटक | lib/ws_proxy.rb |
| प्रभावित संस्करण | Foreman 3.18.0 तक और उस सहित (3.17.0 पर पुष्टि; कोड पथ 2020 से अपरिवर्तित) |
| में ठीक किया गया | Foreman 3.18.1, 3.17.2, 3.16.3 |
| प्रमाणीकरण आवश्यक | कोई नहीं (हमलावर दुर्भावनापूर्ण सर्वर चलाता है; Foreman एडमिन सामान्य वर्कफ़्लो के हिस्से के रूप में उससे प्रमाणित होता है) |
| उपयोगकर्ता इंटरैक्शन | एडमिनिस्ट्रेटर किसी VM पर Console क्लिक करता है (सामान्य वर्कफ़्लो) |
| सलाह | https://access.redhat.com/security/cve/cve-2026-1961 |
lib/ws_proxy.rb:44 पर, host पैरामीटर सीधे एक शेल कमांड स्ट्रिंग में इंटरपोलेट किया जाता है:
cmd = "websockify --daemon --idle-timeout=#{idle_timeout} --timeout=#{timeout} #{port} #{host}:#{host_port}"
host कंप्यूट रिसोर्स API रिस्पॉन्स से आता है और Open3.popen3 के माध्यम से शेल को पास किए जाने से पहले कभी सैनिटाइज़ नहीं किया जाता।
malicious_vsphere_server.py एक न्यूनतम vSphere SOAP API लागू करता है — जो प्रमाणीकरण और VM एन्यूमरेशन को संभालने के लिए पर्याप्त है — और एक ज़हरीला HostSystem.name मान लौटाता है जिसमें शेल मेटाकैरेक्टर पेलोड होता है।
python3 malicious_vsphere_server.py
python3 malicious_vsphere_server.py
VMware<attacker_ip>user / pass)EvilDatacenter लोड करता है)VNCTestVM खोजेंfind /tmp -name "vsphere_rce.txt" 2>/dev/null
cat /tmp/systemd-private-*/tmp/vsphere_rce.txt
foremanHoussam Sahli (Malleum)
पैच के बाद जारी, समन्वित डिस्क्लोज़र का पालन करते हुए। केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए प्रदान किया गया। उन सिस्टमों के विरुद्ध उपयोग न करें जो आपके स्वामित्व में नहीं हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट अनुमति नहीं है।