本包仍处于 pre-1.0 阶段,仅维护最新发布的次版本。安全修复会进入
main,并在数日内以 PATCH 发布。
| 版本 | 支持 |
|---|---|
| 0.1.x | ✅ |
| 更早 | ❌ —— 请先升级 |
请不要为安全问题开公开 issue。
请发邮件至 phpcraftdream@gmail.com,并提供:
- 对漏洞的简短描述。
- 复现步骤或代码片段(触发该行为的 Ktav 输入、受影响的 API、 预期结果 vs 实际结果)。
- 观察到问题时所用的版本(通常 JAR 坐标 +
Ktav.nativeVersion()的输出即可),以及 JDK、OS、arch —— 以便确认当时使用的是哪个 预编译ktav_cabi。 - 你偏好的披露时间线(如有)。
你应在 72 小时内收到确认。对于高影响问题,已发布的修复通常在 一周内跟进;如果修复需要与 Rust crate 或格式规范协同推进,则 可能更久。
以下问题会按本包的安全问题处理:
- 原生
ktav_cabi库中的越界读写或 panic,导致宿主 JVM 崩溃或 挂起。库通过 JNA(Native.load)加载 —— 原生崩溃会直接拉垮 整个 JVM,Java 侧任何catch都拦不住。 - 解析构造输入时出现失控的内存或 CPU 消耗。
- FFI 边界上的内存处理错误(double-free、missing free、
ktav_free后读取已释放缓冲区)。 - 任何允许构造的 Ktav 输入逃逸出预期值域的行为(加载库内的任意代码 执行、未初始化内存泄露等)。
- 下载期向量:
NativeLoader会从对应的 GitHub Release 拉取 预编译二进制。该路径上的 TLS / 完整性校验缺陷也上报到这里。
以下不算本包的安全问题 —— 请走普通 issue:
- 没有崩溃 / 挂起特征的性能回归。
- 不可利用的行为差异。
- Ktav 格式本身的问题 —— 这类问题属于
ktav-lang/spec。