漏洞总结 漏洞概述 这是一个关于 Erlang/OTP 模块的修复提交(Commit b057a9d)。主要解决了以下问题: 1. 内部特性暴露: 的类型规范(type spec)中意外暴露了内部随机端口号 的特性。 2. 绑定逻辑缺陷: 函数在随机绑定端口时,未正确执行最后一次端口 8 的尝试,且随机尝试次数过多(在正常机器上通常无需多次尝试即可成功)。 3. 模块一致性:SCTP 模块在端口号处理逻辑上与 TCP 和 UDP 模块不一致。 影响范围 该修复涉及 目录下的多个核心网络模块文件: 修复方案 1. 隐藏内部端口号:修改 中的 函数,确保 端口号不显示在类型规范中,并抑制由此产生的 Dialyzer 警告。 2. 修正绑定逻辑: 修改 中的 函数,确保实际上会尝试最后一次端口 8。 将随机尝试次数减少至 3 次,因为在“正常”机器上通常无需更多尝试。 3. 统一端口处理:修复 等 SCTP 模块,使其端口号处理逻辑与 TCP 和 UDP 模块保持一致。 4. 更新注释:在 中更新注释,说明使用 的原因(尽管该函数已过时,但为了简单起见仍在使用)。 代码变更摘要 截图中展示了具体的代码变更(Diff),主要包括: gen_udp.erl: 调整了 的类型定义,移除了 端口号的显示。 inet.erl: 修改了 和 相关的逻辑,增加了端口 8 的尝试,并限制了随机尝试次数。 inet_sctp.erl**: 调整了 和 等函数的参数处理,使其与 TCP/UDP 模块行为一致。