CVE fixes and regular maintenance #552

Closed
opened 2025-05-02 10:20:34 +00:00 by pat-s · 14 comments
Member

Aiming to make use of the forgejo-runner in a public instance, I'd be happy to see latest release being CVE free.

Running trivy fs . on this repo, I see

go.mod (gomod)

Total: 4 (UNKNOWN: 0, LOW: 0, MEDIUM: 3, HIGH: 1, CRITICAL: 0)

┌──────────────────────────────────┬────────────────┬──────────┬────────┬───────────────────┬────────────────┬───────────────────────────────────────────────────────────┐
│             Library              │ Vulnerability  │ Severity │ Status │ Installed Version │ Fixed Version  │                           Title                           │
├──────────────────────────────────┼────────────────┼──────────┼────────┼───────────────────┼────────────────┼───────────────────────────────────────────────────────────┤
│ github.com/containerd/containerd │ CVE-2024-40635 │ MEDIUM   │ fixed  │ v1.7.13           │ 1.7.27, 1.6.38 │ containerd: containerd has an integer overflow in User ID │
│                                  │                │          │        │                   │                │ handling                                                  │
│                                  │                │          │        │                   │                │ https://avd.aquasec.com/nvd/cve-2024-40635                │
├──────────────────────────────────┼────────────────┼──────────┤        ├───────────────────┼────────────────┼───────────────────────────────────────────────────────────┤
│ golang.org/x/crypto              │ CVE-2025-22869 │ HIGH     │        │ 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-22870 │ MEDIUM   │        │ v0.33.0           │ 0.36.0         │ golang.org/x/net/proxy: golang.org/x/net/http/httpproxy:  │
│                                  │                │          │        │                   │                │ HTTP Proxy bypass using IPv6 Zone IDs in golang.org/x/net │
│                                  │                │          │        │                   │                │ https://avd.aquasec.com/nvd/cve-2025-22870                │
│                                  ├────────────────┤          │        │                   ├────────────────┼───────────────────────────────────────────────────────────┤
│                                  │ CVE-2025-22872 │          │        │                   │ 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  

renovate already detects these as pending updates. However, it would be good to get these in and released in regular intervals.

Besides, a "vulnerability dashboard" (inspiration from Crow CI) as a pinned issue would help to see what is currently going on.

Aiming to make use of the `forgejo-runner` in a public instance, I'd be happy to see latest release being CVE free. Running `trivy fs .` on this repo, I see ``` go.mod (gomod) Total: 4 (UNKNOWN: 0, LOW: 0, MEDIUM: 3, HIGH: 1, CRITICAL: 0) ┌──────────────────────────────────┬────────────────┬──────────┬────────┬───────────────────┬────────────────┬───────────────────────────────────────────────────────────┐ │ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │ ├──────────────────────────────────┼────────────────┼──────────┼────────┼───────────────────┼────────────────┼───────────────────────────────────────────────────────────┤ │ github.com/containerd/containerd │ CVE-2024-40635 │ MEDIUM │ fixed │ v1.7.13 │ 1.7.27, 1.6.38 │ containerd: containerd has an integer overflow in User ID │ │ │ │ │ │ │ │ handling │ │ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-40635 │ ├──────────────────────────────────┼────────────────┼──────────┤ ├───────────────────┼────────────────┼───────────────────────────────────────────────────────────┤ │ golang.org/x/crypto │ CVE-2025-22869 │ HIGH │ │ 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-22870 │ MEDIUM │ │ v0.33.0 │ 0.36.0 │ golang.org/x/net/proxy: golang.org/x/net/http/httpproxy: │ │ │ │ │ │ │ │ HTTP Proxy bypass using IPv6 Zone IDs in golang.org/x/net │ │ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-22870 │ │ ├────────────────┤ │ │ ├────────────────┼───────────────────────────────────────────────────────────┤ │ │ CVE-2025-22872 │ │ │ │ 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 ``` `renovate` already detects these as pending updates. However, it would be good to get these in and released in regular intervals. Besides, a "vulnerability dashboard" ([inspiration from Crow CI](https://codeberg.org/crowci/crow/issues/20)) as a pinned issue would help to see what is currently going on.
Contributor

Agreed. The renovate dashboards:

are meant to propose updates when a direct dependency has a CVE that needs fixing. In this case it looks like none of them are. Which does not mean they don't deserve upgrading 😁

@viceice do you have an opinion?

Agreed. The renovate dashboards: - https://code.forgejo.org/forgejo/act/issues/47 - https://code.forgejo.org/forgejo/runner/issues/236 are meant to propose updates when a direct dependency has a CVE that needs fixing. In this case it looks like none of them are. Which does not mean they don't deserve upgrading 😁 @viceice do you have an opinion?
Owner

For such cases we usally activate lockfile maintenance, which would update all transitive deps to latest versions. We do it on forgejo.

For such cases we usally activate lockfile maintenance, which would update all transitive deps to latest versions. We do it on forgejo.
Owner

Checking why this doesn't work for go

":maintainLockFilesWeekly",

Ah renovate by default doesn't propose updates to indirect deps. We can enable it.

Checking why this doesn't work for go https://code.forgejo.org/forgejo/renovate-config/src/commit/15e2ce679099ad7da2f90b589fcb7b8d1def5015/default.json#L7 Ah renovate by default doesn't propose updates to indirect deps. We can enable it.
Owner

golang.org/x/crypto v0.31.0 // indirect


indirect

https://code.forgejo.org/forgejo/act/src/commit/af28212d7052afec0bf70d3c84da54c3fcebb4e9/go.mod#L95 indirect
Owner
https://docs.renovatebot.com/modules/manager/gomod/ ![image](/attachments/43b39d1e-5c44-46a1-bca5-2d6506c25d86)
Contributor

That's worth a try. There are ~60 of them, it is not overwhelming.

That's worth a try. There are ~60 of them, it is not overwhelming.
Author
Member

@earl-warren @viceice Is there any way I could help with reviewing/merging pending PRs?

@earl-warren @viceice Is there any way I could help with reviewing/merging pending PRs?
Owner

sure, feel free to review open PRs

sure, feel free to review open PRs
Author
Member

I meant to merge/review the pending sec PRs and eventually issue new releases. (Auto-merge is disabled for these in this repo.)

I meant to merge/review the pending sec PRs and eventually issue new releases. (Auto-merge is disabled for these in this repo.)
Owner

we need to check the renovate logs why those security fixes are not opened automatically. they are internally forced normally

we need to check the renovate logs why those security fixes are not opened automatically. they are internally forced normally
Owner

Ok, it seems security updates can't override the disabled state. 🤔

               {
                 "currentValue": "v0.31.0",
                 "datasource": "go",
                 "depName": "golang.org/x/crypto",
                 "depType": "indirect",
                 "enabled": false,
                 "managerData": {"lineNumber": 94, "multiLine": true},
                 "packageName": "golang.org/x/crypto",
                 "skipReason": "disabled",
                 "updates": []
               },
Ok, it seems security updates can't override the disabled state. 🤔 ```json { "currentValue": "v0.31.0", "datasource": "go", "depName": "golang.org/x/crypto", "depType": "indirect", "enabled": false, "managerData": {"lineNumber": 94, "multiLine": true}, "packageName": "golang.org/x/crypto", "skipReason": "disabled", "updates": [] }, ```
Owner
let's see if this works https://code.forgejo.org/forgejo/renovate-config/commit/4bff6dc36a286755b68eb720b14db21c33267ba1 https://docs.renovatebot.com/modules/manager/gomod/
Owner

i think this can now be closed?

i think this can now be closed?
Author
Member

Thanks for releasing an update.

My hopes are rather long-term, i.e. regular merges of important deps and (optionally) regular checks for CVEs using trivy or another related CVE scanning tool. The dependency dashboard list in this repo is also quite large and I think there's still room for improvement ;) But I'll close here for now and hope this is addressed or will be in the future without bringing this up again.

Thanks for releasing an update. My hopes are rather long-term, i.e. regular merges of important deps and (optionally) regular checks for CVEs using `trivy` or another related CVE scanning tool. The dependency dashboard list in this repo is also quite large and I think there's still room for improvement ;) But I'll close here for now and hope this is addressed or will be in the future without bringing this up again.
pat-s closed this issue 2025-06-30 17:00:20 +00:00
Sign in to join this conversation.
No milestone
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo/runner#552
No description provided.