[AutoPR- Security] Patch multus for CVE-2026-42502, CVE-2026-25681, CVE-2026-25680 [MEDIUM]#17580
Conversation
🔒 CVE Patch Review: CVE-2026-25680, CVE-2026-25681, CVE-2026-42502PR #17580 — [AutoPR- Security] Patch multus for CVE-2026-42502, CVE-2026-25681, CVE-2026-25680 [MEDIUM] Spec File Validation
Build VerificationBuild log analysis was skipped (no build ID available). Patch Analysis
Detailed analysisComparison of hunks shows the PR patch makes identical code changes to upstream, just applied to vendor/golang.org/x/net/html/parse.go instead of html/parse.go. Specifically: (1) import additions of "cmp" and "slices" are present; (2) a new attrCompare(a, b Attribute) function using cmp.Or and cmp.Compare on Namespace, Key, and Val is added; (3) in addFormattingElement, the attribute slice from the token (attr) is sorted via slices.SortFunc(attr, attrCompare) before searching; (4) the previous nested attribute comparison loop is replaced by a single condition using slices.Equal(n.Attr, attr); and (5) after adding the element, the attributes on the top node are sorted with slices.SortFunc(top.Attr, attrCompare) before appending to p.afe. Comments and surrounding context match upstream. No hunks are missing, altered, or added beyond the upstream changes; differences are limited to the patch file location, git metadata, and an added Signed-off-by/Upstream-reference in the patch header. Risk is low as this is a performance fix accepted upstream; the primary consideration is that it introduces dependencies on the Go 1.21 standard library packages cmp and slices, which must be supported by the build toolchain. Attribute order is now normalized (sorted) on the newly added node in this code path, which upstream considered acceptable; functional behavior for equality checks and the Noah's Ark clause is preserved with improved performance.Core fix equivalence: The PR changes vendor/golang.org/x/net/html/render.go in the same way as upstream:
Core fix equivalence: The PR modifies vendor/golang.org/x/net/html/render.go in childTextNodesAreLiteral exactly as upstream, inserting a parent-walk that checks for a non-empty namespace ancestor and verifies whether it is an HTML integration point. If a non-HTML integration point is encountered, it returns false, preventing raw-text rendering for fostered nodes in foreign content. The switch case set (iframe, noembed, noframes, noscript, plaintext, script, style, xmp) and logic are identical to upstream, including comments and control flow. Context alignment: The hunk applies at the same function and surrounding context as upstream (around line ~243), with only the added loop before returning true for the raw-text elements. Path/packaging differences: The change is applied to a vendored copy (vendor/golang.org/x/net/html/render.go) via SPECS/multus/CVE-2026-42502.patch rather than the upstream repository paths, which is normal for a distribution backport. Missing hunks: The PR does not include upstream test changes (parse_test.go blacklist entry, new render test, and testdata file). These omissions do not affect runtime behavior and are typical in packaging backports where tests may not be shipped or run. Risk assessment: Low. The change is narrowly scoped to rendering decisions for raw-text elements, aligns with upstream’s vetted fix, and reduces XSS risk by ensuring escaping when fostered into non-HTML namespaces without an integration point. Potential regressions are limited to correcting previously incorrect raw-text rendering in niche foster-parenting scenarios; no additional functional differences from upstream were observed. Verdict✅ APPROVED — All checks passed. Ready to merge. |
Auto Patch multus for CVE-2026-42502, CVE-2026-25681, CVE-2026-25680.
Autosec pipeline run -> https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1130161&view=results
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
What does the PR accomplish, why was it needed?
Change Log
Does this affect the toolchain?
YES/NO
Associated issues
Links to CVEs
Test Methodology