
CVE-2026-54686 के लिए स्थानीय PoC जो Warp टर्मिनल में DCS लाइफसाइकिल हुक स्पूफिंग का प्रदर्शन करता है। कमजोर मॉडलों में स्पूफ किए गए CWD और SSH मेटाडेटा स्वीकृति का अनुकरण करता है, जिसमें निश्चित मॉडल अस्वीकृति शामिल है।
यह रिपॉजिटरी Warp की सार्वजनिक सलाहकारी GHSA-9w2v-jhww-vm85 पर आधारित CVE-2026-54686 का एक सुरक्षित स्थानीय PoC है।
Warp के बिना सुधारे गए संस्करण में, PTY स्ट्रीम से आने वाले कुछ राज्य-परिवर्तन DCS जीवनचक्र हुक के लिए यह सत्यापन नहीं किया गया कि वह हुक वर्तमान सत्र के लिए Warp के शेल एकीकरण से भेजा गया है या नहीं। यदि कोई हमलावर पीड़ित को अपने नियंत्रण वाले टर्मिनल आउटपुट को Warp पर प्रदर्शित करवा सकता है, तो वह चुनिंदा जीवनचक्र मेटाडेटा को स्पूफ कर सकता है, जो सक्रिय ब्लॉक और SSH सत्र से संबंधित मेटाडेटा को प्रभावित कर सकता है।
यह PoC Warp या SSH सर्वर से कनेक्ट नहीं होता, और कोई आर्बिट्रेरी कमांड नहीं चलाता। यह Warp-शैली DCS JSON हुक को स्थानीय रूप से उत्पन्न और पार्स करता है, यह दर्शाता है कि बिना सुधारे मॉडल में स्पूफ किए गए CWD और SSH मेटाडेटा स्वीकार किए जाते हैं, जबकि सुधारे गए मॉडल में अपंजीकृत session_id वाले राज्य-परिवर्तन हुक को अस्वीकार कर दिया जाता है।
यह परियोजना केवल शैक्षिक उद्देश्यों और नैतिक सुरक्षा सत्यापन के लिए है। कृपया अनधिकृत वातावरण में सत्यापन या हमले के लिए इसका उपयोग न करें।
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L)>= v0.2021.04.25.23.05.stable_00v0.2026.05.06.15.42.stable_01यदि हमला सफल होता है, तो Warp सक्रिय सत्र के CWD के रूप में हमलावर द्वारा चुने गए पथ को मान सकता है। इससे उन सुविधाओं पर प्रभाव पड़ सकता है जो CWD-आधारित पथ, संदर्भ और सत्र व्यवहार का उपयोग करती हैं।
इसके अलावा, यदि SSH जीवनचक्र मेटाडेटा स्पूफ किया जाता है, तो Warp द्वारा रखा गया SSH सत्र का ट्रांसपोर्ट मेटाडेटा हमलावर-नियंत्रित मानों में अपडेट हो सकता है।
Warp का शेल एकीकरण टर्मिनल के DCS अनुक्रमों का उपयोग करके क्लाइंट को Precmd, CommandFinished, InputBuffer, SSH आदि जीवनचक्र हुक भेजता है। बिना सुधारे कार्यान्वयन में, कुछ राज्य-परिवर्तन हुकों के लिए यह अखंडता सत्यापन गायब था कि "क्या वह हुक Warp क्लाइंट द्वारा उत्पन्न और उस सत्र के लिए पंजीकृत session_id रखता है"।
सुधार में, क्लाइंट-उत्पन्न गैर-शून्य session_id को बूटस्ट्रैप स्क्रिप्ट में इंजेक्ट किया जाता है, और राज्य बदलने वाले DCS हुक के session_id को यदि पंजीकृत नहीं पाया जाता है तो उसे अस्वीकार कर दिया जाता है। SSH रैपर के लिए भी, स्थानीय SSH हुक को प्रमाणित किया जाता है, क्लाइंट-उत्पन्न रिमोट सत्र ID को पंजीकृत किया जाता है, और फिर रिमोट बूटस्ट्रैप में इंजेक्ट किया जाता है।
Python 3 आवश्यक है।
python3 --version
python3 poc.py
अपेक्षित परिणाम:
[!] VULNERABLE: spoofed cwd was accepted.
[!] VULNERABLE: spoofed ssh metadata was accepted.
python3 poc.py --mode fixed
अपेक्षित परिणाम:
[+] FIXED: spoofed cwd was rejected.
[+] FIXED: spoofed ssh metadata was rejected.
python3 poc.py --case cwd
python3 poc.py --case ssh
--show-stream जोड़ने पर, उत्पन्न Warp-शैली DCS स्ट्रीम को Python के repr() प्रारूप में प्रदर्शित करता है। यह टर्मिनल में कच्चे नियंत्रण अनुक्रम आउटपुट नहीं करता है।
v0.2026.05.06.15.42.stable_01 या उसके बाद अपडेट करें। सार्वजनिक सलाहकारी के अनुसार, अपडेट के अलावा कोई पूर्ण उपाय नहीं है।