Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
679 changes: 679 additions & 0 deletions ru/news/_posts/2026-10-12-ruby-4-1-0-preview1-released.md

Large diffs are not rendered by default.

43 changes: 43 additions & 0 deletions ru/news/_posts/2026-10-22-ruby-4-0-8-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
layout: news_post
title: "Вышел Ruby 4.0.8"
author: k0kubun
translator: "ablzh"
date: 2026-10-22 06:54:51 +0000
lang: ru
---

Вышел Ruby 4.0.8.

Это плановое обновление, которое включает исправления ошибок.
Подробности можно найти в [заметках о релизе на GitHub](https://github.com/ruby/ruby/releases/tag/v4.0.8).

## Скачать

{% assign release = site.data.releases | where: "version", "4.0.8" | first %}

* <{{ release.url.gz }}>

SIZE: {{ release.size.gz }}
SHA1: {{ release.sha1.gz }}
SHA256: {{ release.sha256.gz }}
SHA512: {{ release.sha512.gz }}

* <{{ release.url.xz }}>

SIZE: {{ release.size.xz }}
SHA1: {{ release.sha1.xz }}
SHA256: {{ release.sha256.xz }}
SHA512: {{ release.sha512.xz }}

* <{{ release.url.zip }}>

SIZE: {{ release.size.zip }}
SHA1: {{ release.sha1.zip }}
SHA256: {{ release.sha256.zip }}
SHA512: {{ release.sha512.zip }}

## Комментарий к релизу

Многие коммиттеры, разработчики и пользователи, предоставившие отчёты об ошибках, помогли нам сделать этот релиз.
Благодарим за их вклад.
63 changes: 63 additions & 0 deletions ru/news/_posts/2026-10-23-regexp-fixes-for-gitlab-cves.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
layout: news_post
title: "Исправления компиляции Regexp, связанные с CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264 от GitLab"
author: "k0kubun"
translator: "ablzh"
date: 2026-10-23 03:11:22 +0000
lang: ru
---

Мы выпустили Ruby 4.0.9, 3.4.12 и 3.3.13. В них исправлено несколько ошибок в движке регулярных выражений Ruby (Onigmo), которые, как обнаружила команда GitLab, могли быть использованы для удалённого выполнения кода на серверах GitLab. GitLab опубликовал четыре CVE для этих проблем, а релизы Ruby содержат исправления базовых ошибок в Ruby.

## Предыстория

GitLab компилирует регулярные выражения, предоставляемые пользователями (например, шаблоны в конфигурации CI), с помощью `Regexp.new`. В GitLab обнаружили, что специально сформированные шаблоны могут повреждать память во время их компиляции в Ruby, и это может быть использовано для удалённого выполнения кода на серверах GitLab. GitLab устранил эти проблемы в собственных релизах, применив патчи к поставляемому с ним Ruby, и присвоил следующие CVE идентификаторы:

* [CVE-2026-89078](https://www.cve.org/CVERecord?id=CVE-2026-89078): Проблема двойного освобождения памяти (Double Free) в парсере регулярных выражений ([GitLab 19.4.1](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-1-released/))
* [CVE-2026-93577](https://www.cve.org/CVERecord?id=CVE-2026-93577): Проблема целочисленного переполнения в компиляторе регулярных выражений ([GitLab 19.4.1](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-1-released/))
* [CVE-2026-97229](https://www.cve.org/CVERecord?id=CVE-2026-97229): Проблема целочисленного переполнения в компиляторе регулярных выражений CI/CD ([GitLab 19.4.2](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/))
* [CVE-2026-110264](https://www.cve.org/CVERecord?id=CVE-2026-110264): Проблема целочисленного переполнения в компиляторе регулярных выражений ([GitLab 19.5.1](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-1-released/))

## Исправления в Ruby

В следующей таблице показаны изменения в Ruby, исправляющие ошибку, стоящую за каждым CVE, а также первый релиз каждой серии, содержащий это исправление.

| GitLab CVE | Ошибка в Ruby | Изменение | Ruby 4.0 | Ruby 3.4 | Ruby 3.3 |
|---|---|---|---|---|---|
| CVE-2026-89078 | Двойное освобождение памяти при сбое парсинга шаблона после чередования (alternation) | [#13332](https://github.com/ruby/ruby/pull/13332) | 4.0.0 | 3.4.12 | 3.3.13 |
| CVE-2026-93577, CVE-2026-97229 | Целочисленное переполнение в размере скомпилированного шаблона | [#19020](https://github.com/ruby/ruby/pull/19020) | 4.0.8 | 3.4.12 | 3.3.13 |
| CVE-2026-110264 | Переполнение внутренних идентификаторов в шаблоне с большим числом повторений | [#16801](https://github.com/ruby/ruby/pull/16801) | 4.0.9 | 3.4.12 | 3.3.13 |

Ruby 4.0.9, 3.4.12 и 3.3.13 содержат все эти исправления.

## Кто затронут

Эти ошибки проявляются только тогда, когда приложение компилирует регулярное выражение из строки, контролируемой злоумышленником, например при передаче её в `Regexp.new`, `Regexp.union` или `Regexp.compile`, либо при интерполяции в литерал регулярного выражения, например `/#{input}/`. Приложения, использующие только регулярные выражения, написанные их собственными разработчиками, не затронуты.

`Regexp.timeout` не защищает от этих ошибок. Ограничение длины шаблонов также не даёт надёжной защиты, поскольку некоторые из них могут вызываться короткими шаблонами.

## Рекомендуемые меры

Мы рекомендуем обновиться до Ruby 4.0.9, 3.4.12 или 3.3.13 или новее.

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

Ruby 3.3 находится на стадии поддержки безопасности, на которой мы обычно выпускаем только исправления уязвимостей. Ruby 3.3.13 включает эти исправления в качестве исключения, поскольку GitLab присвоил CVE проблемам, которые опираются на них.

## Об идентификаторах CVE

Мы не запрашивали идентификаторы CVE в Ruby для этих исправлений, по крайней мере на данный момент.

Ruby в целом считает небезопасной компиляцию и использование регулярных выражений, созданных из непроверенных входных данных. Мы заявляли об этом в рекомендации по безопасности для [CVE-2022-28738]({% link en/news/_posts/2022-04-12-double-free-in-regexp-compilation-cve-2022-28738.md %}), где, тем не менее, после всесторонней оценки сочли двойное освобождение памяти при компиляции Regexp уязвимостью. Аналогично мы поступили и в случае с [CVE-2024-27282]({% link en/news/_posts/2024-04-23-arbitrary-memory-address-read-regexp-cve-2024-27282.md %}).

Однако в [документации Regexp](https://docs.ruby-lang.org/en/master/Regexp.html#class-Regexp-label-Timeouts) в настоящее время непроверенные шаблоны обсуждаются только с точки зрения отказа в обслуживании (denial of service), и для них рекомендуется указывать таймаут. В ней явно не указано, является ли компиляция непроверенных шаблонов сценарием использования, который поддерживает Ruby. Мы планируем обсудить, как задокументировать это, и стоит ли классифицировать такого рода проблемы как уязвимости в Ruby, включая вопрос о необходимости запроса CVE идентификаторов для этих исправлений. Если мы запросим их, то обновим эту страницу.

Тем временем, пожалуйста, используйте перечисленные выше CVE идентификаторы GitLab при отслеживании этих проблем, например в сканерах безопасности.

## Благодарности

Спасибо Johan Carlsson ([joaxcar](https://github.com/joaxcar)) за обнаружение целочисленного переполнения, исправленного в [#19020](https://github.com/ruby/ruby/pull/19020), в рамках программы bug bounty GitLab, а также GitLab за сообщение об этих проблемах и координацию исправлений.

## История

* Первоначально опубликовано 2026-10-23 03:11:22 (UTC)
52 changes: 52 additions & 0 deletions ru/news/_posts/2026-10-23-ruby-3-3-13-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
layout: news_post
title: "Вышел Ruby 3.3.13"
author: hsbt
translator: "ablzh"
date: 2026-10-23 04:24:46 +0000
lang: ru
---

Вышел Ruby 3.3.13.

Этот релиз включает исправления безопасности.
Пожалуйста, ознакомьтесь с темами ниже для получения подробностей.

* [Рекомендации по безопасности: CVE-2026-80212 и CVE-2026-80213]({% link ru/news/_posts/2026-08-27-multiple-vulnerabilities-in-resolv.md %})
* [Исправления компиляции Regexp, связанные с CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264 от GitLab]({% link ru/news/_posts/2026-10-23-regexp-fixes-for-gitlab-cves.md %})

В этом релизе стандартный гем resolv обновлён до версии 0.3.2, что устраняет уязвимости CVE-2026-80212 и CVE-2026-80213.

Ruby 3.3 находится на стадии поддержки безопасности. В качестве исключения в этот релиз также вошли исправления ошибок в компиляции Regexp, на которые опираются CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264 от GitLab.

Подробности можно найти в [заметках о релизе на GitHub](https://github.com/ruby/ruby/releases/tag/v3_3_13).

## Скачать

{% assign release = site.data.releases | where: "version", "3.3.13" | first %}

* <{{ release.url.gz }}>

SIZE: {{ release.size.gz }}
SHA1: {{ release.sha1.gz }}
SHA256: {{ release.sha256.gz }}
SHA512: {{ release.sha512.gz }}

* <{{ release.url.xz }}>

SIZE: {{ release.size.xz }}
SHA1: {{ release.sha1.xz }}
SHA256: {{ release.sha256.xz }}
SHA512: {{ release.sha512.xz }}

* <{{ release.url.zip }}>

SIZE: {{ release.size.zip }}
SHA1: {{ release.sha1.zip }}
SHA256: {{ release.sha256.zip }}
SHA512: {{ release.sha512.zip }}

## Комментарий к релизу

Многие коммиттеры, разработчики и пользователи, предоставившие отчёты об ошибках, помогли нам сделать этот релиз.
Благодарим за их вклад.
48 changes: 48 additions & 0 deletions ru/news/_posts/2026-10-23-ruby-3-4-12-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
layout: news_post
title: "Вышел Ruby 3.4.12"
author: nagachika
translator: "ablzh"
date: 2026-10-23 03:50:27 +0000
lang: ru
---

Вышел Ruby 3.4.12.

Этот релиз включает исправления ошибок в компиляции Regexp, на которые опираются CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264 от GitLab.
Пожалуйста, ознакомьтесь с темой ниже для получения подробностей.

* [Исправления компиляции Regexp, связанные с CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264 от GitLab]({% link ru/news/_posts/2026-10-23-regexp-fixes-for-gitlab-cves.md %})

Этот релиз также включает другие исправления ошибок.
Подробности можно найти в [заметках о релизе на GitHub](https://github.com/ruby/ruby/releases/tag/v3_4_12).

## Скачать

{% assign release = site.data.releases | where: "version", "3.4.12" | first %}

* <{{ release.url.gz }}>

SIZE: {{ release.size.gz }}
SHA1: {{ release.sha1.gz }}
SHA256: {{ release.sha256.gz }}
SHA512: {{ release.sha512.gz }}

* <{{ release.url.xz }}>

SIZE: {{ release.size.xz }}
SHA1: {{ release.sha1.xz }}
SHA256: {{ release.sha256.xz }}
SHA512: {{ release.sha512.xz }}

* <{{ release.url.zip }}>

SIZE: {{ release.size.zip }}
SHA1: {{ release.sha1.zip }}
SHA256: {{ release.sha256.zip }}
SHA512: {{ release.sha512.zip }}

## Комментарий к релизу

Многие коммиттеры, разработчики и пользователи, предоставившие отчёты об ошибках, помогли нам сделать этот релиз.
Благодарим за их вклад.
47 changes: 47 additions & 0 deletions ru/news/_posts/2026-10-23-ruby-4-0-9-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
layout: news_post
title: "Вышел Ruby 4.0.9"
author: k0kubun
translator: "ablzh"
date: 2026-10-23 03:11:22 +0000
lang: ru
---

Вышел Ruby 4.0.9.

Этот релиз включает исправление ошибки в компиляции Regexp, на которую опирается CVE-2026-110264 от GitLab.
Пожалуйста, ознакомьтесь с темой ниже для получения подробностей.

* [Исправления компиляции Regexp, связанные с CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 и CVE-2026-110264 от GitLab]({% link ru/news/_posts/2026-10-23-regexp-fixes-for-gitlab-cves.md %})

Подробности можно найти в [заметках о релизе на GitHub](https://github.com/ruby/ruby/releases/tag/v4.0.9).

## Скачать

{% assign release = site.data.releases | where: "version", "4.0.9" | first %}

* <{{ release.url.gz }}>

SIZE: {{ release.size.gz }}
SHA1: {{ release.sha1.gz }}
SHA256: {{ release.sha256.gz }}
SHA512: {{ release.sha512.gz }}

* <{{ release.url.xz }}>

SIZE: {{ release.size.xz }}
SHA1: {{ release.sha1.xz }}
SHA256: {{ release.sha256.xz }}
SHA512: {{ release.sha512.xz }}

* <{{ release.url.zip }}>

SIZE: {{ release.size.zip }}
SHA1: {{ release.sha1.zip }}
SHA256: {{ release.sha256.zip }}
SHA512: {{ release.sha512.zip }}

## Комментарий к релизу

Многие коммиттеры, разработчики и пользователи, предоставившие отчёты об ошибках, помогли нам сделать этот релиз.
Благодарим за их вклад.
Loading