Repository navigation
[dhcp] fix raw server option bounds checks - #11940
Conversation
Validate option headers and declared lengths before walking or returning options. Check minimum value sizes at the MESSAGE_TYPE and REQUESTED_IP call sites and bound parsing by the received packet length. Fixes: RT-Thread#11913
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: componentsReviewers: @Maihuanyi Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-10-28 16:42 CST)
📝 Review Instructions
|
拉取/合并请求描述:(PR description)
为什么提交这份PR (why to submit this PR)
Fixes #11913.
raw API DHCP 服务器在遍历客户端选项时,可能读取缺失的长度字节,或返回内容被截断的选项。MESSAGE_TYPE 和 REQUESTED_IP 调用点随后读取未检查长度的值,可能越界读取。此前还会按预分配的 1500 字节缓冲区解析,超过实际收到的数据范围。
你的解决方案是什么 (what is your solution)
请提供验证的bsp和config (provide the config and bsp)
验证结果:
提交前复核重新编译了上述主机测试,并复跑此前构建的 QEMU 镜像;该次复核未重新构建完整镜像。尚未做实板及全部架构验证。
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up