Skip to content

[Bug Report]: Patch for CVE-2020-5235 in reused component nanopb #17

Description

@ltcdCai

Contact me: weitingcai2020@gmail.com

Version: master (default) Commit hash: 3d44f46

我通过使用V1SCAN(一个扫描存在于复用代码中1-Day漏洞的工具),发现您的项目中/sdk/合宙/air780e/csdk/luatos-soc-2022/thirdparty/nanopb/pb_decode.c文件中的decode_pointer_field函数可能存在类型为CWE-125 Out-of-bounds Read的漏洞,相关触发逻辑类似GHSA-6f6v-26gj-6crp, 具体参考链接如下:

CVE-2020-5235:
NVD说明链接:
https://nvd.nist.gov/vuln/detail/CVE-2020-5235
commit修复链接:
nanopb/nanopb@aa9d0d1

修复方法:
把/sdk/合宙/air780e/csdk/luatos-soc-2022/thirdparty/nanopb/pb_decode.c文件中的643-647行代码

                (*size)++;
                if (!allocate_field(stream, iter->pData, iter->pos->data_size, *size))
                    return false;
            
                pItem = *(char**)iter->pData + iter->pos->data_size * (*size - 1);

替换为如下代码:

                if (!allocate_field(stream, iter->pData, iter->pos->data_size, (size_t)(*size + 1)))
                    return false;
            
                pItem = *(char**)iter->pData + iter->pos->data_size * (*size);
                (*size)++;

考虑到其可能存在的潜在风险,我愿意配合您以负责任的方式及时核实、解决和报告发现的漏洞。 如果您需要任何进一步的信息或帮助,请随时与我联系。如果需要,我也可以提交PR帮助您修复。 谢谢您,期待尽快收到您的回复!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions