
CVE-2026-65650 के लिए PoC - Elgg अवतार अपलोड DoS
एल्ग की अवतार अपलोड सुविधा में असीमित छवि आयामों के माध्यम से प्रमाणित सेवा-अस्वीकरण (DoS), जिससे GD मेमोरी समाप्त हो जाती है।
< 6.3.5 (6.x श्रृंखला), और 7.0.0-rc.1 – < 7.0.0 (7.0 रिलीज़ उम्मीदवार)6.3.5, 7.0.0actions/avatar/upload.php अपलोड की गई छवियों को बिना किसी आयाम, आकार या मेमोरी गार्ड के सीधे saveIconFromUploadedFile() में पास करता है:
$avatar = elgg_get_uploaded_file('avatar', false);
// No dimension check.
// No size check.
// No ratio check.
if (!$owner->saveIconFromUploadedFile('avatar')) {
return elgg_error_response(elgg_echo('avatar:resize:fail'));
}
PHP की GD लाइब्रेरी मेमोरी का आवंटन किसी छवि के डिकोड किए गए पिक्सेल आयामों के आधार पर करती है, न कि उसके डिस्क पर मौजूद फ़ाइल आकार के आधार पर। इसलिए अत्यधिक आयामों वाली एक छोटी फ़ाइल, GD के उसे छूते ही भारी मेमोरी आवंटन के लिए बाध्य करती है।
चरण 1 — python3 CVE-2026-65650.py
चरण 2 — किसी भी पंजीकृत उपयोगकर्ता के रूप में लॉग इन करें।
चरण 3 — प्रोफ़ाइल > अवतार संपादित करें पर जाएँ और CVE-2026-65650.png अपलोड करें।
PoC चलाने से GD छवि को डिकोड करने के लिए ~286 MB और उसे रिसाइज़ करने के लिए ~572 MB अतिरिक्त आवंटित करने के लिए बाध्य होता है, जबकि फ़ाइल स्वयं डिस्क पर केवल ~308 KB है। 14 GB / बिना-स्वैप वाले टेस्ट बॉक्स पर, एक अकेले अपलोड ने उपलब्ध मेमोरी को ~1.3 GB तक गिरा दिया। मेमोरी-सीमित तैनातियों पर यह PHP-FPM वर्कर्स के कर्नेल OOM किल को ट्रिगर करने के लिए पर्याप्त है, जिससे साइट बिना किसी स्व-पुनर्प्राप्ति के डाउन हो जाती है।
एकल निम्न-विशेषाधिकार वाले खाते से एक अकेला अनुरोध इस खपत को बढ़ाने के लिए पर्याप्त है। कई खातों से बार-बार या समवर्ती अनुरोध प्रभाव को और बढ़ा देते हैं और OOM होने की संभावना बढ़ा देते हैं।
Elgg 7.0.0 में ठीक किया गया और 6.3.5 में बैकपोर्ट किया गया।