
CVE-2026-8347 Concrete CMS के संस्करण 9.5.0 और उससे पहले के संस्करणों में एक असुरक्षित प्रत्यक्ष ऑब्जेक्ट संदर्भ (IDOR) है, जो गलत प्राधिकरण स्तर की भेद्यता के साथ संयुक्त है। यह दोष Express एसोसिएशन Reorder डायलॉग में मौजूद है, जो किसी Express प्रविष्टि पर केवल देखने की अनुमति रखने वाले उपयोगकर्ता को किसी अन्य इकाई के लिए एसोसिएशन के क्रम को संशोधित करने की अनुमति देता है।
CVE-2026-8347 एक असुरक्षित प्रत्यक्ष वस्तु संदर्भ (IDOR) भेद्यता है जो Concrete CMS संस्करण 9.5.0 और पुराने को प्रभावित करती है। यह समस्या Express Association Reorder कार्यक्षमता में अपर्याप्त प्राधिकरण जाँच के कारण मौजूद है।
जब कोई उपयोगकर्ता संबंधों (associations) को पुनः क्रमबद्ध करता है, तो एप्लिकेशन यह सत्यापित करता है कि उपयोगकर्ता के पास Express प्रविष्टि को देखने की अनुमति है, लेकिन यह पुष्टि करने में विफल रहता है कि उपयोगकर्ता उसे संशोधित करने के लिए अधिकृत है या नहीं। परिणामस्वरूप, सीमित विशेषाधिकारों वाला एक प्रमाणित उपयोगकर्ता किसी अन्य Express इकाई के पहचानकर्ता में हेरफेर कर सकता है और उसके संबंधों को पुनः क्रमबद्ध कर सकता है, भले ही उसके पास संपादन अनुमतियाँ न हों।
SQL इंजेक्शन या रिमोट कोड निष्पादन भेद्यताओं के विपरीत, यह दोष दुर्भावनापूर्ण कमांड या कोड इंजेक्ट करने से संबंधित नहीं है। इसके बजाय, यह उपयोगकर्ता-नियंत्रित वस्तु पहचानकर्ता (जैसे इकाई ID) को किसी अन्य उपयोगकर्ता के संसाधन को संदर्भित करने के लिए बदलकर टूटे हुए एक्सेस नियंत्रण का शोषण करता है। चूँकि सर्वर अनुरोधित वस्तु के लिए प्राधिकरण को ठीक से सत्यापित नहीं करता है, यह उस डेटा पर कार्रवाई करता है जिसे हमलावर को संशोधित नहीं करना चाहिए।
// User requests to reorder associations $entityId = $_POST['entityId'];
$entity = $entityRepository->find($entityId);
// Only verifies that the user can access the entity if ($permissionChecker->canView($entity)) {
// Reorders associations without checking edit permission
$associationService->reorder($entity, $_POST['order']);
return response()->json([
'status' => 'success'
]);
}
एप्लिकेशन स्थिति-परिवर्तनकारी कार्रवाई करने से पहले केवल देखने की अनुमति को मान्य करता है।
एक हमलावर अनुरोध में entityId पैरामीटर को किसी अन्य उपयोगकर्ता की इकाई को संदर्भित करने के लिए संशोधित कर सकता है। चूँकि संशोधन के लिए कोई प्राधिकरण जाँच नहीं की जाती है, पुनः क्रमबद्ध करने की कार्रवाई एक अनधिकृत संसाधन पर सफल हो जाती है।
एक सफल हमला एक प्रमाणित उपयोगकर्ता को निम्नलिखित की अनुमति दे सकता है:
यह भेद्यता मुख्य रूप से डेटा अखंडता को प्रभावित करती है और स्वाभाविक रूप से SQL इंजेक्शन, रिमोट कोड निष्पादन या प्रमाणीकरण बाईपास की अनुमति नहीं देती है।
एप्लिकेशन को पुनः क्रमबद्ध करने के अनुरोध को संसाधित करने से पहले यह सत्यापित करना चाहिए कि प्रमाणित उपयोगकर्ता के पास विशिष्ट इकाई को संशोधित करने की अनुमति है।
$entityId = $_POST['entityId'];
$entity = $entityRepository->find($entityId);
// Verify modification permission if (!$permissionChecker->canEdit($entity)) {
return response()->json([
'error' => 'Access denied.'
], 403);
}
// User is authorized $associationService->reorder($entity, $_POST['order']);
return response()->json([ 'status' => 'success' ]);
Concrete CMS 9.5.1 या उसके बाद के संस्करण में अपग्रेड करें। डेवलपर्स को प्रत्येक स्थिति-परिवर्तनकारी अनुरोध के लिए उचित सर्वर-साइड प्राधिकरण जाँच लागू करनी चाहिए और यह सुनिश्चित करना चाहिए कि उपयोगकर्ता केवल उन संसाधनों को संशोधित कर सकें जिन्हें संपादित करने की उन्हें स्पष्ट रूप से अनुमति है।