LINUX.ORG.RU

Критическая уязвимость сразу во всех распространённых браузерах

 , ,


6

5

Компания Google опубликовала информацию и уже закрыла уязвимость в библиотеке libwebp, которая могла приводить к удалённому выполнению кода, когда пользовать просто открывает сайт. Библиотека libwebp используется во всех браузерах на движке Chromium, а также в приложениях на базе electron, в браузере Mozilla Firefox, Gimp, Inkscape, LibreOffice, Telegram, Thunderbird, ffmpeg и другом программном обеспечении. Затронуты также и другие операционные системы.

Суть уязвимости в переполнении буфера, которая позволяет злоумышленнику подготовить специальное WebP изображение, при открытии которого на машине пользователя выполнится код. Google не раскрывает подробности механизма эксплуатации уязвимости, но утверждает, что в сети уже доступны рабочие эксплоиты, основанные на ней.

Всем пользователям рекомендуется обновиться как можно скорее.

>>> Подробности

★★★★★

Проверено: unfo ()
Последнее исправление: hobbit (всего исправлений: 4)
Ответ на: комментарий от Smacker

В этой цепочке не хватает «сами написали эксплоит». Либо гугл об этом умалчивает.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от grem

Не знаю насчет фич c++, но вот то что они PGO профиль для clang 17 стали класть, когда еще только 16 вышел, это доставляет.
Приходится держать отдельный clang для сборки chromium.

arax ★★
()
Ответ на: комментарий от antech

но никто не замечает….

Да все замечают. Но что на это капитанство отвечать? Каждому «да, так и есть» отписать? Как-то тупо. Ну сейчас вот реакции есть — можно просто два чая поставить.

CrX ★★★★★
()
Ответ на: комментарий от arax

Браузеры поддерживают не только линукс, да и в зоопарке дистрибутивов линукс версии библиотек могут быть разные, поэтому единственный выход носить все с собой.

Или юзать генту с юз-флагами system-всёподряд.

pr849
()
Ответ на: комментарий от monkdt

все что хотел сказать сказал, чего не хотел не сказал. можете слушать кого угодно.

antech
()

А в android libwebp в каком виде живет? Внутри apk или в системном sdk?

Не могу понять насколько там все плохо.

Tanger ★★★★★
()
Ответ на: комментарий от grem

Где-то видел упоминание, что гугл в процессе разработки chromium очень любит использовать самые распоследние фичи C++, в том числе те, которых нет в стабильных версиях gcc и clang.

Нет, они используют С++17.

https://chromium.googlesource.com/chromium/src/+/refs/heads/main/styleguide/c++/c++-features.md

Просто они собирают это на nightly clang и libc++ и репортят если разработчики clang/libc++ что-то сломали, или вдруг performance упал заметно.

А сами фичи С++ используют довольно старые…

fsb4000 ★★★★★
()
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от Tanger

А в android libwebp в каком виде живет? Внутри apk или в системном sdk?

Я тебе по опыту могу сказать, что libvpx (VP8, VP9 кодеки) тащат в apk, а не в системе, поэтому не сложно предположить, что в приложениях не системная либа webp. Но ты тут всё равно никуда не денешься. Часть приложений стоит и не обновляются, часть крякнутые пиратские. А если таки в системе, то хоть застрелись, но прошивка у тебя на веки старая. Хочется пофиксить дыру - покупай новый телефон без какой либо гарантии. Быдлу норм, рыночек порешал.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 1)
Ответ на: комментарий от posixbit

Собрать то можно, а вот как на сяоми с заблокированным загрузчиком поставить, а? И везде вот эта хрень.

Даже если загрузчик разблокирован, никакой гарантии, что железо будет поддерживаться.

Skullnet ★★★★★
()
Последнее исправление: Skullnet (всего исправлений: 2)

WebP

sudo pacman -Syyu
[sudo] пароль для arch:
:: Обновление баз данных пакетов...
 core                  127,6 KiB   354 KiB/s 00:00 [######################] 100%
 extra                   8,3 MiB  7,39 MiB/s 00:01 [######################] 100%
:: Запускается полное обновление системы...
разрешение зависимостей...
проверка конфликтов...

Пакеты (2) curl-8.3.0-1  libwebp-1.3.2-1

Будет загружено:    1,52 MiB
Будет установлено:  3,01 MiB
Изменение размера:  0,04 MiB

:: Приступить к установке? [Y/n]
amd_amd ★★★★★
()
Ответ на: комментарий от Skullnet

Собрать то можно, а вот как на сяоми с заблокированным загрузчиком поставить, а?

Прочитать инструкцию на сайте LineageOS.

Rabinovich
()
Ответ на: комментарий от CrX

незнаю когда так говоришь, сразу начинается ты ШО, он от отдельного юзера в песочнице, супер защищеный. а сейчас можно сказать «я же говорил» )

antech
()
Ответ на: комментарий от antech

И чем жирнее и больше оно будет становиться (а оно и будет жирнее и больше), тем больше там дыр будет, потому что сложность системы обатно пропрорциональна надежности. И переписывание все на rust не факт что что-то изменит.

rumgot ★★★★★
()

Суть уязвимости в переполнении буфера

Heh, classic.

WatchCat ★★★★★
()

никогда такого не было и вот опять

alll81
()
Ответ на: комментарий от Ghostwolf

Ну несколько минут. Которые я все равно не готов пожертвовать из своего свободного времени. Buffer overflow частая ошибка при изучении жабы ее все знают. Другое дело см дискуссию выше

monkdt
()
Ответ на: комментарий от bender

Эксплуатировало, скорее всего, какое-нибудь агентство из трёх букв. У них там этого добра навалом.

Smacker ★★★★★
()
Ответ на: комментарий от Smacker

у агенств из трех букв нет таких потребностей. У них есть пушки. им нет никакого смысла искать щелочки и дырочки они могут просто в приказном порядке распорядится чтобы им организовали парадный вход. дырочки наоборот представляют огромную угрозу именно для них.

antech
()

Библеотеку писал я. Но байден всегда на шаг впереди.

xaTa ★★★★
()

Они случайно не для этого всех пытались насильно заставить использовать webp вместо png, gif, jpg?

zx_gamer ★★★
()
Ответ на: комментарий от Skullnet

Тогда уж контейнеры. Умные указатели просто гарантируют освобождение памяти при выходе из блока (std::unique_ptr) или когда не останется ни одного умного указателя, которые указывают на объект (std::shared_ptr).

zx_gamer ★★★
()
Ответ на: комментарий от superuser

А у условного Rust стек не ломается?

Попробуйте откомпилировать

fn main() {
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((
(((((((((((((((((((((((((((((((((((((((((((((((((((((((((
}

и таких скобочек например 1000 строчек. Вы удивитесь, но rustc, который написан на Rust, упадет, потому что стек кончится.

zx_gamer ★★★
()
Ответ на: комментарий от t184256

В нем есть отверстие с удалённым добавлением произвольных корневых сертификатов

То есть вот кому угодно раз, и добавили? Или ты имеешь ввиду в код, а потом обновление? Так в Мозиллу тогда уже давным давно добавляют.

AS ★★★★★
()
Ответ на: комментарий от zx_gamer

Это да, но я не понимаю ход мыслей вопрошающих. В смысле что любой может с сайта залезть в локальную файловую систему (нет) или разрабы сами сделали из бровзера троян? Фокс и хром есть опенсурс, поэтому вряд-ли.

Будет смешно если сам автор коммента про троян использует браузер для онлайн бэнкинга ))

monkdt
()
Ответ на: комментарий от antech

Ну так как знать, как знать. Может эта дырочка так и появилась на свет после визита группы товарищей из Лэнгли. А после исчерпания полезности — или из-за незапланированного обнаружения и придания огласке — пришлось срочно закрывать.

Smacker ★★★★★
()
Ответ на: комментарий от cumvillain

А почему нельзя просто сразу писать нормальный код, ведь уязвимость таки была закрыта, значит она закрываема, значит если внимательно писать код, тесты, или ревьюверу его внимательно проверять, то уязвимостей не будет, а если писать тяп-ляп, то тут и Rust не поможет. Как писал классик:

Что такое эта ваше «переполнение буфера»? Старуха с клюкой? Ведьма, которая выбила все стекла, потушила все мониторы? Да его вовсе не существует! Что вы подразумеваете под этим словом? – Это вот что: если я, вместо того, чтобы вдумчиво писать код, каждый вечер начну у себя в квартире пить смузи, у меня настанет переполнение буфера. Если я, программируя, начну, извините меня за выражение, опускать проверки входных данных на длину и то же самое будут делать тестировщик и ревьювер, в программе начнется переполнение буфера. Следовательно, переполнение буфера не в ЯП, а в головах. Значит, когда эти баритоны кричат «Ответ: Rust!» – я смеюсь.
mydibyje ★★★★
()
Ответ на: комментарий от mydibyje

Не путайте несовершенство с проф. непригодностью.

Не тролль нас настолько жирно, пожалуйста.

cumvillain
()
Ответ на: комментарий от greenman

Там весь браузер по сути уязвимость

xaTa ★★★★
()
Ответ на: комментарий от AS

Нет, не как Mozilla, которая ведёт по сути сути самую в мире доверенную программу по отбору, каким CA доверять, а каким — нет, и использующая CA store твоего дистра (который все равно берет его у мозиллы, но доверяешь ты, получается своему дистру). А полноценный бэкдор, который без всякого там апдейта присосет тебе новый национальный корневой сертификат, когда скажут.

При том, что само наличие наших национальных CA в нем — уже достаточный зашквар.

t184256 ★★★★★
()

А где вообще актуальна эта уязвимость? Ведь по-идее на любом чайнике сейчас есть аппаратная защита от выполнения данных?

faq2
()

Кто-нибудь понял алгоритм в комитах «фиксов»? Может там новая уязвимость добавлена?

gtk222
()
Ответ на: комментарий от t184256

Нет, не как Mozilla, которая ведёт по сути сути самую в мире доверенную программу по отбору, каким CA доверять, а каким — нет

И они добавили сертификат TrustCor. Самая доверенная в мире программа по отбору, my ass, добавляет сертификат от фирмы, зарегистрированной по фейковому адресу. Даже по гугл-картам не проверили. А потом в интернете вдруг стали появляться сертификаты от TrustCor на любые сайты, ну кто бы мог подумать.

А ЦРУ сказало: а чо, а мы тут причём, действительно.

А полноценный бэкдор, который без всякого там апдейта присосет тебе новый национальный корневой сертификат, когда скажут.

Это примерно как у людей (в т.ч. меня) в Firefox пропал настроенный поиск по умолчанию, без обновления и даже без перезагрузки? Это примерно как некоторому проценту пользователей Firefox вдруг прилетело из интернета расширение, которое они не ставили?

Нет-нет, Mozilla не может таким заниматься.

При том, что само наличие наших национальных CA в нем — уже достаточный зашквар.

А наличие ваших национальных CA видимо, нет. Это Другое, Понимать Надо!

Aceler ★★★★★
() автор топика
Ответ на: комментарий от t184256

При том, что само наличие наших национальных CA в нем — уже достаточный зашквар.

А наличие не пойми чьих сертификатов в Мозилле нет, ага.

AS ★★★★★
()
Ответ на: комментарий от cumvillain

А зачем выходить за границы стека, если все самое интересное находится в его границах? Например, адрес возврата?

У Эльбруса АФАИК отдельный стек вызовов, его нельзя модифицировать.

GAMer ★★★★★
()
Ответ на: комментарий от Aceler

И они добавили сертификат TrustCor.

И убрали.

Самая доверенная в мире программа по отбору, my ass

Consider offering your ass to the vendors, and maybe they’ll switch over =D

t184256 ★★★★★
()
Ответ на: комментарий от GAMer

У Эльбруса АФАИК отдельный стек вызовов, его нельзя модифицировать.

Насколько я помню, у него тот же самый shadow stack, что у Intel. Я приводил ссылку выше, это уже поломали :D

cumvillain
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.