Dahua DSS Software 12 Vulnerabilities Discovered and Analyzed
* ***** ** ** **** (* Critical, * ****, *** * ******) were ********** ** ** **** ************* audit *******'* ******** ****** (***)******** ******* *.*.* ** *.*.*.
** ******** ** ***** ***** ** October **** ******** ******** *** ******** ******** ** December **, ****(******** ******* ******** ** ***** *******).
****** *** ********, **** ***** ******* security *************** **** ***** ** ******* together, ********* ** * ******** ******** of *****'* *** ******, ********, *****, and ***** ********, ********* *** ********** operating ******. ************, * ****** ** hidden ********, **** ** ***** ***** Server-Side ******* ******* (****), ****** **** Execution (***), *** ********* **** ********, can ** **** *** *********** ****** of ******* (****) *******.
** **** ******** ******, **** ******** the *************** *** ****** * ****** proof ** ******* **** * *********** of *** *************.
Disclosure *******
*** ********** ******* **** ***** ***** following ****'* ******* ******* ** ******* 2022, ***** **** *** ************* ****** and ***** ** *******, **** ********** smoothly, **** **** * *** **************. Dahua ******** *********** ******** ** ******** **, ********* **** **** **** ** ******** products.
******
*** ****** ** *********** ********** *** accessible ***** ** *** ******** ** not ****, +*,*** ** *** ** seen ** *** ****** ****** *****.
*******, **** ** ***** ******* ******* dozens, ********, ** **** ********* ** cameras, ** **** ******* ** ******** to ** **** ** ******-*** ************ that **** ******* ************* *** *********** than ************ *** **********.
Proof ** ******* **** ****
*** ****** *** *** ***** ***/*** vulnerabilities******* *** ***** ** *** ** the ******** *******.
*** *** ** ******* ** ****** 3, **** *** ********* *** **********:
- *** **** **** * ***** ******* of *** **** ******** (*****) ********* to ******* *** **** **** **** to ******* *** *** ********. **** is *** ** ***-*** ******** ***** by *****. ***** *** ******* *** is **** *** ********** *** ****** key *** **********.
*** **** **** ******* **, *** then *** *** ******** **** *** be *********.
- *** **** ************ ** *******-***** *******, the ****** ********** "**.***" *** ***********, gzipped, ****** *******, *** ******** ** the ***.
****** **** *** ***** *********** ************ are ******** ** *** ***, ***********, and *********** ** *** ******** "**.***" is ******** *********** ****** ***.
** *** ****** ** ** *** want ** *******:
- *** *** ** **** *** ****
- ****** **** "**.***" *** *** ********* SHA256 ****:**************************************************************
- *** *** **** ** ***-********** ********
********** ******* **** * *** ** 72 ******** ******* **** "**.***" ** malicious.
Proof ** ******* *********
******* *** ******** ** *** **** takeover ** ***** *** *** ****** including *** ********** **, ***** ******** only *** ** ******* (**** ** not ******* *****/***) ***** ******* ** the ******** **** *** ******* ** chain ****.
- ******* *** ****** ***********
- **** ******* *** ****** *** ********** the ******** **
- **** ******* *** ***** ******** ******
- ******* *** ****** **** ***********
- ******* *** ****** *** *** ***/** providing ****** *** *** *** *******
- ******* **** *********** **** ********* *** CBC ***/**
- ******* ** *** ****** ******** ******* and ******** *** ***** *****
*** *** **** ********** *** *** Super ***** *** ******* ******** ** the ********* ********* ** ******** *** Redis *** ***** *********** *** *** to ******* **** ***** *** ***** services.
** *** ********** ** ***** ***/** MySQL ******** *****, ** ***** **** the *******/***** ******** ** ********* (***** is *** **** ** *******).
*** ******** * ********** ********** **** Redis *** ***** ********, *** *** will *********** ********** *** ******** ****:
- ***-****-*****, ************ **** ******** *** ********* the *********** ****
- ***-****-*****, ************ **** ****** *** *********** one **** *** ********** *** *******.
- ***-****-*****, **** ******* *** ******** ******* the ********* *******.
*** *** **** ******* ** *** Redis ****** ** ******** *** *** & ** ********* *** *******/****** **** from *** ***** ***** *** ******* AES ***/** **** *** ********* *** private ***.
*** *** **** ******* ** ***** database *** **** *** ***** *** private & ****** **** ********* *****, decrypt **** ***** **** ******** *** CALL *** ***.
******, *** *** **** *** **** delivery ****** ** ****** *** ********* the *********** **** *** ******** *** firewall ************* *****.
Optional *** ********
**** **** ***** *****
- ******** ******* (*******/*****)
- **** *** ****** ******* (*******/*****)
- **** *** ****** ***** (*******/*****)
- *** *** ************* **** **** *****/********: pwn/pwn (*******/*****)
- ********* ********* (*******/*****)
**** ******* ***** *****
- **** ******* ***********
- ***** ******* *** ***/***** ****** *** Enable / ******* **** (*****)
- ***** ******* *** ***/***** ****** *** Reboot (*****)
- ***** ******* *** ***/***** ****** *** do ********** ** ****** (*******)
- ***** ******* *** ***/***** ****** *** do ****** *** ******* (*******)
- ***** ******* *** ***/***** ****** *** do **** ** ****** (*******)
***************
*** **** *********** *************** ********** ***:
- ***-****-*****, *************** ******* ********* **** ***********, where *** ******** *** **** *********** generated *** ****** ************ *** ** AES *********.
- ***-****-*****, *************** ******* ********* *** ******** AES **** ** ******* *** **** password, ***** *** **** *********** ********* per ****** ************.
- ***-****-*****, ******-**** ******* ******* (****) ** exploit ****** ** ***** ********* ******** via ***.*.*.*, ***** ****** ** ******* directly **** *** ********* ******'* *****-** firewall ** ****** **, ** **** as ** ***** ******** ***** ** well ** ******** *****.
*** ***** **** *** ** ******** the ********** ********* ******** ************** *** *** ******** ******. Since ** ******* **** **** *********** to *****, *** ****** **** ** using *** ***** ******, *** *** the ******* **** ******* **** ******, because ** **** ** **** *** request ******* ** **** *** *** encoded ** *****, ***** ****** *** not ** ** ******** **** *** MQTT ******.
**** ******** **************, ** *** ************ ********* ** super ***** *** **** ** ******** have **** ******* **** *** ******.
*** ****** **** *** ** *** Remote **** ********* (***) ************* **** the ******** *** ******** ***** *********** *******. **** *** ******** ** chaining ******** * ***** *********** ***************, where ** ***** ** ********** *** operating ******'* *****-** ********.
**** ** ** **** ****** ** the ***** *** ***** ******* *** productively *** *** *********** ******** **** superadmin **********.
**** *** ************* ** *********** ***** three ********* *************** (***-****-*****, ***-****-*****, ***-****-*****), so *** *** ***** ***** **** this *** ****** ** ******** * CVE ******.
***-****-*****
***** ***/****/***/**.*/***/******/************** **** *** ********** ********* **** credentials.
**** *** **** *** ************* ************ excluded **** *** ************** ** **********.****
- ***-***: ******** ****** *******
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
***** ***/****/***/**.*/******/*******/***/*********** **** *** ********** *** *** server ************ *********** ********* *** *** and **.
**** *** **** *** ************* ************ excluded **** *** ************** ** **********.****
- ***-***: ******** ****** *******
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
*** ****** *** ************************************** ********************* ***** ** ** **** *** various **** **********/********** ***** *** ******** encryptByAesCbcGDPR()
- ***-***: *** ** ****-***** ************* ***
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
***** ***/****/***/**.*/*******/****/****?********* **** ******** **** ********** ********* per *** ****** ************ *********** ********* AES *** *** ** ** ******* the *******, ***** *** ********** *** dot-dot-slash (../) *** ******** **** *** request ** ********* ** *** *** Server.
- ***-**: ******** ******* ** **** **** or ****
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
***** ***/****/***/**.*/*******/********* **** ******** **** ******* ******* ZIP *******, ***** ** *** ********* for ***-***-***** (../) *** ********, **** the *** ******* ** ******** ** the *** ******.
- ***-***: ************ ****** ** **** **** Dangerous ****
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
******** ************* ********* ************* *** ***** in *** *** ******, ***** *** reachable ***** ********** *** ***** ***** unauthenticated. *** *** **** *** *** developer ********* *** ********** ********* ***** and ***** ***********.
- ***-***: ******** ** ********* *********** ** an ************ *****
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
***** *****/**/******* **** ** *****.****, ****** *************** remote ***** ******** *** *** ****** with ****** ****/***** ********.
- *** ***.*.*.* ** ***** ******** ******** protected ********
- ******** ***** ****** *** ******* *******(*)
- ******** ******** *****
** ****** ** ***** **** **** the *****-** ******** *** **** ******** with ** ********, ********** ***-****-***** ** not ******** ** ***** ******** ********.
- ***-***: ******-**** ******* ******* (****)
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
********-****-******** ********** ** ********/****/***/**.*/********/******?************ **** ***** ****** ****** *************** enable *** ******* ** *** ******'* SSH ******.
****: ***** ***** ****** ****
- ***-***: ******** ****** *******
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
********-****-******** ********** ** ********/****/***/**.*/******/********** **** ***** ****** ****** *************** restart ** *** ****** *** ****** underlaying ********* ******.
****: ***** ***** ****** ****
- ***-***: ******** ****** *******
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
********-****-******** ********** ** ********/**********/**************?********** **** ***** ****** ****** *************** search *** ***** *******.
****: ******* ***** ****** ****
- ***-***: ******** ****** *******
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
********-****-******** ********** ** ********/**********/*******?******** **** ***** ****** ****** *************** search *** ***** *******.
****: ******* ***** ****** ****
- ***-***: ******** ****** *******
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)
***-****-*****
********-****-******** ********** ** ********/**********/****?******** **** ***** ****** ****** *************** ICMP ********.
*** **** ************** ** ********.*** ** without *** **********, ***** *** ** used ** ******* **** ***** **** attack.
***** **** ***** ********** ******** ** ping **,***,*** ***** **** *** ***** in **** **** ******* ** ** average ******* ******* ******* *** ******* using **** *** **** ******** ** 98% *** *********** *** +*** **** network ***********.
**** *** **** ** ***** *** attacked ****** ******* *********** **** *** +500 **** ******. *** *** ******* indicates *** *** *** **** ********* "Video ****"
****: ******* ***** ****** ****:
- ***-***: ********** ** ********* ******* ****** or **********
- **** *****: *.*(**:*/**:*/**:*/**:*/*:*/*:*/*:*/*:*)