| 版本 | 是否接收安全报告 |
|---|---|
| 1.x | 是 |
| 0.x(历史实现) | 否;请升级到 1.x |
请不要使用公开的 issue 或 Pull Request 报告安全问题。任选一种私密渠道:
- 通过 GitHub 的 私密漏洞报告 提交;
- 发送邮件到 ld-1@163.com,标题以
[gbcodec security]开头。
报告中请尽量包含:
- 受影响的版本或提交号;
- 平台与编译器;
- 触发问题的最小输入(字节序列、缓冲区大小、函数名);
- 你观察到的影响(越界读/写、崩溃、信息泄露等);
- 如有,附上 ASan / UBSan 或调试器的输出。
- 收到报告后 7 天内确认并给出初步判断;
- 在私密分支上复现并修复,同时补充回归测试;
- 修复版本发布后,在 GitHub Security Advisory 中公开细节,并在
CHANGELOG.md中记录; - 默认在修复发布后再公开,如需 CVE 编号请一并告知。
gbcodec 是一个纯计算库,不涉及文件、网络、进程或环境变量。安全相关的关注点
集中在不可信输入上:
- 输入长度由调用方给出,函数不会读取
src_length之外的字节; - 目标缓冲区容量由调用方给出,函数不会写到
dst_capacity之外; - 所有长度与容量都经过显式检查,缓冲区不足返回
GBC_E_BUFFER_TOO_SMALL; - 除内部只读码表外没有全局可变状态,因此可安全地从多线程并发调用;
- 不调用
malloc/free,不进行格式化字符串操作。
不属于安全漏洞的情况:
- 传入错误的
src_length/dst_capacity(例如比实际缓冲区大),这属于调用方 的错误用法; - GBK / GB18030 字符无法映射——这是设计上的限制,见 docs/compatibility.md;
- 拒绝非法 UTF-8 / UTF-16 输入。