CVE-2026-46727: Use-after-free в обработчике таймаута getaddrinfo на базе pthread

Опубликовал hsbt 20-05-2026
Перевел: ablzh

В обработчике таймаута getaddrinfo на базе pthread в Ruby была обнаружена уязвимость use-after-free. Этой уязвимости присвоен CVE идентификатор 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 за обнаружение этой проблемы. Также благодарим shioimm за создание патча.

История

  • Впервые опубликовано 2026-05-20 00:00:00 (UTC)

Последние новости

Вышел Ruby 3.2.11

Вышел Ruby 3.2.11. В этот релиз вошло обновление гема zlib, устраняющее CVE-2026-27820.

Опубликовал hsbt 27-03-2026

Больше новостей...