# CVE-2026-46727: Use-after-free in pthread-based getaddrinfo timeout handler

DevFeed: [CVE-2026-46727: Use-after-free in pthread-based getaddrinfo timeout handler](<https://devfeed.tech/articles/cve-2026-46727-use-after-free-in-pthread-based-getaddrinfo-timeout-handler-19152.md>)

Original publisher: [Read original article](<https://www.ruby-lang.org/en/news/2026/05/20/getaddrinfo-cve-2026-46727/>)

Published: 2026-05-20T00:00:00Z

Content type: news

Language: en

Sources: [Ruby-lang](<https://devfeed.tech/sources/ruby-lang.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [race-condition](<https://devfeed.tech/topics/race-condition.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [cve](<https://devfeed.tech/tags/cve.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

## AI overview

Ruby discloses CVE-2026-46727, a use-after-free vulnerability in the pthread-based getaddrinfo timeout handler. A race condition may cause a Ruby process to crash when an attacker delays DNS responses near the specified timeout. Ruby 4.0.5 fixes the issue.

## Source excerpt

A use-after-free vulnerability has been discovered in the pthread-based getaddrinfo timeout handler of Ruby. This vulnerability has been assigned the CVE identifier CVE-2026-46727. This issue has been fixed in Ruby 4.0.5. We recommend upgrading Ruby. Details A race condition exists in the timeout cancellation path of rb_getaddrinfo used by Addrinfo.getaddrinfo(..., timeout:) and Socket.tcp(..., resolv_timeout:). A remote attacker who can delay DNS responses near the specified timeout may cause the Ruby process to dereference freed memory and crash. Recommended action Please update to Ruby 4.0.5 or later. Workaround If you cannot upgrade immediately, avoid passing timeout: to Addrinfo.getaddrinfo and resolv_timeout: to Socket.tcp. Affected versions Ruby 4.0.0 through 4.0.4 Ruby 4.1.0-dev (master) before the fix Ruby 3.4 series and earlier are not affected. Credits Thanks to cantina-security for discovering this issue. Also thanks to shioimm for creating the patch. History Originally published at 2026-05-20 00:00:00 (UTC) Posted by hsbt on 20 May 2026