Socket#sendto 在新版 Ruby 中已被移除 — 影响 lib/ 和 modules/ 中的数十个调用点
作者: bandrel创建于 2026年8月12日更新于 2026年9月17日
标签Stale
□ 复制步骤
- 在已删除 " Socket#sendto " / " UDPSocket#sendto " 的Ruby安装上(确认从Ruby 4.0.3中删除;在先前的3.x版本中贬值),在UDP套接字上运行任何调用 ".sendto(数据、主机、端口、旗帜) " 的模块或库码路径。
- 对于UDPSocket(新鲁比)的一例,可观察去除警告(旧鲁比)或硬 “非方法:未定义的方法”“发送”。
鲁比行为的最小反射: 鲁比 需要“ socket ” s = UDPSocket. new (韩语). s. sendto ('x','127. 0.0.1', 9.) (中文(简体) ).
NoMethodError: 未定义方法“ sendto” 用于 UDPSocket 实例
□ 你是在跟随特定的指南/教义还是阅读文件?
没有
□ 预期行为
Metasploit 的 UDP 发送路径不管Ruby 版本, 都应该工作, 使用 “ send( meg, 旗帜, 主机, 端口) ” ( 或 “ Socket# sendmsg ” ) , 而不是删除的“ sendto ” 。
□ 当前的行为
`Socket#sendto' /`UDPSocket#sendto'在近期的Ruby 3.x被贬值,并在Ruby 4.0被完全清除(通过直接测试Ruby 4.0.3——提出`无用方法 ' 而不是警告). `metasploit-framework.gemspec ' 只要求Ruby QQ 3.1 ' ,因此随着用户运行关于较新的口译员的框架,这将日益中断。
这不限于`login scanner/snmp.rb'(此处最初报告)——在Ruby UDP原始套接字的整个编码库中采用了同样的`.sendto(.)'模式:
** 图书馆代码:**
- “lib/snmp/manager.rb”
- “lib/msf/core/exploit/remote/wdbrpc client.rb”(多个呼叫站点)
- “lib/msf/core/exploit/remote/ip.rb”
- “lib/msf/core/aulilary/udp scanner.rb”
- “lib/rex/proto/tftp/server.rb”
- " lib/rex/proto/dhcp/server.rb " (多个呼叫站点)
- “lib/rex/proto/dns/server.rb”
- “lib/rex/proto/ldap/server.rb”
- “lib/rex/proto/iax2/client.rb”
- " lib/rex/proto/tftp/client.rb " (多个呼叫站点)
- “lib/rex/proto/natpmp/packet.rb”
- “lib/metasploit/框架/login scanner/snmp.rb”
** 机动车:**
- " 模块/后/多/对接/多港口-交通.rb "
- “模块/后站/多级/升级/metasploit-pcaplog.rb”
- “模块/开发/osx/mdns/upnp-location.rb”
- `模块/开发/多/上/上/libupnp sdp overflow.rb'
- “模块/开发/窗口/密克/交叉口-device bof.rb”
- “模块/辅助/多斯/多斯/多斯/多斯/多斯/多斯”
- " 模块/辅助/服务器/接发/接发 "
- “模块/辅助/扫描器/vxworks/wdbrpc version.rb”
- “模块/辅助/扫描器/vxworks/wdbrpc bootline.rb”
- “模块/辅助/扫描器/扫描/bacnet l3.rb”
- “模块/辅助/扫描器/扫描/koyo login.rb”
- “模块/辅助/扫描器/tftp/net决定 tftp.rb”
- “模块/辅助/扫描器/tftp/ipswitch 什么supgold tftp.rb”
- “模块/辅助/扫描器/tftp/tftpbrute.rb”
- “模块/辅助/扫描器/ike/cisco ike biniginminure.rb”
- “模块/辅助/扫描器/管道/数字器”。
- “模块/辅助/扫描器/jenkins/jenkins udp broadcast enum.rb”
- “模块/辅助/扫描器/ipmi/ipmi-dumphashes.rb”
- “模块/辅助/扫描器/纳通/纳通-portscan.rb”
- 说吧
. . . . . . .内容来源: rapid7/metasploit-framework