Плачевная ситуация с безопасностью WebKit в дистрибутивах Linux

Один из разработчиков web-браузера Epiphany (GNOME Web) рассказал о проблемах с поставкой WebKit в составе дистрибутивов Linux. Если с обновлением браузеров дистрибутивы более-менее научились справляться, то с обособленной поставкой браузерных движков всё очень плохо. В большинстве дистрибутивов поставляются устаревшие версии WebKit, WebKitGTK+, QtWebKit и WebKitEFL, содержащие обилие неисправленных опасных уязвимостей.

Дистрибутивы поставлены перед дилеммой — обеспечить поставку свежих версий, но столкнуться с чередой проблем из-за возможного нарушения совместимости с зависимостями, или остановиться на определённом выпуске движка, но утонуть в рутине по бэкпортированию из новых версий исправлений уязвимостей. В настоящее время актуальные версии WebKitGTK+ поддерживаются только в Arch и Fedora. Свежий WebKitGTK+ также доступен в Debian testing, за исключением периодов заморозки пакетной базы перед очередным релизом, Debian unstable и openSUSE Tumbleweed. В стабильных релизах Debian и openSUSE поставляются устаревшие версии WebKitGTK+.

WebKitGTK+ используется в таких приложениях, как Anjuta, Banshee, Bijiben (GNOME Notes), Devhelp, Empathy, Evolution, Geany, Geary, GIMP, gitg, GNOME Builder, GNOME Documents, GNOME Initial Setup, GNOME Online Accounts, GnuCash, gThumb, Liferea, Midori, Rhythmbox, Shotwell, Sushi и Yelp (GNOME Help). Следует отметить, что бюллетени с отчетами об устранённых в WebKitGTK+ уязвимостей, регулярно стали выходить только последнее время и разработчики приложений были вынуждены отслеживать связанные с безопасностью исправления самостоятельно. Несколько месяцев назад отношение к безопасности изменилось и WebKitGTK+ стал формировать регулярные отчеты с привязкой с идентификаторам CVE.

При этом всплывает новая проблема — сопровождение устаревающей ветки WebKitGTK+ 2.4, последней с поддержкой WebKit1 API. В новых выпусках WebKitGTK+ поддерживается только WebKit2 API, но не все приложения пока поддерживают данный API. Портирование исправлений в ветку WebKitGTK+ 2.4.x является трудоёмкой задачей и отнимает много ресурсов, поэтому скорее-всего поддержка этой ветки в ближайшем будущем будет прекращена. Как один из выходов упоминается удаление поддержки API WebKit1 из дистрибутивов, но такой шаг приведёт к невозможности использования рада популярных приложений.

Что касается WebKitEFL и QtWebKit, то WebKitEFL, развиваемый проектом Enlightenment, в обособленном виде не входит в состав дистрибутивов и, в основном, используется поставщиками решений для встраиваемых систем, которые не занимаются бекпортированием исправлений уязвимостей. Движок QtWebKit прекратил своё развитие, но не смотря на решение о переходе на QtWebEngine, он по-прежнему используется в проектах KDE, в том числе в Amarok, Calligra, KDevelop, KMail, Kontact, KTorrent, Quassel, Rekonq и Tomahawk. Ситуация с безопасностью QtWebKit оставляет желать лучшего, так как кодовая база движка на годы отстаёт от основного WebKit, а исправления бэкпортируются выборочно и не регулярно. Большое число уязвимостей остаются неисправленными и затрагивают все приложения на базе QtWebKit, которые не спешат переходить на новый движок QtWebEngine, поддерживаемый сообществом Qt.

©  OpenNet