
Liferay CE 7.0.3 GA4 पर सुरक्षा अनुसंधान: प्री-ऑथ RCE रूट के रूप में (CVE-2020-7961 वर्ग) एंड-टू-एंड पुनरुत्पादित, साथ ही 16 और निष्कर्ष — 8+ बिना किसी ज्ञात CVE के। एजेंटिक लूप-हंट: Docker पर 25 जनरेटर, 22 जज, 9 लाइव वैलिडेटर। साक्ष्य ट्रेल + वन-गो चेकर शामिल।
Liferay Portal CE 7.0.3 GA4 (git tag 7.0.3-ga4, कमिट b2d7cc68a) का एक सुरक्षा ऑडिट, जो RAPTOR loop-hunt पद्धति से किया गया:
निर्धारित (deterministic) recon → 25 पृथक जनरेटर एजेंट जो कच्चे सोर्स को पढ़ते हैं → 22 स्वतंत्र जज एजेंट जो कच्चे सोर्स से खंडन करते हैं → 9 लाइव वैलिडेटर जो Docker में वास्तविक GA4 इंस्टेंस पर हमला करते हैं।
मुख्य समाचार: root के रूप में unauthenticated RCE end-to-end पुनरुत्पादित (CVE-2020-7961 क्लास), साथ ही 8 और लाइव-वेरिफ़ाइड भेद्यताएँ — उनमें से कई का कोई ज्ञात CVE नहीं है।
⚠️ कानूनी/नैतिक: यहाँ की हर चीज़ एक self-hosted टेस्ट इंस्टेंस को लक्षित करती है। Liferay CE 7.0 end-of-life है (अंतिम रिलीज़ 7.0.6 GA7, 2018); ये मुद्दे अपस्ट्रीम में अनपैच्ड हैं। इस सामग्री का उपयोग केवल उन्हीं सिस्टमों पर करें जिनके आप स्वामी हैं या जिनके परीक्षण के लिए आप स्पष्ट रूप से अधिकृत हैं।
स्थिति: ✅ Docker GA4 इंस्टेंस पर लाइव-वेरिफ़ाइड · 🔬 कोड-द्वारा पुष्टि (स्वतंत्र जज ने कच्चे सोर्स से पूरा ट्रेस पुनः-व्युत्पन्न किया) · 🧪 आवश्यक/config-गेटेड
| ID | निष्कर्ष | गंभीरता | प्रमाणीकरण | स्थिति | साक्ष्य |
|---|---|---|---|---|---|
| F-1 | JSONWS type-override → मनमाना क्लास इंस्टैंशिएशन + setters → root के रूप में RCE (c3p0 HexAsciiSerializedMap → ObjectInputStream → AspectJWeaver file-write → JSP) | क्रिटिकल | कोई नहीं | ✅ | verified/f1-jsonws-deser-rce.md |
| F-2 | /poller/* jabsorb javaClass हिंट → मनमाना क्लास इंस्टैंशिएशन + field injection, userId वैलिडेशन से पहले | उच्च (संभावित) | कोई भी खाता (self-registration डिफ़ॉल्ट रूप से चालू) | ✅ sink / RCE शाखा खुली | verified/F-2-poller.md |
| F-4 | XML-RPC pingback.ping fetch-before-validate → ब्लाइंड SSRF + आंतरिक पोर्ट oracle (127.0.0.1:11311 पर Gogo shell तक पहुँच) | मध्यम | कोई नहीं | ✅ | verified/f4-xmlrpc-pingback-ssrf.md |
| F-5 | SyncDownloadServlet versionId IDOR → किसी भी DL फ़ाइल संस्करण को पढ़ना (cross-site, स्ट्रीम की गई वस्तु पर कोई VIEW जाँच नहीं) | उच्च | कोई नहीं (guest द्वारा देखे जाने योग्य "leg" के माध्यम से) | ✅ | verified/F-5.md |
| F-6 | XSL टेम्पलेट इंजन सैंडबॉक्सिंग को अनदेखा करता है (secureProcessing=false, restricted हटा दिया गया) → document() SSRF और XSLTC rt:exec कमांड निष्पादन | क्रिटिकल | site टेम्पलेट लेखक | ✅ | verified/F-6-F-7-template-engines.md |
| F-7 | Velocity और FreeMarker प्रतिबंधित टेम्पलेट कच्चे propsUtil / saxReaderUtil उजागर करते हैं → guests को पोर्टल प्रॉपर्टी + file:// प्रकटीकरण | उच्च | टेम्पलेट लेखक | ✅ | verified/F-6-F-7-template-engines.md |
| F-8 | /image/*?img_id=N के माध्यम से Image_ टेबल IDOR — कोई टोकन नहीं, prefix-swap द्वारा prefix-स्कोप्ड जाँचों को बायपास, अनुक्रमिक ids गणनीय | मध्यम | कोई नहीं | ✅ | verified/f-8-image-idor.md |
| F-11 | SimpleCaptcha = 4-अंकीय PIN, गलत अनुमानों पर कभी अमान्य नहीं होता, guest काउंटर कभी बढ़ता नहीं → ~5k-request ब्रेक | मध्यम | कोई नहीं | ✅ | verified/f11-f12-captcha-reminder.md |
| F-12 | भूला-पासवर्ड: user enumeration + reminder-answer oracle बिना captcha (fresh-session बायपास); खाली answer query-less खातों के लिए वास्तविक रीसेट टिकट जारी करता है | मध्यम-उच्च | कोई नहीं | ✅ | verified/f11-f12-captcha-reminder.md |
| F-13 | Web Content Display request-param override (groupId/articleId/ddmTemplateKey) → गैर-guest लेखों का cross-site पठन (journal.article.view.permission.check.enabled=false डिफ़ॉल्ट) | उच्च | कोई नहीं (guest पेज पर WCD की आवश्यकता) | ✅ | verified/F-13-wcd-param-override.md |
| F-3 | OSGi axis-extender मॉड्यूल SOAP सेवाओं पर ServiceAccessPolicy / remote-access मार्किंग छोड़ देता है | मध्यम (WSDD मॉड्यूल के साथ उच्च) | कोई नहीं | 🔬 | judge/axis-spring-remoting.md |
| F-9 | OpenID assertion सत्यापन से पहले पीड़ित खाते को हमलावर के OpenID से जोड़ देता है → account takeover | उच्च | कोई नहीं (OpenID सक्षम, गैर-डिफ़ॉल्ट) | 🔬 🧪 | judge/sso-autologin.md |
| F-10 | TunnelServlet readObject केवल क्लास ब्लैकलिस्ट द्वारा संरक्षित; क्लासपाथ पर ROME/JdbcRowSetImpl/c3p0/AspectJWeaver gadgets | क्रिटिकल संभावित | विश्वसनीय peer (shared secret + allowed host) | ✅ बैरियर pre-auth पर बरकरार | verified/f10-f20-tunnel-auth-pipeline.md |
| F-14 | TokenAutoLogin एक नंगे SM_USER हेडर पर भरोसा करता है (कोई सत्यापन नहीं, कोई IP allowlist नहीं) | मध्यम | कोई नहीं (token SSO सक्षम, गैर-डिफ़ॉल्ट) | 🔬 🧪 | judge/sso-autologin.md |
| F-15 | Site-admin LAR इम्पोर्ट RolesAdminPortletDataHandler को तस्करी करता है → बड़े पैमाने पर company-role विलोपन / permission मिटाना | मध्यम | site admin | 🔬 | judge/export-import-lar.md |
| F-16 | OpenSocial (डिफ़ॉल्ट बंडल में नहीं): pre-auth makeRequest SSRF, /gadgets/ifr origin JS, forgeable सुरक्षा टोकन → impersonation, stored XSS | उच्च ×4 | कोई नहीं / site सदस्य | 🔬 (डिप्लॉयमेंट-सशर्त) | judge/opensocial-shindig.md |
| F-17 | WSRP (डिफ़ॉल्ट बंडल में नहीं): pre-auth ProxyServlet SSRF; markup endpoint → मनमाना portlet render + layout typeSettings persistence | मध्यम | कोई नहीं | 🔬 (डिप्लॉयमेंट-सशर्त) | judge/wsrp.md |
अस्वीकृतियों सहित पूर्ण क्यूरेटेड सूची: FINDINGS.md · विस्तृत रिपोर्ट: REPORT.md
prior art के रूप में उपयोग किए गए ~50 ज्ञात Liferay 7.0.x मुद्दों की सूची: PRIOR-ART.md
(OSV [email protected], NVD sweep, Code White / CERT-EU सलाहकार)।