SBOM 与安全审计
pg_mooncake 0.3.0 的软件物料清单(versions.json)、子模块版本矩阵以及 2026-11-05 Cargo RustSec 依赖安全审计报告。
本页记录了 pg_mooncake v0.3.0、duckdb_mooncake v0.0.2 与 moonlink v0.0.1 的精确子模块版本矩阵(versions.json)以及 Cargo 依赖安全审计结果。
组件与子模块版本矩阵(versions.json)
pgsty/pg_mooncake 在仓库根目录的 versions.json 中记录了所有子模块与上游依赖的精确提交哈希:
| 组件 | 路径 | 代码仓库 | 标签 / 分支 | Commit SHA | 许可证 |
|---|---|---|---|---|---|
pg_mooncake |
/ |
pgsty/pg_mooncake |
v0.3.0 |
1a9cbfd65be9a6486d020120acb49ef0c6800d68 |
MIT |
duckdb_mooncake |
duckdb_mooncake |
pgsty/duckdb_mooncake |
v0.0.2 |
49765a369ad88986916ce53c969ed2ce4ba66fac |
MIT |
duckdb(嵌套子模块) |
duckdb_mooncake/duckdb |
duckdb/duckdb |
v2.0.0 |
d54cbbe3df17e8e5ce68312f483b4155836112aa |
MIT |
moonlink |
moonlink (duckdb_mooncake/moonlink) |
pgsty/moonlink |
v0.0.1 |
b298ef7444890e3c8af5544e350232518bcfd8e5 |
BSL-1.1 + 豁免(客户端 crate 为 MIT) |
pg_duckdb |
pg_duckdb |
pgsty/pg_duckdb |
v1.2.0 |
8756099e267c47f0b86c24de4cf995327f1f4279 |
MIT |
rust-postgres |
rust-postgres |
sfackler/rust-postgres |
master |
14c8e599f5551a8caa96ff5023685a6f537a1455 |
Apache-2.0 OR MIT |
核心 Rust 工具链与框架版本
| 依赖项 | 版本 | 职责说明 |
|---|---|---|
pgrx / cargo-pgrx |
0.19.3 |
Rust PostgreSQL 扩展开发框架(支持 PostgreSQL 14–18)。 |
iceberg |
0.6.0 |
moonlink 中的 Apache Iceberg 表元数据与 Catalog 客户端。 |
arrow / parquet |
55.2.0 |
moonlink 中的列式内存格式与 Parquet 文件写入器。 |
datafusion |
48.0.1 |
moonlink 中的表达式求值与谓词裁剪引擎。 |
opendal |
0.53.1 |
统一对象存储抽象层(支持 fs、s3、gcs、azblob)。 |
tonic / prost |
0.14.5 / 0.14.3 |
pg_mooncake 与 moonlink 之间的 gRPC / IPC 协议序列化。 |
tokio |
1.53.0 |
后台数据摄入与对象存储 I/O 的异步运行时。 |
2026-11-05 Cargo 依赖安全审计报告
我们使用 cargo-audit 0.22.2 对照 RustSec 漏洞数据库(commit 965bf9ad083b58e6340d65829d85217b18be9290,共加载 927 条安全公告)对全部三个 Cargo 工作区进行了审计与修复。
修复前后对比汇总
| 锁文件 | 修复前 | 修复后 | 降幅 |
|---|---|---|---|
pg_mooncake/Cargo.lock |
33 个漏洞、1 个 unsound、19 条警告 | 6 个漏洞、0 个 unsound、15 条警告 | 漏洞减少 27 个(-82%),unsound 清零 |
moonlink/Cargo.lock |
46 个漏洞、1 个 unsound、28 条警告 | 15 个漏洞、0 个 unsound、24 条警告 | 漏洞减少 31 个(-67%),unsound 清零 |
duckdb_mooncake/moonlink_ffi/Cargo.lock |
1 个漏洞、0 个 unsound、0 条警告 | 0 个漏洞、0 个 unsound、0 条警告 | -100%(完全清零) |
已修复的关键安全漏洞
- 直接依赖跨大版本升级:
tonic 0.12 -> 0.14.5、prost 0.13 -> 0.14.3(消除了RUSTSEC-2026-0001rkyv内存耗尽 DoS 以及duckdb_mooncake中的RUSTSEC-2024-0436paste停更警告)。bincode 1.3.3 -> 2.1.0(启用serde兼容路径,修复RUSTSEC-2025-0141)。opentelemetry 0.27 -> 0.31.0、opentelemetry-otlp 0.27 -> 0.31.1、tracing-opentelemetry 0.28 -> 0.32.1。reqwest 0.12.20 -> 0.12.28;通过升级testcontainers 0.23.3 -> 0.27.2彻底移除存在 PAX 头解析漏洞(RUSTSEC-2025-0065)的tokio-tar。
- 传递依赖安全升级:
bytes 1.10.1 -> 1.11.1(RUSTSEC-2026-0007:BytesMut::reserve整数溢出)。quinn-proto 0.11.12 -> 0.11.14(RUSTSEC-2026-0037:Quinn 端点拒绝服务漏洞)。rustls 0.23.28 -> 0.23.37与rustls-webpki 0.103.3 -> 0.103.12(RUSTSEC-2026-0049、RUSTSEC-2026-0098、RUSTSEC-2026-0099:CRL 分发点与通配符名称约束校验修复)。aws-lc-rs 1.13.1 -> 1.16.3与aws-lc-sys 0.29.0 -> 0.39.1(修复 7 项 PKCS7 / AES-CCM / X.509 侧信道与逻辑漏洞)。lz4_flex 0.11.4 -> 0.11.6(RUSTSEC-2026-0041:内存信息泄露)。tar 0.4.44 -> 0.4.45(RUSTSEC-2026-0067与RUSTSEC-2026-0068:PAX 大小头处理与符号链接权限漏洞)。time 0.3.41 -> 0.3.47(RUSTSEC-2026-0009:RFC 2822 解析栈耗尽 DoS)。wasmtime 29.0.1 -> 43.0.1(修复 12 项 WASI/Wasmtime 沙箱漏洞及regalloc2内存安全问题)。glib 0.20.12 -> 0.22.4(消除RUSTSEC-2026-0097VariantStrIterunsound 问题)。
剩余受上游锁定的传递依赖说明
pg_mooncake/Cargo.lock 中剩余的 6 条通告均来自 iceberg 0.6.0(锁定了 arrow 55、parquet 55、avro-schema 0.3 与旧版传递依赖)以及 moonlink 中的 deltalake-core 0.26.0:
rsa 0.9.10(RUSTSEC-2023-0071):由iceberg-catalog-sql -> sqlx-mysql传递引入,moonlink运行时仅初始化 PostgreSQL/REST Iceberg Catalog,不触发 MySQL RSA 握手机制。md5 0.7.0(RUSTSEC-2025-0146,已更名为md-5):由avro-schema 0.3.0引入。snappy 0.4.0(RUSTSEC-2026-0046,超大缓冲区 >4 GiB 时的整数截断):由avro-schema 0.3.0引入,而 Iceberg Avro 清单文件通常仅为 KB 到 MB 级别。rustls-webpki 0.102.8(RUSTSEC-2026-0049、0098、0099):由iceberg 0.6传递树中的旧版依赖引入,主 TLS 链路已全部使用修复后的rustls-webpki 0.103.12。