deps: upgrade google.golang.org/grpc to v1.79.3 - #283
Conversation
* upgrade grpc from v1.75.0 to v1.79.3 to fix GHSA-p77j-4mvh-x3m3 * harden Actions runner ConnectRPC method parsing against malformed paths * add regression coverage for missing leading slash procedure paths
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR upgrades google.golang.org/grpc (and related x/* dependencies) to address GHSA-p77j-4mvh-x3m3, and hardens Actions runner request handling by rejecting malformed ConnectRPC procedure paths (notably those missing the required leading /) to prevent unintended auth bypass behavior.
Changes:
- Upgrade
google.golang.org/grpcfromv1.75.0tov1.79.3(plus aligned dependency bumps ingo.mod/go.sum). - Refactor runner interceptor method-name parsing into a stricter helper that requires a leading slash and a valid
.../<Method>shape. - Add regression tests covering malformed procedures, including the missing-leading-slash case.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
routers/api/actions/runner/interceptor.go |
Hardens procedure parsing used to gate unauthenticated Register and update runner activity timestamps. |
routers/api/actions/runner/interceptor_test.go |
Adds table-driven regression coverage for valid and malformed procedure strings. |
go.mod |
Bumps gRPC and related module versions to incorporate the security fix. |
go.sum |
Updates checksums corresponding to the module version upgrades. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
/review AI review started. |
Advanced AI Review
Click to expand reviewI'll investigate the changes thoroughly. Let me start by examining the relevant files and how the modified function is used.Let me verify the dependency changes are consistent (go.sum) and check for any gRPC API usage that could break.go.sum is in sync and the gRPC API surface used is minimal/stable. Let me run the new test and verify compilation.Let me set a writable module cache to run the test.Test passes and go.sum is fully consistent. Let me check whether there are other places in the codebase that parse procedure paths the same (now-hardened) way, which might also need the fix for consistency.Let me check the copyright header convention in this directory and the existing test patterns for consistency.## Review Summary The core change is sound: the gRPC dependency bump is consistent ( A few minor items below. 1. ⚪️ The
|
* removes single-use pass-through around getMethodNameFromProcedure
* harden getMethodNameFromProcedure so "//Method" returns instead of the method name * fail-closed is safe: empty method name always falls through to runner auth * relabel prefixed-path test case; connect's Spec().Procedure is always canonical "/pkg.Service/Method"
|
@taoeffect approved! ✅ |
Fixes gRPC-Go has an authorization bypass via missing leading slash in :path
AI Disclosure
Co-authored with: Fable 5