
अनधिकृत रिमोट कोड निष्पादन भेद्यताओं SECURITY-218 और SECURITY-360 के शमन के रूप में Jenkins CLI/Remoting उपप्रणाली को अक्षम करता है, जिसे रनटाइम पर या init स्क्रिप्ट के माध्यम से लागू किया जाता है।
यह शमन Jenkins 2.54 और Jenkins LTS 2.46.2 से अप्रचलित है। यदि आपने Jenkins का 2.54+/LTS 2.46.2+ संस्करण नए सिरे से इंस्टॉल किया है, तो Remoting-आधारित CLI डिफ़ॉल्ट रूप से अक्षम है। यदि आपने Jenkins का पुराना संस्करण इंस्टॉल किया था और 2.54+ या LTS 2.46.2+ में अपग्रेड किया है, तो आपको एक प्रशासनिक मॉनिटर द्वारा संकेत दिया जाएगा कि Configure Global Security पर जाकर Remoting-आधारित CLI को अक्षम करें। किसी भी स्थिति में, निम्नलिखित वर्कअराउंड अनावश्यक हैं।
या, यदि आप Jenkins 2.32+ या 2.19.3+
(जैसा कि 16 नवंबर 2016 के सुरक्षा परामर्श में उल्लेख किया गया है),
लेकिन 2.54 से पुराना है, तो आप केवल स्टार्टअप स्विच का उपयोग कर सकते हैं: -Djenkins.CLI.disabled=true
नोट: यह स्क्रिप्ट मूल रूप से SECURITY-218 ज़ीरो-डे भेद्यता को ठीक करने के लिए नवंबर 2015 में प्रकाशित की गई थी। इसे नवंबर 2016 में प्रकाशित SECURITY-360 ज़ीरो-डे भेद्यता के लिए वर्कअराउंड के रूप में भी लागू किया जा सकता है।
यह स्क्रिप्ट का उपयोग Jenkins के CLI सबसिस्टम को बंद करने के लिए किया जा सकता है, ताकि Jenkins को ज्ञात भेद्यता से सुरक्षित रखा जा सके।
जब इसे Groovy स्क्रिप्ट कंसोल (/script) से चलाया जाता है, तो यह चल रहे Jenkins के CLI सबसिस्टम को बिना पुनरारंभ की आवश्यकता के बंद कर देता है।
जब इसे $JENKINS_HOME/init.groovy.d/cli-shutdown.groovy में रखा जाता है, तो यह सुनिश्चित करता है कि मास्टर के पुनरारंभ के बाद भी सुरक्षा बनी रहे।
यह देखने के लिए कि शमन सफलतापूर्वक लागू हुआ है या नहीं, cli.jar के साथ java -jar cli.jar -s $JENKINS_URL चलाने का प्रयास करें और सुनिश्चित करें कि आपको निम्नलिखित जैसा EOFException मिले:
java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:197)
at java.io.DataInputStream.readUTF(DataInputStream.java:609)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at hudson.cli.CLI.connectViaCliPort(CLI.java:232)
at hudson.cli.CLI.<init>(CLI.java:128)
at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72)
at hudson.cli.CLI._main(CLI.java:479)
at hudson.cli.CLI.main(CLI.java:390)
Suppressed: java.io.IOException: https://ci.jenkins-ci.org/cli doesn't look like Jenkins
at hudson.cli.FullDuplexHttpStream.<init>(FullDuplexHttpStream.java:81)
at hudson.cli.CLI.connectViaHttp(CLI.java:158)
at hudson.cli.CLI.<init>(CLI.java:132)
... 3 more
इसका कोई उपयोगी अर्थ नहीं होता। इसलिए कृपया आउटपुट को अनदेखा करें। शमन हुआ है यह सत्यापित करने का तरीका ऊपर देखें। सुरक्षित रहने के लिए, कृपया Jenkins को पुनरारंभ करने पर पुनः सत्यापन भी करें।
नहीं।
मूल रूप से इसे नवंबर 2015 में SECURITY-218 ज़ीरो-डे रिमोट कोड निष्पादन भेद्यता के वर्कअराउंड के रूप में विकसित किया गया था। समाधान वाले रिलीज़ 11 नवंबर 2015 को प्रकाशित किए गए थे।
11 नवंबर 2016 को, एक अन्य ज़ीरो-डे रिमोट कोड निष्पादन भेद्यता (SECURITY-360) ने समान तकनीक का उपयोग किया, और यह वर्कअराउंड यहाँ भी प्रभावी रहा।