Skip to content

CVEs: Release-1.8 and Release-1.9 have CVEs that can only be resolved by upgrading to Go 1.23 #12173

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
cprivitere opened this issue May 8, 2025 · 12 comments
Labels
area/ci Issues or PRs related to ci area/dependency Issues or PRs related to dependency changes area/security Issues or PRs related to security kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@cprivitere
Copy link
Member

cprivitere commented May 8, 2025

The weekly security scan task has found two modules that have CVEs in our codebase.

  • golang.org/x/crypto
  • golang.org/x/net

To bump these to the fixed version (0.35 for crypto and 0.38 for net), we would need to bump the project to use 1.23. We don't generally do this as it'd force anyone consuming the module downstream to upgrade their go as well and that might not work for their projects or timelines.

This issue is to decide and document whether we should bump 1.8 and 1.9 to Go 1.23 or leave it as is.

@k8s-ci-robot k8s-ci-robot added needs-priority Indicates an issue lacks a `priority/foo` label and requires one. needs-kind Indicates a PR lacks a `kind/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels May 8, 2025
@cprivitere
Copy link
Member Author

I ran govulncheck with verbose output against the release-1.8 branch and got the following:

=== Symbol Results ===

No vulnerabilities found.

=== Package Results ===

Vulnerability #1: GO-2025-3595
    Incorrect Neutralization of Input During Web Page Generation in x/net in
    golang.org/x/net
  More info: https://pkg.go.dev/vuln/GO-2025-3595
  Module: golang.org/x/net
    Found in: golang.org/x/net@v0.33.0
    Fixed in: golang.org/x/net@v0.38.0

Vulnerability #2: GO-2025-3503
    HTTP Proxy bypass using IPv6 Zone IDs in golang.org/x/net
  More info: https://pkg.go.dev/vuln/GO-2025-3503
  Module: golang.org/x/net
    Found in: golang.org/x/net@v0.33.0
    Fixed in: golang.org/x/net@v0.36.0

=== Module Results ===

Vulnerability #1: GO-2025-3488
    Unexpected memory consumption during token parsing in golang.org/x/oauth2
  More info: https://pkg.go.dev/vuln/GO-2025-3488
  Module: golang.org/x/oauth2
    Found in: golang.org/x/oauth2@v0.21.0
    Fixed in: golang.org/x/oauth2@v0.27.0

Vulnerability #2: GO-2025-3487
    Potential denial of service in golang.org/x/crypto
  More info: https://pkg.go.dev/vuln/GO-2025-3487
  Module: golang.org/x/crypto
    Found in: golang.org/x/crypto@v0.31.0
    Fixed in: golang.org/x/crypto@v0.35.0

Your code is affected by 0 vulnerabilities.
This scan also found 2 vulnerabilities in packages you import and 2
vulnerabilities in modules you require, but your code doesn't appear to call
these vulnerabilities.

Meanwhile the trivy scan found these vulnerabilities, but does not tell you if they're called or not:

┌─────────────────────┬────────────────┬──────────┬────────┬───────────────────┬───────────────┬──────────────────────────────────────────────────────────┐
│       Library       │ Vulnerability  │ Severity │ Status │ Installed Version │ Fixed Version │                          Title                           │
├─────────────────────┼────────────────┼──────────┼────────┼───────────────────┼───────────────┼──────────────────────────────────────────────────────────┤
│ golang.org/x/crypto │ CVE-2025-22869 │ HIGH     │ fixed  │ v0.31.0           │ 0.35.0        │ golang.org/x/crypto/ssh: Denial of Service in the Key    │
│                     │                │          │        │                   │               │ Exchange of golang.org/x/crypto/ssh                      │
│                     │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2025-22869               │
├─────────────────────┼────────────────┼──────────┤        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────┤
│ golang.org/x/net    │ CVE-2025-22872 │ MEDIUM   │        │ v0.33.0           │ 0.38.0        │ golang.org/x/net/html: Incorrect Neutralization of Input │
│                     │                │          │        │                   │               │ During Web Page Generation in x/net in...                │
│                     │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2025-22872               │
└─────────────────────┴────────────────┴──────────┴────────┴───────────────────┴───────────────┴──────────────────────────────────────────────────────────┘

CVE-2025-22869 is the same as GO-2025-3487.
CVE-2025-22872 is the same as GO-2025-3595.

So I believe the question is now this:

Since govulncheck has identified the same issues as trivy along with two others (GO-2025-3503 and GO-2025-3488), and says all of them are not in code that's called by this project, do we trust govulncheck and ignore these CVEs?

@sbueringer
Copy link
Member

do we trust govulncheck and ignore these CVEs?

I would say yes.

@chrischdi @fabriziopandini?

I think if govulncheck determines we don't use the affected code we can't justify the breaking change of a go minor version bump in go.mod on release branches

@chrischdi
Copy link
Member

Yes we trust govulncheck. Otherwise we should never have added it.

@sbueringer
Copy link
Member

sbueringer commented May 9, 2025

@chrischdi Do you remember if we ever excluded CVE's in trivy and how to do it? (so we can get the action back to green)

@chrischdi
Copy link
Member

Yes, for trivy we can add a file like this:

https://github.com/k8s-infra-cherrypick-robot/cluster-api-provider-vsphere/blob/3da90355cb46cbe2a7f3365f2542150c9d152d22/.trivyignore

@sbueringer
Copy link
Member

Great! @cprivitere I think we can go ahead and add a .trivyignore file on the branches where it's needed

@cprivitere
Copy link
Member Author

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels May 9, 2025
@cprivitere
Copy link
Member Author

/area security
/area ci
/area dependency

@k8s-ci-robot k8s-ci-robot added area/security Issues or PRs related to security area/ci Issues or PRs related to ci area/dependency Issues or PRs related to dependency changes labels May 9, 2025
@cprivitere
Copy link
Member Author

/kind failing-test

@k8s-ci-robot k8s-ci-robot added kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. and removed needs-kind Indicates a PR lacks a `kind/foo` label and requires one. labels May 9, 2025
@cprivitere
Copy link
Member Author

/priority important-soon

@k8s-ci-robot k8s-ci-robot added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. and removed needs-priority Indicates an issue lacks a `priority/foo` label and requires one. labels May 9, 2025
@cprivitere
Copy link
Member Author

/close

@k8s-ci-robot
Copy link
Contributor

@cprivitere: Closing this issue.

In response to this:

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ci Issues or PRs related to ci area/dependency Issues or PRs related to dependency changes area/security Issues or PRs related to security kind/failing-test Categorizes issue or PR as related to a consistently or frequently failing test. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

No branches or pull requests

4 participants