Нещодавно Павло Черемушкін пом«Лабораторія Касперського» проаналізувала різні реалізації системи віддаленого доступу VNC (Обчислення віртуальної мережі) та виявив 37 вразливих місць спричинені проблемами з пам'яттю.
Виявлені вразливості у реалізаціях сервера VNC може використовуватися лише авторизованим користувачем а атаки на вразливості в клієнтському коді можливі, коли користувач підключається до сервера, керованого зловмисником.
У блозі Касперського вони це коментуютьЦі вразливості можна використати наступним чином:
Програми VNC складаються з двох частин: сервера, встановленого на комп'ютері, до якого віддалено підключається ваш співробітник, і клієнта, який працює на пристрої, з якого вони підключаються. Вразливості набагато рідше зустрічаються на стороні сервера, що завжди трохи простіше і, отже, менше помилок. Однак наші експерти CERT виявили помилки в обох частинах розслідуваних додатків, хоча в багатьох випадках атака на сервер може бути неможливою без дозволу.
Про вразливості
Більшість вразливостей було виявлено в пакеті UltraVNC, доступний лише для платформи Windows. Загалом, в UltraVNC Виявлено 22 вразливості. 13 вразливостей можуть призвести до виконання коду в системі, 5 - витік вмісту областей пам'яті, а 4 - відмови в обслуговуванні.
Усі ці уразливості були виправлені у версії 1.2.3.0.
Перебуваючи у відкритій бібліотеці LibVNC (LibVNCServer та LibVNCClient), який використовується у VirtualBox, Виявлено 10 вразливості. 5 уразливостей (CVE-2018-20020, CVE-2018-20019, CVE-2018-15127, CVE-2018-15126, CVE-2018-6307) були спричинені переповненням буфера і могли призвести до виконання коду. 3 уразливості можуть призвести до витоку інформації; 2 до відмови в обслуговуванні.
Розробники вже виправили всі проблеми- Більшість виправлень включено до випуску LibVNCServer 0.9.12, але поки що всі виправлення відображаються лише у головній гілці та оновлюються згенеровані дистрибутиви.
У TightVNC 1.3 (випробувано застарілу гілку між платформами), оскільки поточна версія 2.x випущена лише для Windows), Виявлено 4 вразливості. Три проблеми (CVE-2019-15679, CVE-2019-15678, CVE-2019-8287) спричинені переповненням буфера в функціях InitialiseRFBConnection, rfbServerCutText та HandleCoRREBBP і можуть призвести до виконання коду.
Проблема (CVE-2019-15680) призводить до відмови в обслуговуванні. Незважаючи на те, що розробники TightVNC були повідомлені про проблеми минулого року, уразливості залишаються невиправленими.
У крос-платформенному пакеті TurboVNC (форк TightVNC 1.3, який використовує бібліотеку libjpeg-turbo), знайдено лише одну вразливість (CVE-2019-15683), але це небезпечно, і якщо є автентифікований доступ до сервера, це дозволяє організувати виконання вашого коду, так як при переповненнях буфера можна контролювати напрямок повернення. Проблема була виправлена 23 серпня і не відображається в поточній версії 2.2.3.
Якщо ви хочете дізнатися більше про це Ви можете перевірити деталі в оригінальній публікації. Посилання це.
Що стосується оновлення пакетів, то це можна зробити наступним чином.
libvncserver
Бібліотечний код вони можуть завантажити його зі свого сховища на GitHub (посилання це). Щоб завантажити найновішу версію на даний момент, ви можете відкрити термінал і ввести в нього наступне:
wget https://github.com/LibVNC/libvncserver/archive/LibVNCServer-0.9.12.zip
Розпакуйте за допомогою:
unzip libvncserver-LibVNCServer-0.9.12
Ви входите в каталог за допомогою:
cd libvncserver-LibVNCServer-0.9.12
І ви створюєте пакет за допомогою:
mkdir build cd build cmake .. cmake --build .
TurboVNC
Щоб оновити до нової версії, просто завантажте останній стабільний пакет версій, яку можна отримати з за наступним посиланням.
Завершено завантаження пакету, тепер ви можете просто встановити його подвійним клацанням на ньому і попросіть центр програмного забезпечення подбати про встановлення, або вони можуть зробити це за допомогою бажаного менеджера пакетів або з терміналу.
Вони роблять останнє, позиціонуючи себе там, де завантажений пакет знаходиться в їх терміналі, і в ньому їм залишається лише набрати:
sudo dpkg -i turbovnc_2.2.3_amd64.deb