
CVE-2024-12537 के लिए स्थानीय पृथक प्रयोगशाला और nuclei टेम्पलेट, Open WebUI के कोड फ़ॉर्मेटिंग एंडपॉइंट में एक अनधिकृत सेवा अस्वीकार भेद्यता। कमजोर और पैच किए गए संस्करणों के विरुद्ध पहचान तर्क को मान्य करता है।
यह रिपॉजिटरी CVE-2024-12537 के लिए एक स्थानीय, पृथक पुनरुत्पादन लैब और न्यूक्ली टेम्पलेट उम्मीदवार रखती है, जो ओपन वेबयूआई के कोड फॉर्मेटिंग एंडपॉइंट में एक अप्रमाणित डिनायल-ऑफ-सर्विस कमजोरी है।
लैब बड़े डिनायल-ऑफ-सर्विस पेलोड नहीं भेजता। यह ओपन वेबयूआई के अप्रमाणित /api/version फिंगरप्रिंट एंडपॉइंट और /api/v1/utils/code/format पर एक न्यूनतम {"code":"x"} अनुरोध के माध्यम से न्यूक्ली डिटेक्शन लॉजिक को मान्य करता है, फिर एक कमजोर संस्करण की तुलना पैच किए गए/नए संस्करण से करता है।
open-webui/open-webuiCVE-2024-12537GHSA-chf7-q7m5-fq92POST /api/v1/utils/code/formatGET /api/versionv0.5.10v0.6.14< 0.5.14संदर्भ:
docker-compose.yml: डॉकर टैग चुनने के साथ ओपन वेबयूआई शुरू करता हैverify-cve-2024-12537.sh: तैयारी की प्रतीक्षा करता है, /api/version प्रिंट करता है, और उपलब्ध होने पर न्यूक्ली चलाता हैnuclei/CVE-2024-12537.yaml: न्यूक्ली टेम्पलेट उम्मीदवारcurlnucleiइसे केवल एक स्थानीय पृथक लैब में चलाएँ। इन कमांड्स का उपयोग तीसरे पक्ष के सिस्टम के विरुद्ध न करें। केवल उन सिस्टम के विरुद्ध उपयोग करें जिनके मालिक आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण है।
ओपन वेबयूआई v0.5.10 शुरू करें:
WEBUI_TAG=v0.5.10 docker compose up -d
सत्यापन स्क्रिप्ट चलाएँ:
sh verify-cve-2024-12537.sh
कमजोर-संस्करण प्रतिक्रिया देखी गई:
HTTP/1.1 200 OK
content-type: application/json
{"version":"0.5.10"}
कमजोर-संस्करण न्यूक्ली आउटपुट देखा गया:
[CVE-2024-12537:dsl-1] [http] [high] http://127.0.0.1:3010/api/v1/utils/code/format ["0.5.10"]
सफाई करें:
docker compose down -v
ओपन वेबयूआई v0.6.14 शुरू करें:
WEBUI_TAG=v0.6.14 docker compose up -d
सत्यापन स्क्रिप्ट चलाएँ:
sh verify-cve-2024-12537.sh
पैच/नए-संस्करण प्रतिक्रिया देखी गई:
HTTP/1.1 200 OK
content-type: application/json
{"version":"0.6.14"}
पैच/नए-संस्करण न्यूक्ली आउटपुट देखा गया:
No results found
सफाई करें:
docker compose down -v
टेम्पलेट को मान्य करें:
nuclei -validate -t nuclei/CVE-2024-12537.yaml
स्थानीय लैब के विरुद्ध चलाएँ:
nuclei -silent \
-t nuclei/CVE-2024-12537.yaml \
-include-templates nuclei/CVE-2024-12537.yaml \
-u http://127.0.0.1:3010
अपेक्षित व्यवहार:
v0.5.10: मिलानv0.6.14: कोई मिलान नहीं/api/v1/utils/code/format पर एक बड़ा अनुरोध बॉडी भेजने से बचता है।{"code":"x"} का उपयोग करता है, जिसने डॉकर v0.5.10 पर {"code":"x\n"} और डॉकर v0.6.14 पर {"detail":"Not authenticated"} लौटाया।-include-templates शामिल है क्योंकि dos टैग वाले टेम्पलेट डिफ़ॉल्ट रूप से बाहर किए जा सकते हैं।curl: (52) Empty reply from server लौटाते हैं। सत्यापन स्क्रिप्ट तब तक प्रतीक्षा करती है जब तक /api/version जवाब नहीं देता।docker-compose.yml RAG_EMBEDDING_MODEL="" और RAG_EMBEDDING_MODEL_AUTO_UPDATE=False सेट करता है ताकि लैब एम्बेडिंग मॉडल आरंभीकरण पर अवरुद्ध न हो।<= 0.3.32 के रूप में सूचीबद्ध करती है; यह लैब कमिट ट्रेसिंग के आधार पर अप्रमाणित कोड-पथ कटऑफ < 0.5.14 का उपयोग करता है। प्रासंगिक अनुक्रम d3d161f72 (कोई प्रमाणीकरण नहीं, v0.5.0-v0.5.13), 2f75eef49 (get_verified_user जोड़ता है, v0.5.14+), और 4fe45d443 (get_admin_user को मजबूत करता है, v0.6.14+) है।