
CVE-2022-0778 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, OpenSSL के BN_mod_sqrt() फ़ंक्शन में एक डिनायल-ऑफ-सर्विस कमजोरी, परीक्षण और विश्लेषण के लिए Docker-आधारित प्रयोगशाला वातावरण के साथ।
योगदानकर्ता
CVE-2022-0778 कमजोरी OpenSSL में अभाज्य संख्याओं का वर्गमूल गणना करने वाले BN_mod_sqrt() फ़ंक्शन को प्रभावित करती है।
यह फ़ंक्शन जब अभाज्य-आधारित नहीं बल्कि दुर्भावनापूर्ण रूप से हेरफेर किए गए प्रमाणपत्रों को संभालता है, तो अनपैच किए गए सर्वर DoS हमले के संपर्क में आ सकते हैं।
i = 1;
if (!BN_mod_sqr(t, b, p, ctx))
goto end;
while (!BN_is_one(t)) {
i++;
if (i == e) {
ERR_raise(ERR_LIB_BN, BN_R_NOT_A_SQUARE);
goto end;
}
if (!BN_mod_mul(t, t, t, p, ctx))
goto end;
}
for (i = 1; i < e; i++) {
if (i == 1) {
if (!BN_mod_sqr(t, b, p, ctx))
goto end;
} else {
if (!BN_mod_mul(t, t, t, p, ctx))
goto end;
}
if (BN_is_one(t))
break;
}
/* If not found, a is not a square or p is not prime. */
if (i >= e) {
ERR_raise(ERR_LIB_BN, BN_R_NOT_A_SQUARE);
goto end;
}
while लूप को for लूप में बदल दिया गया है।Ubuntu पर्यावरण सेटअप
docker compose up -d परीक्षण वातावरण चलाएँ
docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345
docker compose exec curl top प्रक्रिया स्थिति जांचें
docker compose exec curl bash bash चलाएँ
curl -k https://172.17.0.1:12345 12345 पोर्ट पर HTTPS अनुरोध भेजें

docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345 कमांड चलाकर Docker इमेज शुरू करें।
docker compose exec curl top कमांड चलाकर वर्तमान में चल रही प्रक्रियाओं की स्थिति देखें।
docker compose exec curl bash दर्ज करने के बाद, curl -k https://172.17.0.1:12345 12345 पोर्ट पर HTTPS अनुरोध भेजें।