Уязвимость в uBlock Origin, приводящая к краху или исчерпанию ресурсов

Уязвимость в uBlock Origin, приводящая к краху или исчерпанию ресурсов

В системе блокирования нежелательного контента uBlock Origin выявлена уязвимость, позволяющая добиться краха или исчерпания памяти при навигации по специально оформленному URL, в случае подпадания данного URL под фильтры строгой блокировки ("strict blocking"). Уязвимость проявляется только при прямом переходе на проблемный URL, например при клике по ссылке.

Уязвимость устранена в обновлении uBlock Origin 1.36.2. Аналогичной проблеме также подвержено дополнение uMatrix, но его сопровождение прекращено и обновления больше не выпускаются. Обходные пути защиты в uMatrix отсутствуют (изначально предлагалось отключить все фильтры строгой блокировки через вкладку "Assets", но эта рекомендация была признана недостаточной и создающей проблемы для пользователей с собственными правилами блокировки). В ηMatrix, форке uMatrix от проекта Pale Moon, уязвимость устранена в выпуске 4.4.9.

Фильтр строгой блокировки обычно определяется на уровне доменов и подразумевает запрет любых соединений, даже при прямом переходе по ссылке. Уязвимость вызвана тем, что во время перехода на страницу, подпадающую под фильтр строгой блокировки, пользователю отображается предупреждение, в котором приводятся сведения о заблокированном ресурсе, в том числе показывается URL и параметры запроса. Проблема в том, что uBlock Origin разбирает параметры запроса рекурсивно и добавляет в дерево DOM без учёта уровня вложенности.

При обработке специально оформленного URL в uBlock Origin для Chrome можно вызвать крах процесса, в котором выполняется браузерное дополнение. После краха, до тех пор пока процесс с дополнением не перезапустится, пользователь остаётся без блокировки нежелательного содержимого. В Firefox наблюдается исчерпание памяти.

Дополнение: В NoScript некоторые пользователи отмечают наличие ошибки, приводящей при открытии некоторых сайтов к 100% загрузке CPU в Firefox.