本文档描述 oxcache 的支持版本、漏洞报告流程与供应链门禁。所有条目均按仓库现有配置逐项核对(Cargo.toml、.github/workflows/、.cargo/audit.toml、deny.toml、.pre-commit-config.yaml、src/lib.rs)。
本项目处于 0.x 预发布阶段,仅维护当前 minor 版本线(0.5.x,含该线内的 rc 预发布版本)。
- 当前线:接收缺陷修复与安全修复,修复随该线的最新发布版本提供。
- 旧 minor 线:在下一个 minor 线的首个版本发布时即进入 EOL,不再提供任何修复,安全补丁也不回移。
- 不设 LTS:1.0 之前不承诺跨 minor 的 API 兼容性,minor 位升级可能包含破坏性变更,升级前请阅读 CHANGELOG。
- crates.io 可见性 ≠ 受支持:旧版本保持可下载(除非因严重缺陷执行 yank),但不属于受支持范围。
| 版本线 | 状态 | 说明 |
|---|---|---|
0.5.x(当前) |
✅ 支持 | 唯一接收修复的版本线 |
≤ 0.4.x |
❌ EOL | 已被当前线取代,不再维护,请升级 |
MSRV 为 Rust 1.97.1(根 Cargo.toml 的 [workspace.package] rust-version),edition 为 2024。
请勿通过公开 GitHub Issue 报告安全漏洞。
- 首选渠道:通过 GitHub Security Advisories 私密披露通道提交报告(仓库页 Security → Report a vulnerability)。
- 备选渠道:仅当首选通道不可用时,发送邮件至 Kirky-X@outlook.com(受理人:Kirky.X)。
报告请尽量包含:
- 受影响的版本与 feature 组合(如
--features full、redis/valkey/dragonfly/aerospike后端选择、serde-bincode等序列化特性) - 复现步骤或最小示例(含 L1/L2/L3 层级与 key 形态)
- 影响评估(CWE 分类如可判断)
- 可行的临时缓解措施
| 阶段 | 时间线 |
|---|---|
| 确认收到 | 48 小时内 |
| 初步评估(接受 / 拒绝 / 需补充信息) | 7 天内 |
| 已接受漏洞的修复 | 视严重程度尽快发布 |
| 协同披露 | 修复版本可用后,与报告者约定日期 |
修复发布前,报告者可获得补丁的预览验证机会;致谢方式(可匿名)与报告者协商确定。
以下门禁已在仓库中实际配置并执行:
| 门禁 | 位置 | 内容 |
|---|---|---|
| 格式与 Lint | ci.yml · fmt / clippy |
cargo fmt --check;cargo clippy -- -D warnings(零告警) |
| 编译与特性矩阵 | ci.yml · check / feature-redis-tier / feature-minimal;feature-matrix.yml |
含 Redis 分层与最小特性组合的编译检查 |
| 测试 | ci.yml · test / test-critical-combinations |
全量测试与关键特性组合测试 |
| 依赖漏洞审计 | ci.yml · security;dependency-check.yml |
cargo audit(读取 .cargo/audit.toml)、cargo deny check |
| 静态安全分析 | codeql.yml |
CodeQL Rust 分析 |
| 覆盖率门禁 | ci.yml · coverage |
cargo llvm-cov --features full --workspace --fail-under-lines 90 |
| 本地钩子 | .pre-commit-config.yaml |
detect-private-key、detect-secrets、typos、cargo fmt / check / clippy(local hooks) |
| 依赖与许可证治理 | deny.toml、.cargo/audit.toml |
许可证 / banned / advisory 检查与审计豁免 |
| 依赖更新 | .github/dependabot.yml |
cargo / github-actions 生态位每周跟踪 |
| 不安全代码约束 | src/lib.rs |
#![deny(unsafe_code)] |
.cargo/audit.toml 与 deny.toml 同口径记录以下一条 RustSec 豁免,为依赖树可达但不可利用/无升级路径的形态:
RUSTSEC-2025-0141(bincode 被作者标记 unmaintained):已升级至 2.0.1,仅在serde-bincode特性下用于本地缓存条目序列化,无网络输入面;出路为postcard(已在依赖中)。
豁免不构成安全行为变更;依赖故障与降级语义见 🏗️ 架构文档。
- 生产环境按最小特性集启用后端,避免暴露未使用的连接面;连接串与凭据一律来自环境变量或密钥服务,不写入配置文件明文。
- 缓存 key 由不可信输入构成时,先做长度与字符集约束再入表(
validate_redis_key与redact_value/redact_connection_string见example_security/example_security_validation示例)。 - 关注
cargo audit与cargo deny的输出,保持依赖与工具链更新。
维护人:Kirky.X。