[Ведьмак 2: Убийцы королей] Очередные проблемы Linux-версии

Ведьмак 2: Убийцы королей на Linux

Если вы следили за ситуацией вокруг «Ведьмак 2: Убийцы королей» для Linux, то наверняка знаете о многочисленных проблемах, которые преследуют её с момента выхода. «Ведьмак 2: Убийцы королей» для Linux оказалась Windows-версией игры, запущенной через подобную Wine оболочку, приводящую к существенному падению производительности, а на некоторых видеокартах производства AMD не запускалась вообще. На днях пользователи Linux с удивлением обнаружили, что игра отказывается работать в системах с ядром 3.17.7 или более новым.

Пользователи компьютерных игр столкнулись с невозможностью запуска игры Witcher 2 на системах с новыми ядрами Linux. В частности, наблюдается крах при запуске игры в окружении ядра 3.17.7 и более новых выпусков. После анализа ситуации разработчики выяснили, что причиной являются добавленные в недавних выпусках ядра дополнительные проверки параметров системного вызова "set_thread_area".

Линус Торвальдс присоединился к дискуссии и подтвердил свою приверженность принципу сохранения полной совместимости с приложениями, заключающемуся в том, что программные интерфейсы должны обеспечивать обратную совместимость, и никакие изменения в ядре не должны нарушать корректную работу пользовательских приложений. Чтобы не допустить подобные инциденты с играми в будущем, Линус посоветовал ответственным за тестирование ядра разработчикам включить игровые приложения в число проверяемых программ, а разработчикам проприетарных игр более активно сотрудничать с разработчиками ядра и сразу сообщать о всех возникших проблемах. В качестве решения проблемы с Witcher 2 Линус указал на необходимость смягчить добавленные в системный вызов ограничения "set_thread_area" или организовать жесткие проверки только для серверных систем.

Неоднозначность ситуации заключается в том, что добавление дополнительных проверок параметров системного вызова "set_thread_area" было осуществлено в рамках устранения выявленных в декабре критических уязвимостей (CVE-2014-9322, CVE-2014-9090) и данные проверки необходимы для предотвращения атак, которые могут привести к повышению привилегий в системе. При этом старое недокументированное поведение системного вызова использовалось в игре Witcher 2. Для поиска свободных слотов TLS в системный вызов "set_thread_area" передавалась полностью обнулённая структура и такой метод работал в Witcher 2, хотя формально требовалась установка флагов read_exec_only и seg_not_present. Поведение системного вызова при передаче нулевых данных не было явно определено в документации, но воспринималось некоторыми разработчиками приложений как выполнение вызова без выделения сегментов, при том, что фактически подобные вызовы без установленного флага seg_not_present приводили к созданию доступного на чтение и запись 16-битного сегмента с нулевыми границами. В новых выпусках ядра передача в "set_thread_area" структур, содержащих 16-разрядные сегменты TLS была запрещена, так как подобные манипуляции с LDT используются в эксплоите.

Таким образом возникла дилемма: сохранить совместимость, но оставить потенциальную уязвимость, или устранить вектор атаки, но нарушить совместимость программных интерфейсов. В случае с игрой Witcher удалось найти компромиссное обходное решение и подготовить патчи, воспринимающие передачу структуры user_desc со всеми нулевыми значениями как операцию поиска свободного слота, и не проводить в этом случае заполнение сегмента TLS.

Комментировать »

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

Поиск по сайту

Случайное из галереи

Пока здесь пустовато, но это временно.
Пока здесь пустовато, но это временно.

Сообщения на форуме | новые

Общее обсуждение харда и софта на форуме Hard-n-Soft.
Последнее сообщение оставил ukdouble1 (2025-09-22 в 00:34). Ответов: 3602.
«Рогалики», или заметки об истории и дефинициях жанра на форуме О жанре.
Последнее сообщение оставил Бобёр (2025-09-22 в 00:13). Ответов: 20.
[В разработке] Tangerine Antarctic / XXX NIGHTSHIFT на форуме VN/CYOA/NRPG.
Последнее сообщение оставил 0z1ZwZJCXWxj0Cw (2025-09-21 в 17:30). Ответов: 2.
Black Geyser: Couriers of Darkness на форуме Всё остальное | Инди.
Последнее сообщение оставил 0z1ZwZJCXWxj0Cw (2025-09-21 в 16:58). Ответов: 112.
[В разработке] GRAFT на форуме GRAFT.
Последнее сообщение оставил 0z1ZwZJCXWxj0Cw (2025-09-21 в 16:41). Ответов: 3.
Wartales на форуме Всё остальное | Инди.
Последнее сообщение оставил 0z1ZwZJCXWxj0Cw (2025-09-21 в 16:36). Ответов: 169.
[В разработке] Titan Quest 2 на форуме Ролевые боевики.
Последнее сообщение оставил 0z1ZwZJCXWxj0Cw (2025-09-21 в 16:33). Ответов: 20.
[В разработке] Archaelund на форуме Всё остальное | Инди.
Последнее сообщение оставил 0z1ZwZJCXWxj0Cw (2025-09-21 в 16:29). Ответов: 21.
[В разработке] MENACE на форуме Тактические и стратегические.
Последнее сообщение оставил 0z1ZwZJCXWxj0Cw (2025-09-21 в 16:13). Ответов: 63.
Бордель услаждения интеллектуальных страстей — 2 на форуме Оффтопик — Разное.
Последнее сообщение оставил Товарищ (2025-09-21 в 14:50). Ответов: 1525.

Ожидаемое | таблица

Новости C.O.R.E.

Статьи C.O.R.E.

Случайная цитата

If you seek to aid everyone that suffers in the galaxy, you will only weaken yourself and weaken them. It is the internal struggles, when fought and won on their own, that yield the strongest rewards. You stole that struggle from them, cheapened it.

Kreia, Star Wars: Knights of the Old Republic 2 — Sith Lords

Оставьте свой отзыв: QR-код для отзывов в «Яндексе».