
CVE-2022-41923 विशेषाधिकार प्रबंधन भेद्यता के लिए Grails Spring Security Core प्लगइन में वर्कअराउंड गाइड, जो Annotation, InterceptUrlMap और Requestmap कॉन्फ़िगरेशन के लिए पैच किए गए फ़िल्टर परिभाषाएँ प्रदान करता है।
अनपैच किए गए Grails Spring Security Core (GSSC) प्लगइन में पाई गई भेद्यता CVE-2022-41923 के परिणामस्वरूप अनुचित विशेषाधिकार प्रबंधन हो सकता है। यह रिपॉजिटरी वर्णन करती है कि इस समस्या के आसपास कैसे काम किया जाए।
यदि आप प्लगइन के अनपैच किए गए संस्करण का उपयोग कर रहे हैं, तो हम दृढ़ता से अनुशंसा करते हैं कि आप पैच किए गए संस्करण में अपग्रेड करें। यदि आप तुरंत अपग्रेड करने में असमर्थ हैं, तो हम आपको इस दस्तावेज़ में वर्णित वर्कअराउंड को लागू करने के लिए प्रोत्साहित करते हैं। यह विशेष रूप से महत्वपूर्ण है यदि आप GSSC प्लगइन संस्करण 2.x का उपयोग कर रहे हैं, क्योंकि संस्करण 2.x के लिए कोई पैच उपलब्ध नहीं है।
वर्कअराउंड को सही ढंग से कॉन्फ़िगर करने के लिए, आपको यह जानना होगा:
आपका एप्लिकेशन GSSC प्लगइन का कौन सा संस्करण उपयोग करता है। अपनी build.gradle फ़ाइल में संस्करण संख्या देखें।
(Grails 2.x के लिए, BuildConfig.groovy फ़ाइल में देखें)।
आप किस सुरक्षा कॉन्फ़िगरेशन प्रकार का उपयोग कर रहे हैं: अर्थात्, grails.plugin.springsecurity.securityConfigType के लिए कॉन्फ़िगरेशन मान।
| कॉन्फ़िगरेशन मान | दस्तावेज़ीकरण संदर्भ |
|---|---|
Annotation (डिफ़ॉल्ट) |
नोट: नीचे दिए गए सभी निर्देशों और कॉन्फ़िगरेशन में, demo पैकेज का उपयोग किया गया है।
अपने एप्लिकेशन और पैच किए गए स्रोत फ़ाइलों के स्थान के अनुसार इस पैकेज को उपयुक्त रूप से बदलें।
अपने सुरक्षा कॉन्फ़िगरेशन प्रकार के आधार पर आवश्यक वर्कअराउंड क्लास निर्धारित करें।
| कॉन्फ़िगरेशन मान | वर्कअराउंड क्लास |
|---|---|
Annotation | PatchedAnnotationFilterInvocationDefinition |
InterceptUrlMap | PatchedInterceptUrlMapFilterInvocationDefinition |
Requestmap |
संबंधित स्रोत फ़ाइल को अपनी src/main/groovy स्रोत ट्री में कॉपी करें।
अंत में, अपनी application.groovy कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित कॉन्फ़िगरेशन जोड़ें,
PatchedAnnotationFilterInvocationDefinition को आवश्यक वर्कअराउंड क्लास से बदलें।
grails.plugin.springsecurity.objectDefinitionSourceBeanClass = 'demo.PatchedAnnotationFilterInvocationDefinition'
ऊपर की तरह, अपने सुरक्षा कॉन्फ़िगरेशन प्रकार के आधार पर आवश्यक वर्कअराउंड क्लास निर्धारित करें।
संबंधित स्रोत फ़ाइल को अपनी src/groovy स्रोत ट्री में कॉपी करें।
फिर अपने एप्लिकेशन के सुरक्षा कॉन्फ़िगरेशन प्रकार के आधार पर अपने बीन कॉन्फ़िगरेशन को संपादित करें।
यदि सुरक्षा कॉन्फ़िगरेशन प्रकार Annotation का उपयोग कर रहे हैं, तो grails-app/conf/spring/resources.groovy को संपादित करके शामिल करें:
import demo.PatchedAnnotationFilterInvocationDefinition
import grails.plugin.springsecurity.SpringSecurityUtils
beans = {
def conf = SpringSecurityUtils.securityConfig
objectDefinitionSource(demo.PatchedAnnotationFilterInvocationDefinition) {
application = ref('grailsApplication')
grailsUrlConverter = ref('grailsUrlConverter')
responseMimeTypesApi = ref('responseMimeTypesApi')
boolean lowercase = conf.controllerAnnotations.lowercase
if (conf.rejectIfNoRule instanceof Boolean) {
rejectIfNoRule = conf.rejectIfNoRule
}
}
// ... मौजूदा बीन कॉन्फ़िगरेशन ...
}
यदि सुरक्षा कॉन्फ़िगरेशन प्रकार InterceptUrlMap का उपयोग कर रहे हैं, तो grails-app/conf/spring/resources.groovy को संपादित करके शामिल करें:
import demo.PatchedInterceptUrlMapFilterInvocationDefinition
import grails.plugin.springsecurity.SpringSecurityUtils
beans = {
def conf = SpringSecurityUtils.securityConfig
objectDefinitionSource(demo.PatchedInterceptUrlMapFilterInvocationDefinition) {
if (conf.rejectIfNoRule instanceof Boolean) {
rejectIfNoRule = conf.rejectIfNoRule
}
}
// ... मौजूदा बीन कॉन्फ़िगरेशन ...
}
यदि सुरक्षा कॉन्फ़िगरेशन प्रकार Requestmap का उपयोग कर रहे हैं, तो grails-app/conf/spring/resources.groovy को संपादित करके शामिल करें:
import demo.PatchedRequestmapFilterInvocationDefinition
import grails.plugin.springsecurity.SpringSecurityUtils
beans = {
def conf = SpringSecurityUtils.securityConfig
objectDefinitionSource(demo.PatchedRequestmapFilterInvocationDefinition) {
if (conf.rejectIfNoRule instanceof Boolean) {
rejectIfNoRule = conf.rejectIfNoRule
}
}
// ... मौजूदा बीन कॉन्फ़िगरेशन ...
}
इस भेद्यता पर अतिरिक्त जानकारी के लिए, कृपया देखें Grails ब्लॉग पोस्ट।
चर्चा और प्रश्न इस Grails Spring Security Core प्लगइन GitHub पर मुद्दे पर निर्देशित किए जा सकते हैं।
| Secured Annotations |
InterceptUrlMap | Static Map |
Requestmap | Requestmap Instances |
PatchedRequestmapFilterInvocationDefinition |