Astral 开源 tar-codec:速度快一倍,uv 0.131 起启用新 tar 解析
charliermarsh · x · 2026-10-28
Astral 发布 Rust 生态的 tar 解析器 tar-codec,速度约为原实现(astral-tokio-tar)的 2 倍,并显著降低 parser differential 等安全风险;从 0.131 版本起,uv 用它解析源码分发包(sdist)。作者 William Woodruff 发长文讲解设计动机与 tar 格式细节。
- 背景知识:sdist 本质是 tar 归档,而 sdist 在安装时会执行任意代码,因此解析器的安全性至关重要。tar 实际上是格式家族:UNIX V7(单文件 8GiB、路径 100 字节限制)、UStar/pax(限制放宽、pax 完全解除)、GNU tar(非标准化、以 CLI 实现为事实标准)。
- 核心难点是 differential:不同 tar 实现对同一输入的解析可能不一致,一个归档在此解析器眼里无害、在另一解析器解压时可能变成恶意行为。团队在开发中发现了大量这类原语,部分已作为安全漏洞披露,如 pax/GNU 状态机混淆导致完全 desync、pax 全局扩展头(g)与记录 tombstoning 的优先级误处理、pax 记录按 \n 切分的错误假设、整数解析的宽松程度差异等。
- 文末附上 tar-codec 的完整状态机图,展示从 AwaitingHeader 到 USTAR/PAX 或 GNU 分支、双零块结束判定等全部状态流转。代码开源于 astral-codec 仓库(Apache-2.0/MIT),目前处于早期阶段。
「编程与Agent」频道最新
- 程序员调侃:抱怨烂代码是 SWE 日常,如今却假装人人写干净代码 — vivekhaldar · 2026-10-28
- 放射学顶刊发表 Agentic AI 综述:agent 拓扑、评测与挑战全景 — jnkath · 2026-10-28
- Parsers 发布:一条 URL 进结构化 JSON 出,网页数据抓取一站搞定 — gaganghotra_ · 2026-10-28
- 实测「AI CEO」管 AI 团队:12 小时做出的游戏照样没法玩 — thisguyknowsai · 2026-10-28
- 开发者分享 Grok Bot 用法:每个项目单独开一个 bot 隔离上下文 — jonathan_wilke · 2026-10-28
- Cursor Design 模式上线标注功能:直接在运行中的应用上留言指挥 agent — testingcatalog · 2026-10-28