剣 KENSAI
क्रिटिकल CVE-2025-24813 मार्च 2026 · 8 मिनट पढ़ें

CVE-2025-24813: Apache Tomcat Partial PUT RCE

Apache Tomcat में एक क्रिटिकल भेद्यता सिर्फ़ दो HTTP रिक्वेस्ट का उपयोग करके अनऑथेंटिकेटेड रिमोट कोड एक्ज़ीक्यूशन की अनुमति देती है। यह हमला एक सीरियलाइज़्ड Java ऑब्जेक्ट अपलोड करने के लिए Tomcat की partial PUT सुविधा का शोषण करता है, फिर GET रिक्वेस्ट के ज़रिए डिसीरियलाइज़ेशन ट्रिगर करता है। CVSS 9.8। यह डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ Tomcat 9, 10, और 11 को प्रभावित करता है।


9.8
गंभीर
विशेषतामान
CVE IDCVE-2025-24813
CVSS VectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-502: अविश्वसनीय डेटा का डिसीरियलाइज़ेशन
प्रकाशित10 मार्च 2025
शोषणसक्रिय — 30 घंटों के भीतर सार्वजनिक PoC जारी

CVE-2025-24813 क्या है?

Apache Tomcat "partial PUT" का समर्थन करता है — एक HTTP सुविधा जो क्लाइंट को Content-Range हेडर का उपयोग करके बड़ी फ़ाइलों को खंडों में अपलोड करने देती है। Tomcat इन आंशिक अपलोड को एक वर्क डायरेक्टरी में टेम्पररी फ़ाइलों के रूप में स्टोर करता है। यह भेद्यता इस इम्प्लीमेंटेशन में दो ख़ामियों से उत्पन्न होती है:

  1. टेम्पररी फ़ाइल का नाम अपलोड URL पाथ से लिया जाता है, जो आंशिक रूप से हमलावर-नियंत्रित होता है
  2. अगर Java सेशन-पर्सिस्टेंस तंत्र सक्षम है (सेशन को फ़ाइलों में स्टोर करना), तो Tomcat वर्क डायरेक्टरी की किसी भी उस फ़ाइल को डिसीरियलाइज़ कर सकता है जिसका .session एक्सटेंशन हो

हमलावर इन ख़ामियों को मिलाकर एक दुर्भावनापूर्ण सीरियलाइज़्ड Java ऑब्जेक्ट को आंशिक अपलोड के रूप में छिपाकर अपलोड कर सकता है, फिर एक ऐसा URL रिक्वेस्ट करके उसका डिसीरियलाइज़ेशन ट्रिगर कर सकता है जिसे Tomcat सेशन-लुकअप के रूप में समझता है।

🚨 30 घंटों के भीतर सार्वजनिक PoC

CVE-2025-24813 के खुलासे के लगभग 30 घंटे बाद GitHub पर एक काम करने वाला एक्सप्लॉइट प्रकाशित हुआ। दो-रिक्वेस्ट वाला यह हमला स्वचालित करना बेहद आसान है, और कुछ ही दिनों में बड़े पैमाने पर शोषण-कैंपेन देखे गए। डिफ़ॉल्ट कॉन्फ़िगरेशन वाला कोई भी अनपैच्ड इंटरनेट-फ़ेसिंग Tomcat सर्वर भंग माना जाना चाहिए।

प्रभावित वर्ज़न

Tomcat वर्ज़नप्रभावित रेंजफ़िक्स्ड वर्ज़न
Apache Tomcat 11.x11.0.0-M1 से 11.0.2 तक11.0.3+
Apache Tomcat 10.x10.1.0-M1 से 10.1.34 तक10.1.35+
Apache Tomcat 9.x9.0.0.M1 से 9.0.98 तक9.0.99+

RCE के लिए पूर्व-शर्तें: दोनों शर्तें सत्य होनी चाहिए:

पूर्व-शर्तों पर नोट: कुछ स्रोतों ने शुरुआत में बताया कि पूर्व-शर्तें सख़्त थीं। हालाँकि, असल-दुनिया के विश्लेषण से पता चला कि कुछ आम Tomcat कॉन्फ़िगरेशन (कुछ एप्लिकेशन-सर्वर डिस्ट्रीब्यूशन सहित) दोनों शर्तें पूरी करते हैं। फिर भी पैच करें — CVSS स्कोर सबसे बुरी स्थिति को दर्शाता है।

दो-रिक्वेस्ट वाला हमला

# Request 1: Upload malicious serialized object as partial PUT
PUT /.xxxxx HTTP/1.1
Host: target.com
Content-Type: application/octet-stream
Content-Range: bytes 0-1233/1234
Content-Length: 1234

[serialized Java gadget chain payload — e.g., Commons Collections]

# Tomcat stores this as a temp file in work directory
# File name derived from URL: .xxxxx → stored as partial upload

# Request 2: Trigger deserialization via session lookup
GET /.xxxxx HTTP/1.1
Host: target.com
Cookie: JSESSIONID=.xxxxx

# Tomcat looks up session file matching the session ID
# Finds attacker's file → deserializes it → RCE

Tomcat एक उच्च-मूल्य वाला लक्ष्य क्यों है

Apache Tomcat दुनिया भर में सबसे व्यापक रूप से डिप्लॉय किए गए Java एप्लिकेशन सर्वरों में से एक है, इनमें उपयोग किया जाता है:

Tomcat में RCE का अक्सर मतलब है डेटाबेस क्रेडेंशियल्स, इंटरनल API, और उस पर चल रहे एप्लिकेशन द्वारा स्टोर किए गए संवेदनशील बिज़नेस डेटा तक पहुँच।

पहचान

# Check Tomcat version
/opt/tomcat/bin/version.sh
# or check catalina.jar manifest
unzip -p /opt/tomcat/lib/catalina.jar META-INF/MANIFEST.MF | grep Implementation-Version

# Check for suspicious partial PUT uploads in access logs
grep 'PUT' /opt/tomcat/logs/localhost_access_log.* | grep -v '200\|201\|204'
grep 'PUT.*Content-Range' /opt/tomcat/logs/localhost_access_log.*

# Check for unusual files in Tomcat work directory
find /opt/tomcat/work -name "*.session" -newer /opt/tomcat/conf/server.xml
find /opt/tomcat/work -type f -newer /opt/tomcat/conf/server.xml

# Check if default servlet write is enabled
grep -r "readonly" /opt/tomcat/conf/web.xml /opt/tomcat/webapps/

सुधार

  1. तुरंत पैच करें: Tomcat 9.0.99+, 10.1.35+, या 11.0.3+ में अपग्रेड करें
  2. डिफ़ॉल्ट सर्वलेट राइट अक्षम करें (अगर ज़रूरत न हो):
    <servlet>
      <servlet-name>default</servlet-name>
      <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
      <init-param>
        <param-name>readonly</param-name>
        <param-value>true</param-value>  <!-- Ensure this is true -->
      </init-param>
    </servlet>
  3. फ़ाइल-आधारित सेशन-पर्सिस्टेंस अक्षम करें: इन-मेमोरी या डेटाबेस सेशन-पर्सिस्टेंस पर स्विच करें
  4. WAF नियम डिप्लॉय करें: ऐसे HTTP PUT रिक्वेस्ट ब्लॉक करें जिनमें Content-Range हेडर हो, अगर ज़रूरत न हो
  5. Java डिसीरियलाइज़ेशन फ़िल्टर का उपयोग करें: डिसीरियलाइज़ेबल क्लास को प्रतिबंधित करने के लिए Java 9+ सीरियलाइज़ेशन फ़िल्टर कॉन्फ़िगर करें

KENSAI पहचान क्षमता

हमलावरों से पहले अपने उजागर Tomcat सर्वर खोजें

KENSAI आपके एनवायरनमेंट में हर Apache Tomcat इंस्टेंस की पहचान करता है और CVE-2025-24813 तथा अन्य क्रिटिकल Java एप्लिकेशन-सर्वर भेद्यताओं के लिए परीक्षण करता है।

Tomcat भेद्यताओं के लिए स्कैन करें →

संबंधित लेख

FortiClient EMS sotto attacco attivo, la Commissione europea subisce una violazi CVE-2025-21418: Windows AFD.sys Privilege Escalation Zero-Day रीडायरेक्ट हो रहा है...