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
38 changes: 38 additions & 0 deletions ru/news/_posts/2026-05-20-getaddrinfo-cve-2026-46727.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
layout: news_post
title: "CVE-2026-46727: Use-after-free в обработчике таймаута getaddrinfo на базе pthread"
author: "hsbt"
translator: "ablzh"
date: 2026-05-20 00:00:00 +0000
tags: security
lang: ru
---

В обработчике таймаута `getaddrinfo` на базе pthread в Ruby была обнаружена уязвимость use-after-free. Этой уязвимости присвоен CVE идентификатор [CVE-2026-46727](https://www.cve.org/CVERecord?id=CVE-2026-46727). Эта проблема была исправлена в Ruby 4.0.5. Мы рекомендуем обновить Ruby.

## Детали

Состояние гонки (race condition) существует в механизме отмены таймаута `rb_getaddrinfo`, используемого `Addrinfo.getaddrinfo(..., timeout:)` и `Socket.tcp(..., resolv_timeout:)`. Удаленный злоумышленник, который может задержать DNS-ответы до истечения указанного таймаута, может вызвать разыменование освобожденной памяти процессом Ruby и его аварийное завершение.

## Рекомендуемое действие

Пожалуйста, обновите Ruby до версии 4.0.5 или более поздней.

## Временное решение

Если вы не можете выполнить обновление немедленно, избегайте передачи `timeout:` в `Addrinfo.getaddrinfo` и `resolv_timeout:` в `Socket.tcp`.

## Затронутые версии

* Ruby с 4.0.0 по 4.0.4
* Ruby 4.1.0-dev (master) до исправления

Серия Ruby 3.4 и более ранние версии не затронуты.

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

Благодарим [cantina-security](https://hackerone.com/cantina-security) за обнаружение этой проблемы. Также благодарим [shioimm](https://github.com/shioimm) за создание патча.

## История

* Впервые опубликовано 2026-05-20 00:00:00 (UTC)
52 changes: 52 additions & 0 deletions ru/news/_posts/2026-05-20-ruby-4-0-5-released.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
layout: news_post
title: "Вышел Ruby 4.0.5"
author: k0kubun
translator: "ablzh"
date: 2026-05-20 00:12:20 +0000
lang: ru
---

Вышел Ruby 4.0.5.

В этот релиз вошло только исправление уязвимости
[CVE-2026-46727: Use-after-free в обработчике таймаута getaddrinfo на базе pthread](/ru/news/2026/05/20/getaddrinfo-cve-2026-46727/)
и исправление регрессии системы сборки в Ruby 4.0.4 при использовании локали C [[Bug #22065]](https://bugs.ruby-lang.org/issues/22065).

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

## График релизов

Мы планируем выпускать последнюю стабильную версию Ruby (в данный момент Ruby 4.0) каждые два месяца после последнего обычного релиза. Ruby 4.0.6 выйдет в июле, 4.0.7 в сентябре и 4.0.8 в ноябре.

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

## Скачать

{% assign release = site.data.releases | where: "version", "4.0.5" | 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 }}

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

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