Liberica 8u312, 11.0.13 и 17.0.1 доступны для загрузки

Liberica 8u312, 11.0.13 и 17.0.1 доступны для загрузки


Обновлено 21 октября, 2021


Contents

  1. Описание
  2. Как сохранить безопасность рантайма
  3. Обзор исправленных ошибок
  4. Перечень устраненных уязвимостей
  5. Значимые изменения в Liberica JDK
  6. Ключевые изменения в основной ветви OpenJDK
    1. Миграция на Git/Scara (JDK 11)
    2. Обновленное предпочтение поддерживаемых наборов шифров по умолчанию
    3. Исправление ошибок, возникающих при вызове методов, связанных с загрузкой CPU (JDK 8 и 11)
    4. Исправлена ошибка извлечения учетных данных Kerberos в условиях межобластного (cross-realm) взаимодействия
    5. Настройка инициализации cgroup (JDK 8 и 11)
  7. Поддерживаемые платформы
  8. Воспользуйтесь преимуществами самого стабильного рантайма!

Описание

Мы рады сообщить о выходе новых версий Liberica JDK, дистрибутива OpenJDK от BellSoft, в рамках ежеквартального критического обновления безопасности (CPU).

Каждый квартал в LTS-версии Liberica JDK (8, 11, 17) внедряют CPU патчи с целью сохранения безопасности и стабильности рантайма.

CPU патчи содержат исправления известных уязвимостей (CVE) и ошибок.

Помимо CPU релиза, PSU релиз содержит некритичные улучшения.

Всего в этом релизе было исправлено и реализовано 669 ошибок и бэкпортов. 5 проблем безопасности были устранены при участии BellSoft (3 в JDK и 2 в FX).

Как сохранить безопасность рантайма

BellSoft рекомендует обновлять Liberica JDK с выходом каждого релиза в рамках ежеквартального критического обновления безопасности (CPU) для поддержания стабильной и безопасной работы среды исполнения.

CPU релизы выходят в январе, апреле, июне и октябре.

Обновления и патчи Liberica JDK можно скачать бесплатно.

Обзор исправленных ошибок

  • устранено уязвимостей (CVEs) ー 13;
  • сделано патчей безопасности ー 29;
  • добавлено бэкпортов и исправлено ошибок ー 84:
    • в Liberica 8u311: 27 + 2 в FX,
    • в Liberica 11.0.12.0.1: 26 + 2 в FX.
    • в Liberica 17.0.0.0.1: 25 + 2 в FX.

Кроме того, в PSU релизе было устранено и добавлено 543 ошибки и бэкпорта:

  • в Liberica 8u312: 29 патчей безопасности (27 + 2 в FX) + 109,
  • в Liberica 11.0.13: 28 патчей безопасности (26 + 2 в FX) + 303.
  • в Liberica 17.0.1: 27 патчей безопасности (25 + 2 в FX) + 47.

Перечень устраненных уязвимостей

CVE ID Оценка cvss Компонент Модуль Вектор атаки (сеть/локальный) Сложность (низк./высок.) Привилегии (нет/низк.) Взаимодействие пользователя (нет/необходимо) Область применения (изменено/без изменений) Конфиденциальность (низк./нет/высок.) Целостность (низк./нет/высок.) Доступность (низк./нет/высок.)
CVE-2021-3517 8.6 javafx web сеть низк. нет нет без изменений низк. низк. высок.
CVE-2021-35567 6.8 security-libs java.security сеть низк. низк. необходимо изменено высок. нет нет
CVE-2021-35550 5.9 security-libs javax.net.ssl сеть высок. нет нет без изменений высок. нет нет
CVE-2021-3522 5.5 javafx media локальный низк. нет необходимо без изменений нет нет высок.
CVE-2021-35586 5.3 client-libs javax.imageio сеть низк. нет нет без изменений нет нет низк.
CVE-2021-35564 5.3 security-libs java.security сеть низк. нет нет без изменений нет низк. нет
CVE-2021-35561 5.3 core-libs java.util сеть низк. нет нет без изменений нет нет низк.
CVE-2021-35565 5.3 core-libs java.net сеть низк. нет нет без изменений нет нет низк.
CVE-2021-35559 5.3 client-libs javax.swing сеть низк. нет нет без изменений нет нет низк.
CVE-2021-35578 5.3 security-libs javax.net.ssl сеть низк. нет нет без изменений нет нет низк.
CVE-2021-35556 5.3 client-libs javax.swing сеть низк. нет нет без изменений нет нет низк.
CVE-2021-35603 3.7 security-libs javax.net.ssl сеть высок. нет нет без изменений низк. нет нет
CVE-2021-35588 3.1 hotspot runtime сеть высок. нет необходимо без изменений нет нет низк.

Значимые изменения в Liberica JDK

Liberica JDK уже поддерживает самый широкий диапазон платформ. Но этот CPU релиз включает поддержку Windows 11, поэтому вы можете обновить версию Windows и без проблем продолжить разработку вашего приложения. Более того, теперь доступны обновленные базовые образы Docker для Debian и Alpine Linux:

  • Debian 10
  • Alpine Linux 3.14

CVEs, устраненные в Liberica в соответствии с версией:

  • 17.0.1: 11 (9 + 2 в FX);
  • 11.0.13: 12 (10 + 2 в FX);
  • 8u311: 13 (11 + 2 в FX);
  • 7u321: 9 (9 + 0 в FX).

Ключевые изменения в основной ветви OpenJDK

1. Миграция на Git/Scara (JDK 11)

В этом CPU релизе проект по обновлению JDK 11 был перемещен на git в Github, поэтому, начиная с данного релиза, разработчикам будут доступны все инструменты Scara. Миграция на Git/Github ー важное событие в отношении поддержки JDK11u, так как это значительно облегчает процессы для разработчиков, работающих над обновлением OpenJDK 11.

2. Обновленное предпочтение поддерживаемых наборов шифров по умолчанию

Наборы шифров ー это наборы алгоритмов, предназначенных для согласования параметров безопасности при установлении связи SSL или TLS. Во время рукопожатия SSL клиент и сервер обмениваются приоритетными наборами шифров и выбирают пакет, который лучше всего поддерживается обоими.

С целью предотвращения атак по типу SSL stripping было предложено обновить поддерживаемые наборы шифров по умолчанию. Влияние на совместимость должно быть минимальным. Приоритет необходимо отдавать прямой секретности.

Кроме того, JDK 11 теперь поддерживает наборы шифров Chacha20-Poly1305 AEAD. Это важно, так как Google Chrome в первую очередь отдает приоритет этим наборам.

3. Исправление ошибок, возникающих при вызове методов, связанных с загрузкой CPU (JDK 8 и 11)

Данные ошибки возникали при работе с контейнерами. Первая ошибка заключалась в том, что метод getSystemCpuLoad() иногда возвращал -1, когда несколько CPU на компьютерах Linux были оффлайн, а модуль cpusets.effective_cpus отсутствовал.

Вторая ошибка касалась метода OperatingSystemImpl.getCpuLoad(), который возвращал 1.0 для контейнера, хотя загрузка CPU была менее 100%. Проблема была вызвана использованием значений использованного времени вместо общего времени работы CPU. Последнее указывается посредством cpu.cfs_quota_us, поэтому CPU нужно делить с помощью “quotaNanos”.

4. Исправлена ошибка извлечения учетных данных Kerberos в условиях межобластного (cross-realm) взаимодействия

Ошибка была связана с ограниченным делегированием Kerberos, если сервер и межплатформенное ПО находились в разных областях. Когда клиент отправлял запрос межплатформенному ПО, последнее получало билет для ограниченного делегирования, отправляло запрос на сервер от имени клиента, а затем сервер отправлял ответ ПО. Ввиду того, что билеты брались из кэша, только первый запрос был успешным. Чтобы эта проблема больше не возникала, не следует извлекать учетные данные из кэша для отправки запроса при наличии прокси-сервера.

5. Настройка инициализации cgroup (JDK 8 и 11)

Данная проблема была связана с неисправностью поддержки croups в Kubernetes: поды не запускались из-за исключения, которое выбрасывалось в процессе чтения информации о cgroups.

Целью механизма cgroups (или control groups) в ядре Linux является распределение ресурсов между процессами (task groups) в системе. Для инициализации cgroups необходимо найти точки подключения в /proc/self/mountinfo и считать пути подсистемы cgroup из /proc/self/cgroup. Последний файл представляет собой текст в одну строку с тремя полями, разделенными двоеточием. Парсинг файла осуществляется с разделением через пробел, в результате чего cgroupPath содержит двоеточие. В данном случае, оставшаяся часть пути игнорировалась и во время инициализации у пути был параметр null. Поэтому при попытке прочитать конфигурационный файл и вызвать Paths.getPath() выбрасывалось исключение NullPointerException.

Поддерживаемые платформы

Liberica JDK гарантированно функционирует на большом количестве платформ.

Liberica JDK также работает в виртуальной и облачной среде. Поддерживаются следующие гипервизоры:

  • Docker
  • KVM
  • Microsoft Hyper-V (gen 1 и gen 2)
  • VirtualBox
  • VMware vSphere Hypervisor
  • Solaris Containers & Solaris LDOMs

Liberica JDK поддерживает всех основных поставщиков облачных услуг, в том числе:

  • Amazon AWS
  • Digital Ocean
  • Google Cloud
  • Microsoft Azure
  • OVH
  • Packet
  • Scaleway
  • VMware Tanzu
  • Yandex Cloud

Воспользуйтесь преимуществами самого стабильного рантайма!

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

Новые сборки уже сейчас доступны для скачивания! Кликните по кнопке ниже или перейдите в Центр загрузок Liberica JDK.

Полезные ссылки

  1. [11u] Proposal: Switch jdk11u development to Git/Skara
  2. [JDK-8163326] Update the default enabled cipher suites preference - Java Bug System
  3. [JDK-8140466] ChaCha20 and Poly1305 TLS Cipher Suites - Java Bug System
  4. [JDK-8270137] Kerberos Credential Retrieval from Cache in Cross-Realm Setup - Java Bug System
  5. [JDK-8247469] getSystemCpuLoad() issue - Java Bug System
  6. [JDK-8265836] OperatingSystemImpl.getCpuLoad() issue - Java Bug System
  7. [JDK-8272124] Failing cgroup v1 initialization - Java Bug System
Author image

Алексей Войтылов

BellSoft CTO

 LinkedIn

BellSoft LTD [email protected] BellSoft LTD logo Liberica Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 BellSoft LTD 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 BellSoft LTD 111 North Market Street, Suite 300 CA 95113 San Jose US +1 702 213-59-59