[Medium] Patch cmake for CVE-2026-4873, CVE-2026-6276, CVE-2026-6253, CVE-2026-6429, CVE-2026-5545#17430
[Medium] Patch cmake for CVE-2026-4873, CVE-2026-6276, CVE-2026-6253, CVE-2026-6429, CVE-2026-5545#17430jykanase wants to merge 2 commits into
Conversation
|
Full Build - https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1125929&view=results |
|
Two components in full build were failing hence retriggered failed jobs. Those pipelines usually don't fail. |
kgodara912
left a comment
There was a problem hiding this comment.
AI Summary:
Backport Verification — CVE Patches (curl bundled in cmake)
The cmake package bundles curl (~8.5-era). Upstream fixes target curl master which has undergone significant refactoring (e.g., ConnectionExists() was split into url_match_ssl_use(), url_match_auth_ntlm(), etc.; Curl_follow() became Curl_http_follow()). The backport patches reference Ubuntu/Canonical security diffs as the authoritative backport reference for this curl vintage.
CVE-2026-4873 — 507e7be5 url: do not reuse non-tls starttls connection
- Upstream: Uses refactored
url_match_ssl_use()withBIT(req_tls)struct field - Backport: Adapts the same check into the pre-refactor
ConnectionExists()function - Verdict: ✅ Semantically equivalent — rejects reuse of non-TLS STARTTLS connection when TLS is required
CVE-2026-5545 — 33e43985 url: improve connection reuse on negotiate
- Upstream: Adds SPNEGO state check in
url_match_auth_ntlm()(http_negotiate_state == GSS_AUTHNONE) - Backport: Identical conditional logic placed in
ConnectionExists()(pre-refactor equivalent) - Verdict: ✅ Same guard condition, different function location due to refactor
CVE-2026-6253 — 188c2f16 http: clear proxy credentials on port/scheme change
- Upstream: Extracts
Curl_reset_userpwd()+Curl_reset_proxypwd()helpers, refactorsCurl_pretransfer - Backport: Identical helper functions + additional proxy hardening from the same Ubuntu security diff (
cf-h1-proxy.cContent-Length/chunked reordering, error code corrections,CREDS_OPTIONdefine) - Verdict: ✅ Core logic matches; extra changes are from the same security context and strengthen credential handling
CVE-2026-6276 — 3a19987a urldata: move cookiehost to SingleRequest
- Upstream: Moves
cookiehostfromUrlState→SingleRequeststruct - Backport: Exact same transformation (
data->state.aptr.cookiehost→data->req.cookiehost) - Verdict: ✅ Direct cherry-pick — no adaptation needed for this change
CVE-2026-6429 — b4024bf808 http: clear credentials better on redirect
- Upstream: Two separate commits:
32a513e180introducesCurl_url_same_origin()+ h2 push origin check, thenb4024bf808uses it for credential clearing on redirect - Backport: Correctly squashes both commits into one patch since the prerequisite function doesn't exist in cmake's bundled curl. Adds
Curl_url_same_origin()tourlapi.c/urlapi-int.h, applies the h2 push origin check inhttp2.c, and uses same-origin comparison for credential clearing intransfer.c'sCurl_follow() - Verdict: ✅ Correctly combines prerequisite + fix; implementation is identical to upstream
Summary
| CVE | Adaptation | Result |
|---|---|---|
| CVE-2026-4873 | Adapted to pre-refactor ConnectionExists() |
✅ |
| CVE-2026-5545 | Adapted to pre-refactor ConnectionExists() |
✅ |
| CVE-2026-6253 | Includes extra proxy hardening from Ubuntu security diff | ✅ |
| CVE-2026-6276 | Exact match — no adaptation needed | ✅ |
| CVE-2026-6429 | Squashes prerequisite commit + fix (correct approach) | ✅ |
All 5 patches are correct semantic backports verified against the upstream curl commits.
| Patch17: CVE-2025-10966.patch | ||
| Patch18: CVE-2025-14524.patch | ||
| Patch19: CVE-2026-27135.patch | ||
| Patch20: CVE-2026-4873.patch |
There was a problem hiding this comment.
nit: indentation, except patch8, the others before current changes are having tabs. Please replace them with spaces.
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-staticsubpackages, etc.) have had theirReleasetag incremented../cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json)./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)*.signatures.jsonfilessudo make go-tidy-allandsudo make go-test-coveragepassSummary
Patch cmake for CVE-2026-4873, CVE-2026-6276, CVE-2026-6253, CVE-2026-6429, CVE-2026-5545
Backported Patch: yes
Patch reference:
Change Log
Does this affect the toolchain?
YES
Associated issues
Links to CVEs
Test Methodology