
यह CVE-2021-44228 (Log4Shell) के लिए हॉटपैच टूल है जो JVM इंस्ट्रुमेंटेशन API का उपयोग करके चल रहे Java प्रक्रियाओं में बिना रीस्टार्ट किए JndiLookup::lookup() को ठीक करता है। JDK 6–11 और Windows को सपोर्ट करता है।
https://github.com/qingtengyun/cve-2021-44228-qingteng-patch
log4j2 के CVE-2021-44228 को ठीक करता है, JVM द्वारा प्रदान किए गए Instrumentation API का उपयोग करके JVM में लोड किए गए मौजूदा बाइटकोड को संशोधित करता है।
जावा प्रक्रिया को पुनरारंभ किए बिना, org.apache.logging.log4j.core.lookup.JndiLookup वर्ग की lookup विधि को संशोधित करता है, हमेशा Patched JndiLookup::lookup() लौटाता है।
सरल रूप से https://github.com/corretto/hotpatch-for-apache-log4j2 को संदर्भित किया गया और संशोधित किया गया, JDK संस्करण 6, 7, 8, 9, 10, 11 का समर्थन करता है, विंडोज का समर्थन करता है
jattach और jattach.exe https://github.com/apangin/jattach से लिए गए हैं, github से तुलना की जा सकती है।
यदि डाउनलोड किए गए बिल्ड टूल के बारे में संदेह है, तो कोड डाउनलोड करें और स्वयं build.sh को निष्पादित करके पैकेज और बदलें।
build.sh का पैकेजिंग परिणाम build/cve-2021-44228-qingteng-patch निर्देशिका में स्थित होगा
Linux:
./attach.sh $pid
./attach.sh
./attach.sh बिना pid के जावा प्रक्रियाओं को सूचीबद्ध करने के लिए jps का उपयोग करेगा, फिर पंक्ति संख्या दर्ज करके प्रक्रिया का चयन करें इंजेक्शन की मरम्मत के लिए, all दर्ज करने पर सभी सूचीबद्ध जावा प्रक्रियाओं को इंजेक्ट करेगा।
कई दर्ज किए जा सकते हैं, रिक्त स्थान से अलग।
Windows:
attach.bat पर डबल-क्लिक करें, फिर जावा प्रक्रिया pid दर्ज करें
या cmd कमांड लाइन में pid भेजें, उदाहरण के लिए attach.bat pid
$ ./attach.sh 438625
/data/qingteng/cve-2021-44228-qingteng-patch
will patch pid: 438625
/data/qingteng/cve-2021-44228-qingteng-patch/jattach 438625 load instrument false /data/qingteng/cve-2021-44228-qingteng-patch/qt-log4j-agent.jar=/data/qingteng/cve-2021-44228-qingteng-patch/qt-log4j-patch.jar
Connected to remote JVM
JVM response code = 0
0
अंत में
JVM response code = 0
0
वापस आने पर इंजेक्शन सफल होता है। अन्यथा विफल होता है।
एक, यदि निम्न त्रुटि होती है
Could not start attach mechanism: No such file or directory
संभावित कारण हैं
-XX:+DisableAttachMechanism, जिसका अर्थ है Attach अक्षम है।दूसरा, जावा प्रक्रिया चलाने वाले उपयोगकर्ता के समान उपयोगकर्ता होना चाहिए। यदि चलाने वाला उपयोगकर्ता लॉगिन अक्षम है, तो root उपयोगकर्ता su के साथ निष्पादित कर सकता है, कृपया pid_username और pid को बदलें
su -l -s /bin/bash -c "$(pwd)/attach.sh pid" pid_username