Skip to content

security(init-system): pin uv bootstrap and remove remote NodeSource scripts (#149)#179

Merged
liujuanjuan1984 merged 2 commits intomainfrom
eval/issue-149-init-system-supply-chain
Mar 13, 2026
Merged

security(init-system): pin uv bootstrap and remove remote NodeSource scripts (#149)#179
liujuanjuan1984 merged 2 commits intomainfrom
eval/issue-149-init-system-supply-chain

Conversation

@liujuanjuan1984
Copy link
Collaborator

@liujuanjuan1984 liujuanjuan1984 commented Mar 13, 2026

背景

本 PR 基于 #149 收窄后的范围,聚焦 scripts/init_system.sh 中仍然存在的两条“下载脚本后执行”链路:

  • Node.js 的 NodeSource setup script
  • uv 的远程 installer shell script

相关提交:

  • 7173d6b security(init-system): harden node and uv bootstrap paths (#149)
  • 05931f6 refactor(init-system): move uv release pins into static manifest (#149)

按模块说明

1. scripts/init_system.sh

  • 移除 NodeSource setup script 的远程执行路径。
  • Node.js 改为只信任发行版包管理器安装;若无法满足 NODE_MAJOR,则 fail-closed 并提示人工兜底。
  • uv 安装逻辑改为读取仓库内静态清单,执行固定官方 release tarball + SHA256 校验 + 本地解包安装。
  • 保留 OpenCode installer 的版本 pin + SHA256 校验逻辑。
  • 不在本 PR 内扩展到 repo clone 的版本 pin 策略;该部分转由 #178 跟进。

2. scripts/init_system_uv_release_manifest.sh

  • 新增 uv 静态清单文件。
  • uv 版本、release 基址、受信资产名与 SHA256 从主脚本中抽离。
  • 保持当前供应链 pin 安全模型不变,只优化数据与脚本逻辑分层。

3. scripts/init_system_readme.md

  • 补充当前 trust model。
  • 补充失败回退与人工兜底流程。
  • 明确 uv 静态清单文件和 Node.js 包管理器安装的推荐方式。

4. tests/test_init_system_security.py

  • 增加 uv release pin / checksum 的安全契约测试。
  • 增加“Node.js 不再执行远程 setup script”的约束测试。
  • 同步调整 OpenCode installer 下载 helper 断言。
  • 调整测试以覆盖新的静态清单文件结构。

回归

  • bash -n scripts/init_system.sh scripts/init_system_uv_release_manifest.sh
  • uv run pre-commit run --all-files
  • uv run pytest

关联

@liujuanjuan1984 liujuanjuan1984 changed the title security(init-system): harden node and uv bootstrap paths (#149) security(init-system): pin uv bootstrap and remove remote NodeSource scripts (#149) Mar 13, 2026
@liujuanjuan1984 liujuanjuan1984 marked this pull request as ready for review March 13, 2026 14:11
@liujuanjuan1984 liujuanjuan1984 merged commit cbabe7b into main Mar 13, 2026
3 checks passed
@liujuanjuan1984 liujuanjuan1984 deleted the eval/issue-149-init-system-supply-chain branch March 13, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Priority: Low] [Security] 加固 init_system 供应链安全基线(脚本安装链路)

1 participant