Skip to content

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

@ltcdCai

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帮助您修复。 谢谢您,期待尽快收到您的回复!

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