Dark Reader — это расширение для браузера, обеспечивающее специальные возможности, которое делает цвета веб-страниц темными. Функция динамического темного режима расширения работает путем анализа цветов веб-страниц, найденных в файлах таблиц стилей CSS. Чтобы проанализировать таблицы стилей для разных источников (хранящиеся на веб-сайтах, отличных от исходной веб-страницы), Dark Reader запрашивает такие файлы через фонового работника, гарантируя, что запрос выполняется без учетных данных и что тип содержимого ответа является файлом CSS.
До версии Dark Reader 4.9.117 это содержимое стиля назначалось элементу стиля HTML для анализа и циклического анализа объявлений стиля, а также сохранялось в хранилище сеансов страницы для повышения производительности. Это может позволить автору веб-сайта запросить таблицу стилей с локально работающего веб-сервера, например, имея ссылку, указывающую на `http[:]//localhost[:]8080/style[.]css`. Перебор имени хоста, порта и имени файла маловероятен из-за влияния на производительность, что приведет к кратковременному зависанию вкладки браузера, но можно запросить таблицу стилей, если полный URL-адрес будет известен заранее.
По состоянию на 18 декабря 2025 г. сведений об уязвимостях этой проблемы нет. Проблема была исправлена в версии 4.9.117 от 3 декабря 2025 г. Таблицы стилей теперь анализируются с использованием современного API построенных таблиц стилей, и содержимое таблиц стилей перекрестного происхождения больше не сохраняется в хранилище сеансов страницы.
Версия 4.9.118 (8 декабря 2025 г.) ограничивает запросы между источниками псевдонимами локальных хостов, IP-адресами, хостами с портами и ресурсами, отличными от HTTPS. Абсолютное большинство пользователей получили обновление 4.1.117 или 4.9.118 автоматически в течение недели. Однако пользователи должны убедиться, что их автоматические обновления не заблокированы и что они используют последнюю версию расширения, перейдя на страницы chrome://extensions или about:addons в настройках браузера.
Пользователи, использующие сборки вручную, должны выполнить обновление до версии 4.9.118 и выше. Разработчики, использующие пакет NPM darkreader для своих веб-сайтов, скорее всего, не затронуты, но должны убедиться, что функция, передаваемая в setFetchMethod() для выполнения запросов между источниками, работает в пределах предполагаемой области действия. Разработчики, использующие пользовательские ответвления более ранних версий Dark Reader для создания других расширений или интеграции в свои приложения или браузеры, должны гарантировать, что они выполняют запросы из разных источников безопасно, а ответы недоступны за пределами приложения или расширения.
Показать оригинальное описание (EN)
Dark Reader is an accessibility browser extension that makes web pages colors dark. The dynamic dark mode feature of the extension works by analyzing the colors of web pages found in CSS style sheet files. In order to analyze cross-origin style sheets (stored on websites different from the original web page), Dark Reader requests such files via a background worker, ensuring the request is performed with no credentials and that the content type of the response is a CSS file. Prior to Dark Reader 4.9.117, this style content was assigned to an HTML Style Element in order to parse and loop through style declarations, and also stored in page's Session Storage for performance gains. This could allow a website author to request a style sheet from a locally running web server, for example by having a link pointing to `http[:]//localhost[:]8080/style[.]css`. The brute force of the host name, port and file name would be unlikely due to performance impact, that would cause the browser tab to hang shortly, but it could be possible to request a style sheet if the full URL was known in advance. As per December 18, 2025 there is no known exploit of the issue. The problem has been fixed in version 4.9.117 on December 3, 2025. The style sheets are now parsed using modern Constructed Style Sheets API and the contents of cross-origin style sheets is no longer stored in page's Session Storage. Version 4.9.118 (December 8, 2025) restricts cross-origin requests to localhost aliases, IP addresses, hosts with ports and non-HTTPS resources. The absolute majority of users have received an update 4.1.117 or 4.9.118 automatically within a week. However users must ensure their automatic updates are not blocked and they are using the latest version of the extension by going to chrome://extensions or about:addons pages in browser settings. Users utilizing manual builds must upgrade to version 4.9.118 and above. Developers using `darkreader` NPM package for their own websites are likely not affected, but must ensure the function passed to `setFetchMethod()` for performing cross-origin requests works within the intended scope. Developers using custom forks of earlier versions of Dark Reader to build other extensions or integrating into their apps or browsers must ensure they perform cross-origin requests safely and the responses are not accessible outside of the app or extension.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Darkreader Darkreader
cpe:2.3:a:darkreader:darkreader:*:*:*:*:*:*:*:*
|
— |
4.9.117
|