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 4.0.5
Вышел Ruby 4.0.5.
Опубликовал k0kubun 20-05-2026
Вышел Ruby 4.0.4
Вышел Ruby 4.0.4.
Опубликовал k0kubun 11-05-2026
Вышел Ruby 4.0.3
Вышел Ruby 4.0.3.
Опубликовал k0kubun 21-04-2026
Вышел Ruby 3.2.11
Вышел Ruby 3.2.11. В этот релиз вошло обновление гема zlib, устраняющее CVE-2026-27820.
Опубликовал hsbt 27-03-2026