Работещо доказателство за концепция (proof-of-concept) за сериозна уязвимост в AnyDesk за Linux позволява на отдалечени атакуващи да изпълняват команди като root без автентификация или одобрение от потребителя.

Проблемът, наречен AnyPwn, засяга AnyDesk Linux 8.0.2 и е коригиран във версия 8.0.3. Организациите, използващи AnyDesk за Linux, трябва незабавно да инсталират корекции за сигурност и да проверят дали TCP порт 7070 е изложен към ненадеждни мрежи.

Уязвимостта е открита от Рик де Ягер от екипа по сигурност V12 с помощта на V12 – платформа за преглед на сигурността, задвижвана от изкуствен интелект. V12 за първи път оповести публично проблема през юни и го описа като zero-day уязвимост за отдалечено изпълнение на код без автентификация (zero-click), причинена от препълване на хийп буфера (heap buffer overflow).

От AnyDesk потвърдиха доклада на следващия ден и пуснаха актуализацията 8.0.3 през юни. Публичният код за експлоатация бе публикуван по-късно на 8 октомври, насочвайки отново вниманието към системи, които все още могат да работят със по-старата версия за Linux.

Уязвимост в AnyDesk Linux

Според техническата документация, публикувана от V12 Security, проблемът съществува в сесийния протокол на AnyDesk, който управлява обмена на данни, докато отдалечен клиент се свързва с услугата.

В засегнатата версия манипулаторът на пакети от поток с режим 5 приема дължина на отдалечения злонамерен код, преди безопасно да я валидира. След това софтуерът добавя 16-байтово заглавие на обект към тази стойност с помощта на 32-битова аритметика.

Специално формирана дължина може да накара това изчисление да превърти, което кара приложението да резервира много малка област от паметта, докато все още я третира като много по-голям обект.

Това разминаване създава условие за запис извън границите. Казано просто, атакуващият може да изпрати малък мрежов пакет, който казва на AnyDesk да очаква огромно количество данни. Уязвимата услуга след това записва контролирани от атакуващия данни отвъд малката разпределена област от паметта.

Това може да повреди близки обекти в паметта и при подходящи условия да пренасочи изпълнението на програмата. Изследователите показаха, че проблемът може да се използва за изпълнение на произволна команда чрез услугата AnyDesk.

Въздействието върху сигурността е сериозно, тъй като услугата AnyDesk обикновено работи с привилегии на root в Linux. Root е най-високото ниво на привилегии в операционната система, позволяващо контрол върху файлове, процеси, потребителски профили и настройки за сигурност.

Атакуващ, който успешно задейства уязвимостта, би могъл да получи стабилна позиция в засегнатия хост, преди жертвата да приеме заявка за споделяне на работния плот.

Това прави този проблем много различен от много рискове, свързани с отдалечена поддръжка, които изискват откраднати данни за достъп, одобрение от потребителя или пароли за достъп без надзор.

Публикуваният експлойт е насочен към AnyDesk Linux 8.0.2, работещ в режим на услуга на x86_64 системи. Той използва директна връзка към TCP порт 7070 и зависи от специфично разпределение на паметта, което означава, че експлоатацията не е гарантирана всеки път.

Когато разпределението на паметта е неподходящо, услугата може да се срине, вместо да изпълни командата на атакуващия. Публикуваният експлойт също разчита на офсети за конкретната уязвима версия, така че не трябва да се разглежда като доказателство, че всяка версия на AnyDesk за Linux може да бъде експлоатирана по същия начин.

Има важен момент относно излагането в мрежата. Първоначално от AnyDesk заявиха, че проблемът е ограничен до директни връзки в Linux и не засяга Windows или macOS. Изследователите от V12 казаха, че също така са стигнали до уязвимия кодов път чрез AnyDesk релейни връзки, използвайки тест, базиран на Frida.

Въпреки това те не са демонстрирали пълната верига за изпълнение на код с root привилегии през релета. В резултат на това директната експозиция на TCP/7070 е потвърденият риск, докато пълната експлоатация през релейни връзки остава непотвърдена.

Администраторите трябва първо да идентифицират Linux машините, работещи с AnyDesk 8.0.2 или по-стари версии, и да ги актуализират до версия 8.0.3 или по-нова. Когато отстраняването на уязвимостта не може да стане веднага, екипите трябва да ограничат входящия достъп до TCP/7070 на защитните стени, VPN порталите и облачните групи за сигурност.

Те трябва също да прегледат логовете на услугата AnyDesk, неочаквани процеси на ниво root и изходящи връзки от системи, които са изложили порта. Регистърът на промените за Linux на AnyDesk отбелязва коригираните проблеми от разработчика, въпреки че записът описва този проблем само като грешка, която може да доведе до срив, а не като уязвимост в сигурността.

Разкритието също така се добавя към историята на сигурността на софтуера за отдалечен достъп, който често се инсталира на критично важни сървъри и се ползва с широко доверие от ИТ екипите.

Cyber Security News по-рано съобщи за отделна уязвимост в AnyDesk с публично доказателство за концепция, засягаща Windows, докато съобщения за скорошни инциденти показват как легитимни инструменти за отдалечено управление като AnyDesk могат да бъдат използвани след компрометиране за продължителен достъп.