[release/2.8] Backport CVE-2026-33540 and CVE-2026-35172 fixes#1
[release/2.8] Backport CVE-2026-33540 and CVE-2026-35172 fixes#1yuzichen12123 wants to merge 4 commits into
Conversation
🤖 AI Code Review
SummaryThis PR backports two security fixes: CVE-2026-33540 (proxy realm trust-boundary) and CVE-2026-35172 (redis repo-scoped descriptor revocation). The changes introduce a Review Statistics
Critical Issues
Warnings
Positive Feedback
ℹ️ About this reviewThis review was automatically generated using the
|
bind proxy-mode bearer realms to the upstream trust boundary before sending credentials, move challenge filtering behind the auth manager, and use golang.org/x/net/publicsuffix for registrable-domain handling. (cherry picked from commit f215e51) Signed-off-by: yuzichen <1062955096@qq.com>
(cherry picked from commit 5cda728) Signed-off-by: yuzichen <1062955096@qq.com>
Signed-off-by: yuzichen <1062955096@qq.com>
f60be87 to
bef74e5
Compare
Signed-off-by: yuzichen <1062955096@qq.com>
| // Remove the repository-scoped membership and descriptor metadata in one transaction. | ||
| if _, err := conn.Do("MULTI"); err != nil { | ||
| return err | ||
| } |
There was a problem hiding this comment.
Critical (bug/connection-leak): This returns early without calling EXEC or DISCARD, leaving the Redis connection in MULTI state. The connection will be returned to the pool in a dirty state.
| } | |
| if _, err := conn.Do("SREM", rsrbds.repositoryBlobSetKey(rsrbds.repo), dgst); err != nil { | |
| conn.Do("DISCARD") | |
| return err | |
| } |
| } | ||
| if _, err := conn.Do("SREM", rsrbds.repositoryBlobSetKey(rsrbds.repo), dgst); err != nil { | ||
| return err | ||
| } |
There was a problem hiding this comment.
Critical (bug/connection-leak): Same issue - returns early without cleaning up the MULTI transaction state.
| } | ||
| if _, err := conn.Do("DEL", rsrbds.blobDescriptorHashKey(dgst)); err != nil { | ||
| return err | ||
| } |
There was a problem hiding this comment.
Critical (bug/connection-leak): Same issue - returns early without cleaning up the MULTI transaction state.
| // Deprecated: Use [reference.Domain] or [reference.Path]. | ||
| func SplitHostname(named reference.Named) (string, string) { | ||
| return reference.SplitHostname(named) | ||
| return reference.Domain(named), reference.Path(named) |
There was a problem hiding this comment.
Warning (refactor/behavior-change): This replaces SplitHostname with Domain + Path. These may have different semantics - please verify backward compatibility.
Summary\n- backport proxy realm trust-boundary fix (CVE-2026-33540)\n- backport redis repo-scoped descriptor revocation fix (CVE-2026-35172)\n- add redis regression test for repo-scoped clear behavior on v2\n\n## Notes\n- keep v2-compatible implementation and test strategy\n- do not pull v3-only test dependencies into release/2.8\n