В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В ядро Linux внесены исправления, призванные ограничить использование устаревшего приема — фиктивной операции ожидания, тормозящей CPU при его переводе в состояние сна. Современные системы AMD и Intel не нуждаются в такой помощи, более того, при определенных рабочих нагрузках трюк, в котором нет необходимости, может вызвать существенное снижение производительности.

В 2002 году в Linux была добавлена поддержка стандарта ACPI (Advanced Configuration and Power Interface), согласно которому управление энергопотреблением осуществляется на уровне операционной системы. Спецификации предусматривают возможность перевода устройства в состояние сна разной степени, а также использование технологий мгновенной готовности (пробуждение по сигналу).

Однако некоторые чипсеты оказались неспособными быстро реагировать на сигнал STPCLK# (stop-clock, вызывает состояние функционирования C2, при котором питание процессора отключается, но регенерация ОЗУ продолжается; для возврата в рабочий режим требуется время). В связи с этим был придуман обходной маневр — имитация ожидания, при которой система просто считывает данные ввода-вывода, задерживая обработку инструкций.

Соответствующий код появился в Linux вместе с поддержкой ACPI и присутствует до сих пор. Современные процессоры Intel его не используют, так как давно засыпают с помощью инструкции MWAIT — ее использование обеспечивает более тонкое управление энергопотреблением неактивного состояния (их семь против трех по ACPI).

Чипсетам AMD фейковая операция ожидания тоже больше не требуется, однако для них альтернативы нет. В то же время трюк двадцатилетней давности при определенных условиях может оказаться губительным. Недавнее исследование показало, что он может сильно замедлить работу AMD Zen 3 при рабочих нагрузках Linux с быстрым переключением состояний занятости и простоя. Падение производительности особенно заметно на платформах Ryzen Threadripper и EPYC, которые используют многоядерные процессоры.

Во избежание таких потерь был предложен патч для Linux, который лимитирует использование потерявшего актуальность кода: он пускается в ход только на старых платформах (в случае с Intel это системы с микроархитектурой древнее Nehalem). Концепцию заплатки подхватил Линус Торвальдс; в итоге долгожданный фикс был добавлен в новую сборку ядра Linux (6.0), выпуск которой запланирован на 2 октября.

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

В Android-софте Xiaomi File Manager и WPS Office есть баг перезаписи файлов

Несколько популярных приложений для Android, доступных в Google Play Store, содержат уязвимость, которой может воспользоваться вредоносный софт для перезаписи произвольных файлов в директории уязвимой программы.

На проблему указала команда Microsoft Threat Intelligence. В отчете Димитриос Валсамарас, один из специалистов, объясняет:

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

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

Ниже приводим два приложения, в которых содержится описанная брешь. Обратите внимание на количество установок этого софта, оно впечатляет:

  • Xiaomi File Manager (com.mi. Android.globalFileexplorer) — более миллиарда инсталляций;
  • WPS Office (cn.wps.moffice_eng) — более 500 миллионов установок.

Несмотря на то что Android изолирует данные и пространство в памяти для каждого приложения, ошибки в имплементации могут позволить обойти установленные ограничения на запись и чтение внутри домашней директории программы.

«Основанная на провайдере контента модель предоставляет полезный механизм защищенного обмена файлами между приложениями. Тем не менее мы выявили некорректную проверку содержимого получаемого файла. Еще больше настораживает использование имени файла, предоставленного одним из приложений, для кеширования полученного файла внутри директории со внутренними данными другого приложения», — пишет Валсамарас.

 

В результате первое приложение может подсунуть вредоносную версию класса FileProvider, что позволит переписать критически важные данные в частном пространстве другого приложения.

В сущности, проблема кроется в том, что принимающая программа слепо доверяет вводным данным от отравляющего приложения.

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новости на портале Anti-Malware.ru