Skip to content
This repository was archived by the owner on May 13, 2026. It is now read-only.

Remediate critical Dependabot vulnerabilities in actions-runner-controller - #29

Closed
devin-ai-integration[bot] wants to merge 2 commits into
masterfrom
chore-sc-109239-remediate-critical-dependabot
Closed

Remediate critical Dependabot vulnerabilities in actions-runner-controller#29
devin-ai-integration[bot] wants to merge 2 commits into
masterfrom
chore-sc-109239-remediate-critical-dependabot

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented May 13, 2026

Copy link
Copy Markdown

What does this PR do?

Remediates a critical Dependabot vulnerability in firefliesai/actions-runner-controller by bumping golang.org/x/crypto from v0.1.0 to v0.31.0.

  • golang.org/x/crypto v0.1.0v0.31.0 (fixes GHSA-v778-237x-gjrc — "Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass")

golang.org/x/crypto v0.31.0 requires Go 1.20+ (it uses crypto/ecdh, introduced in Go 1.20). The repo was pinned to Go 1.19 / 1.18.2, so this PR also bumps the toolchain to Go 1.22 in every place that builds the controller:

  • go.modgo 1.19go 1.22
  • Dockerfilegolang:1.19.4golang:1.22.10
  • .github/workflows/golangci-lint.yamlgo-version: 1.19'1.22', golangci-lint v1.49.0v1.59.1 (older linter doesn't support Go 1.20+)
  • .github/workflows/validate-arc.yamlgo-version: '1.19''1.22'
  • .github/workflows/publish-arc.yamlgo-version: '1.18.2''1.22'

go mod tidy also incidentally re-pinned related golang.org/x/{net,sys,term,text} indirect modules to the versions that ship with crypto v0.31.0. No application code changes; the bump stays within the v0.x SemVer major for each module.

go build ./..., go vet ./..., and golangci-lint run (with v1.59.1 on Go 1.22) all pass cleanly locally.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

(Security / dependency remediation — no functional code changes. Toolchain bump from Go 1.19 → 1.22 is required by the security fix.)

How should this be manually tested?

  1. Verify the lint and CodeQL / Analyze (go) checks are green on this PR.
  2. Confirm Dependabot alert #12 for golang.org/x/crypto is auto-dismissed once this PR merges to master.
  3. (Optional) Build the controller image from this branch (docker build .) and run it against a test cluster to confirm runner orchestration still works end-to-end.

Known follow-up: Test ARC CI check

The Test ARC workflow runs make test, which invokes controller-gen v0.7.0 (pinned in the Makefile). controller-gen v0.7.0 has a known incompatibility with Go 1.20+ and panics during make generate with go/types nil pointer dereference. This panic exists on master the moment Go is bumped past 1.19 — it is not caused by the crypto bump itself.

Fixing the panic requires bumping controller-gen (e.g. to v0.14.0+), which regenerates ~53k lines of CRD YAML under config/crd/bases/. That is well outside the scope of a single CVE remediation, so it has been deliberately deferred to a separate follow-up PR. All CI checks on this PR are marked [optional] and Test ARC failing here does not block merge.

Any background context you want to provide beyond Shortcut?

Devin session

Slack thread

Shortcut story

Requested by: caio@fireflies.ai (caiocampoos)

Any Security implications

This PR is itself the security remediation — it closes GHSA-v778-237x-gjrc, where misuse of golang.org/x/crypto/ssh.ServerConfig.PublicKeyCallback could allow an attacker to authenticate as a user whose public key they merely know but do not control. The fix is a dependency bump that removes the vulnerable code paths from this repository's transitive dependency graph.

Link to Devin session: https://app.devin.ai/sessions/55da6d919f6a44b9b33dbf5ade690617
Requested by: @caiocampoos

@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@coderabbitai

coderabbitai Bot commented May 13, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@devin-ai-integration[bot] has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 6 minutes and 7 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 806be31f-a9e7-47d8-8c6d-9cd88e7c0d38

📥 Commits

Reviewing files that changed from the base of the PR and between f4f9d5e and b2b3712.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (5)
  • .github/workflows/golangci-lint.yaml
  • .github/workflows/publish-arc.yaml
  • .github/workflows/validate-arc.yaml
  • Dockerfile
  • go.mod
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore-sc-109239-remediate-critical-dependabot

Comment @coderabbitai help to get the list of available commands and usage tips.

@fireflies-bot

Copy link
Copy Markdown

🔍 PR Complexity Assessment

🟢 Risk Score: 2/10

[██░░░░░░░░]

📝 Summary

Security remediation PR that bumps golang.org/x/crypto from v0.1.0 to v0.31.0 to fix a critical authentication bypass vulnerability (GHSA-v778-237x-gjrc), along with related indirect dependency updates for golang.org/x/{net,sys,term,text}.

📊 Lines Analysis

Metric Count
Total Changes 30
Production Code 30
Test Code 0

💡 Recommendation

Low-risk security remediation. Verify CI passes (build, vet, unit tests) and confirm the Dependabot alert is resolved after merge. The dependency bump is straightforward with no functional code changes.


This assessment is automated and should be used as a guide. Please use your judgment when reviewing.

golang.org/x/crypto v0.31.0 requires Go 1.20+ (uses crypto/ecdh
introduced in Go 1.20). Bump go.mod, Dockerfile, and CI workflows
from Go 1.19/1.18.2 to Go 1.22 so the security fix compiles. Also
bump golangci-lint to v1.59.1 to support the newer toolchain.
@greguintow greguintow closed this May 13, 2026
@fireflies-bot

Copy link
Copy Markdown

Shortcut story archived (PR closed without merge): https://app.shortcut.com/fireflies/story/109239

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants