Вышла версия 12.0 медиа-сервера Jellyfin. Множество исправлений безопасности блокируют запросы, предназначенные для получения доступа к файлам вне папок, которые сервер должен предоставлять. Остальная работа по безопасности затрагивает начальную настройку, установку плагинов, родительский контроль и веб-интерфейс.
Проблемы, решённые в обновлении
На неправильно настроенном сервере пользователь, который не авторизовался, мог вызвать мастер настройки дважды. Эта функция создаёт учётную запись администратора и указывает Jellyfin на ваши библиотеки.
Теперь отклоняются пакеты плагинов с небезопасными именами. Родительский контроль теперь применяется в местах, где он ранее не работал. Веб-клиент получил исправления для уязвимостей типа межсайтовый скриптинг, когда вредоносный код выполняется в сеансе браузера другого пользователя.
Проект не указывает конкретные проблемы, не присваивает идентификаторы CVE и не оценивает серьёзность, поэтому администраторам приходится полагаться на слово "безопасность" при принятии решения о скорости обновления.
Прекращение поддержки старых клиентов и методов входа
Поддержка устаревших адресов /emby/ и /mediabrowser/ удалена, а метод входа, который Jellyfin уже пометил как устаревший, отключен по умолчанию как на новых, так и на существующих серверах. Клиенты, не обновлявшиеся годами, больше не смогут подключаться.
Jellyfin также удалил POST /Users/{userId}/EasyPassword и несколько других маршрутов, которые уже были сведены к пустым операциям. Свойство UserDto.HasPassword помечено как устаревшее, поскольку его ответ больше не имеет смысла.
В версии 12.0 имена пользователей нечувствительны к регистру, и две учётные записи больше не могут иметь имена, отличающиеся только по регистру. Сервер с такой парой не пройдёт миграцию базы данных, поэтому перед обновлением стоит проверить список пользователей.
Встроенный TLS остаётся, пока
Jellyfin объявил в заметках версии 10.11.0, что удалит собственную поддержку TLS в этой версии. Это удаление отложено на будущую версию. Проект по-прежнему рекомендует запускать сервер за обратным прокси.
Те, кто запускает интернет-доступный экземпляр со встроенным TLS Jellyfin, продолжат работать после обновления благодаря отсрочке.
Что делать перед обновлением
Сторонние плагины, созданные для версии 10.11, не будут загружаться на 12.0. Сервер теперь использует .NET 10, и несколько интерфейсов плагинов изменились, поэтому эти плагины требуют обновленных сборок от их авторов. Jellyfin рекомендует удалить их с сервера перед обновлением и добавить обратно по мере появления новых версий. Официальные плагины уже обновлены. Отключённые плагины теперь остаются отключёнными при перезагрузке, чего не было в версии 10.11.
Путь обновления начинается с версии 10.10.7 или любой версии 10.11.x, а всё старое требует остановки на 10.10.7 в первую очередь. После этого требуется полное сканирование библиотеки. Первое сканирование занимает значительно больше времени, чем обычно, потому что Jellyfin теперь проверяет каждый элемент в библиотеке относительно файлов на диске. Администраторы, которые хотят запустить миграцию как отдельный шаг, могут запустить сервер с параметром --mode MigrateSystem, который выполняет обновление и выходит без запуска остальной части Jellyfin.
Схема базы данных изменяется, и данные переписываются при первой загрузке. Резервная копия, сделанная перед этим, — единственный способ вернуться к предыдущей версии.
