
PJSIP cve-2026-25994 बफ़र ओवरफ़्लो POC
CVE-2026-25994 एक स्टैक-आधारित बफर ओवरफ्लो भेद्यता है जो pjsip ≤ 2.16 में ICE (Interactive Connectivity Establishment) कार्यान्वयन को प्रभावित करती है, विशेष रूप से PJNATH घटक के भीतर।
यह भेद्यता निम्न फ़ंक्शन में मौजूद है:
pj_ice_sess_create_check_list()
यहाँ स्थित:
pjnath/src/pjnath/ice_session.c
यह समस्या ICE उपयोगकर्ता नाम के निर्माण के दौरान असुरक्षित स्ट्रिंग हैंडलिंग के कारण होती है:
char buf[128]; // Fixed-size stack buffer
username.ptr = buf;
pj_strcpy(&username, rem_ufrag); // No bounds checking
pj_strcat2(&username, ":");
pj_strcat(&username, &ice->rx_ufrag);
rem_ufrag सीधे SDP विशेषता से लिया जाता है:
a=ice-ufrag:
128-बाइट स्टैक बफर में कॉपी करने से पहले कोई लंबाई सत्यापन नहीं किया जाता है
यह एक हमलावर को स्टैक को ओवरफ्लो करने की अनुमति देता है, संभावित रूप से निम्न को अधिलेखित करके:
रिटर्न पता
स्टैक फ्रेम
कैनरी / संरेखण डेटा
लंबे ice-ufrag वाला एक दुर्भावनापूर्ण SIP INVITE ओवरफ्लो को ट्रिगर करता है
विश्वसनीय शोषण ~130 बाइट्स या उससे अधिक के पेलोड के साथ होता है
व्यवहार में, ~500+ बाइट्स (जैसे, 520) लगातार क्रैश व्यवहार देते हैं
✅ भेद्य: pjsip ≤ 2.16
❌ स्थिर: pjsip ≥ 2.17
फिक्स उचित बाउंड्स जाँच प्रस्तुत करता है:
if (rem_ufrag->slen >= MAX_USERNAME_LEN ||
(rem_ufrag->slen + ice->rx_ufrag.slen + 1) >= 512)
{
return PJ_ETOOBIG;
}
सेगमेंटेशन फॉल्ट के माध्यम से सेवा अस्वीकार (DoS) निम्नलिखित पर निर्भर करते हुए रिमोट कोड निष्पादन (RCE) की संभावना:
स्टैक सुरक्षाएँ (ASLR, NX, कैनरीज़) मेमोरी लेआउट शोषण की परिष्कृतता
1.200.000 मशीनें प्रभावित
Shodan link : https://www.shodan.io/search?query=pjmedia
प्रदान किया गया PoC ओवरफ्लो को ट्रिगर करने के लिए एक अत्यधिक बड़े ice-ufrag युक्त क्राफ्टेड SIP INVITE भेजता है।
पूर्णतः सिंक्रोनस (कोई asyncio नहीं) कमांड-लाइन कॉन्फ़िगर करने योग्य स्वचालित पुनर्प्रयास यथार्थवादी SDP पेलोड टाइमआउट के माध्यम से क्रैश का पता लगाना
ICE सक्षम के साथ pjsua प्रारंभ करें:
pjsua-x86_64-unknown-linux-gnu --use-ice --local-port=5060 --log-level=5 --no-tcp --auto-answer=200
python3 pjsip.py -i <target_ip> -p 5060 -a 3
Arguments
Option Description Default
-i, --ip Target IP address 127.0.0.1
-p, --port SIP port 5060
-a, --attempts Number of attempts 3
Expected Behavior
Vulnerable Target
No response from server
pjsip ≥ 2.17 पर अपग्रेड करें
SDP विशेषताओं के लिए इनपुट सत्यापन लागू करें
स्टैक सुरक्षाओं का उपयोग करें:
स्टैक कैनरीज़ ASLR NX (गैर-निष्पादन योग्य स्टैक)
यह प्रमाण की अवधारणा केवल शैक्षिक और सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान की गई है।
इस कोड का उपयोग उन सिस्टमों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण की आपके पास स्पष्ट अनुमति नहीं है।
V.Nos