python: signature verification can never succeed for Python 3.14+
维护者通常 1 天内回复
@V-Subhankar-infy 已经在做这个了。
开始于 2026年11月5日。
评估
调研方向
Start in src/python/install.sh around lines 532-591, where the cosign and signature downloads run. Reproduce the curl exit code 2 from -f combined with --fail-with-body, then check the .sigstore URL that python.org serves for 3.14+. Done means the downloads succeed, cosign verify-blob checks the bundle against the signer identity python.org lists, and a failed check stops the build or logs a real error.
由索引模型根据 Issue 内容生成。
描述
Summary
In the python feature (1.8.0, and src/python/install.sh on main), the cosign check for Python 3.14+ always fails, so these versions are always built from source without signature verification. The build continues and logs that this is expected for newly released versions, but it happens for every version.
Causes
-
Invalid curl flags. The cosign and signature downloads (lines 532, 544, 585, 591) pass both
-fand--fail-with-body, which curl rejects with exit code 2. Most of these calls send stderr to/dev/null, and none of them surfaces the real error, so it looks like a failed download.curl -L -f --fail-with-body https://www.python.org/ftp/python/3.14.10/Python-3.14.10.tgz.crt -o /dev/null # curl: option --fail-with-body: is badly used here # exit code 2Reproduced with curl 8.14.1 (in a dev container built from
mcr.microsoft.com/devcontainers/base:debian) and curl 8.7.1 (macOS). With--fail-with-bodyalone, the same request exits 0. -
Wrong certificate URL. Lines 580-581 look for
.sigand.pem. For 3.14.10, python.org returns 200 for.sig,.crtand.sigstore, and 404 for.pem. Fixing the curl flags alone would still fail at this step. -
Any signer is accepted. The
cosign verify-blobcall uses--certificate-identity-regexp=".*"and--certificate-oidc-issuer-regexp=".*". Even a passing check wouldn't show that the Python release manager signed the file. -
The build continues after a failed check. If verification fails, the script logs a warning and builds the tarball anyway, and there is no checksum check. The warning says this is "expected for newly released versions where cosign signatures are not yet available", which hides the failure.
Impact
Every Python 3.14+ build from source through this feature skips signature verification. The tarball is still downloaded over HTTPS, so this doesn't create an attack by itself, but the protection that replaced PGP for 3.14+ isn't working.
Suggested fix
-
Remove
-ffrom the affected curl calls. -
Verify with the
.sigstorebundle and the signer identity that python.org lists for each release series. This command returnedVerified OKfor 3.14.10 with cosign 3.1.4, and failed when given a different identity:cosign verify-blob \ --bundle Python-3.14.10.tgz.sigstore \ --certificate-identity [email protected] \ --certificate-oidc-issuer https://github.com/login/oauth \ Python-3.14.10.tgz -
Consider failing the build when verification fails, or at least changing the warning so it doesn't describe a failure as expected.
- 主要语言
- Shell
- 星标
- 1.6k
- 派生
- 627
- 平均合并
- 1 天 19 小时
- 30 天内合并 PR
- 5
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
devcontainers/features 的其他 Issue
-
Terraform feature fails to install due to tflint checksum可能已有人在做 @v-Kaniska244 于 6 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
devcontainers/features#1757 · 1 条评论 · 1 个 reaction · 已指派 2 人 ·
维护者通常 1 天内回复
-
go feature: "init:true" prevents any further use cases that require "init:false", such as running systemd as PID1可能已有人在做 @v-Kaniska244 今天认领。 未关闭
难度 3/5 1-2 天 新手友好度 55/100
devcontainers/features#1765 · 已指派 1 人 ·
维护者通常 1 天内回复
-
docker-outside-of-docker: processes started before the entrypoint's `groupmod` keep stale groups and cannot use the socket可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 4/5 3-5 天 新手友好度 18/100
devcontainers/features#1760 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 38/100
devcontainers/features#1754 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
devcontainers/features#1730 ·
维护者通常 1 天内回复
查看 devcontainers/features 的全部 Issue
相似的 Issue
-
Shell framework build fails at "copy the shader libraries": the iOS shader libraries are now one file b-<chain>.img可能已有人在做 @xiaofeng-han 今天认领。 未关闭build ios
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
clawsweeper:fix-shape-clear clawsweeper:needs-maintainer-review clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster P2
难度 2/5 1-3 小时 新手友好度 76/100
openclaw/crabbox#3058 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
needs-triage S3: minor
难度 2/5 1-3 小时 新手友好度 78/100
manaflow-ai/cmux#36796 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
YunoHost-Apps/snappymail_ynh#205 ·
-
ai bug priority-low
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复