build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.2 in /server - #158
PeterGuy326 merged 2 commits into
Conversation
|
发现问题并修改的问题 |
|
@dependabot rebase |
|
Looks like this PR has been edited by someone other than Dependabot. That means Dependabot can't rebase it - sorry! If you're happy for Dependabot to recreate it from scratch, overwriting any edits, you can request |
PeterGuy326
left a comment
There was a problem hiding this comment.
Independent review: the diff is limited to google.golang.org/grpc and its go.sum/go.mod resolution. The server dependency tests and the full Go test suite passed locally; required CI is green. The upstream release notes include the xDS/RBAC fail-closed and HTTP/2 robustness fixes relevant to this service. Approving for squash auto-merge.
|
Not a review. This comment carries no approval or request-changes, is not an acceptance, and authorizes nothing. I did not merge, close, unqueue, re-label, re-assign, or run "Update branch" on anything. Readings are live as of 1. This is a security fix, not a routine bumpThere is an open HIGH Dependabot alert on this repository for the exact package this PR moves — alert
For scale, in both directions: that same query returns five open alerts, so merging #158 does not clear the board — It reads like a minor-version jump for a patch-level advisory because there is no 1.82.x backport — the advisory lists only 2. Verification I actually ran (not a diff read)Provenance first. Snapshot at I then took
Transitive requirements check out without touching anything else — grpc 1.83.1 asks for What I did not verify: 3. Sizing the exposure honestlyMerging this is right, but it is not an incident for this repo, and I would rather say so than inflate it:
4. State has moved under this PR, and the green predates the new gatesAs of The consequence is specific: #158's 15/15 green was produced by the workflow set that existed when this branch last touched main.
i.e. the CVE-fix PR has not run the checks whose purpose is dependency and source hygiene. Those legs will only execute after the branch is refreshed. 5. What the gate is actually short, and what refreshing the branch costsLive as of the moment this comment was posted:
So the missing thing is a second approving review, and on the current head the only requested reviewer who is not me is The trap is that §4 and this interact. Two PRs in this repo reached
I used to read #137 as proof that an operator's own approval counts. The date undercuts that: the protection config ( The rule itself is not readable from here (
Held loosely, the arithmetic: the code-owner set is 6. Self-disclosureBoth One more thing so it stops being news later: those commits carry a personal author email rather than this account's noreply address. It is not exposure created by this PR — the same address is already on Not done, deliberately: no review submitted, no merge, no auto-merge change, no branch update, no label/assignee/milestone change, no closing of the Dependabot alert, and no message posted to any chat channel. |
Dismissing my own approval of 2026-09-06. It is no longer correct: GHSA-2v4p-qf9q-27wj (published 2026-09-08, high) covers google.golang.org/grpc >= 1.83.0, < 1.83.2, so the 1.83.1 target this PR bumps to is itself vulnerable. The Dependency review gate (fail-on-severity: high, fail-on-scopes: runtime) correctly fails on this head. Patched version is 1.83.2.
|
Do not merge this PR. Dismissing my own approval of 2026-09-06 — it was correct when written and is wrong now. What the
|
| Advisory | Severity | Vulnerable range | First patched |
|---|---|---|---|
| GHSA-vp52-pcj8-j9qc | high | <= 1.83.0 |
1.83.1 |
| GHSA-qc2q-p7wx-3px3 | medium | <= 1.83.0 |
1.83.1 |
| GHSA-2v4p-qf9q-27wj | high | < 1.82.2 and >= 1.83.0, < 1.83.2 |
1.82.2 / 1.83.2 |
This PR lands 1.83.1, which closes the first two and is itself inside the third one's range. Net effect: one high alert traded for a different high alert, and the gate stays red.
GHSA-2v4p-qf9q-27wj was published 2026-09-08, two days after my approval, which is why the approval looks reasonable in isolation. It is not.
The only version that clears all three is 1.83.2 (released 2026-08-25).
Action
@dependabot recreate
Recreating against the current advisory set should target 1.83.2. If it does not, a manual build(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.2 in /server is the change that is needed; main is carrying two high-severity advisories today, so this is worth not waiting on.
Leaving this PR open rather than closing it by hand so the recreate lands on the same thread.
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.82.1 to 1.83.2. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](grpc/grpc-go@v1.82.1...v1.83.2) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-version: 1.83.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
5343cab to
efb231b
Compare
PeterGuy326
left a comment
There was a problem hiding this comment.
Approving for squash auto-merge.
Why this approval replaces the one I dismissed
I approved this PR's predecessor at 1.83.1 and then dismissed that review (PUT /pulls/158/reviews/5123915933/dismissals) because it was wrong: 1.83.1 sat inside a high-severity advisory range that published after Dependabot opened the PR. I asked Dependabot to recreate it. This head is the result, and it targets 1.83.2.
The reason that history is worth restating rather than quietly re-approving: my dismissed review asserted that 1.83.1 carried specific upstream fixes. That assertion was true and irrelevant — a bump can carry the fixes it claims and still land inside an advisory. What follows is the check that actually matters.
Advisory verification, queried live just now
GET /repos/bytefolk/mem/dependabot/alerts?state=open returns exactly three open alerts, all on server/go.mod, all google.golang.org/grpc:
| Alert | GHSA | Severity | Vulnerable range | First patched | Cleared by 1.83.2? |
|---|---|---|---|---|---|
| #74 | GHSA-vp52-pcj8-j9qc |
high | <= 1.83.0 |
1.83.1 | yes — 1.83.2 > 1.83.0 |
| #78 | GHSA-2v4p-qf9q-27wj |
high | < 1.82.2 |
1.82.2 | yes — 1.83.2 ≥ 1.82.2 |
| #79 | GHSA-qc2q-p7wx-3px3 |
medium | <= 1.83.0 |
1.83.1 | yes — 1.83.2 > 1.83.0 |
1.83.2 is the minimum version that clears all three simultaneously, and it is above every first_patched_version in the set. Choosing it over 1.83.1 is specifically what closes #78, whose range the earlier target fell inside.
Diff scope
Two files, nothing else:
server/go.mod+5/-5— the only dependency line moved isgoogle.golang.org/grpc v1.82.1→v1.83.2server/go.sum+20/-20— hash lines for grpc and its transitive set
No source file, no workflow, no test, no lockfile outside the Go module graph.
CI
20/20 checks green on head efb231b8f85d48c5ba42fec5eb79933949e502d8, zero non-success. That includes all three required CodeQL contexts — CodeQL (go), CodeQL (python), CodeQL (javascript-typescript) — plus Go and PostgreSQL integration.
Worth stating why that is not automatic: this is a same-repo branch (bytefolk/mem, fork: false). bytefolk-security.yml:36 guards the CodeQL job with github.event.pull_request.head.repo.full_name == github.repository, so a fork head would skip it and the required contexts would never report. I have left a note on the three open fork PRs in this repository (#125, #172, #181) that are permanently blocked by exactly that. This PR is not one of them.
What I am not claiming
I have not built the server against 1.83.2 locally, and I have not exercised any gRPC code path by hand. The evidence is: the version arithmetic above, the diff being confined to the module graph, and CI's own Go and PostgreSQL-integration legs passing on this head. For a Dependabot patch-level bump inside a range whose advisories I have read, that is the proportionate bar — but it is CI's green, not a manual run, and I would rather name that than let it pass as something stronger.
require_last_push_approval is on for this repository, so this approval counts only because Dependabot is the last pusher on this head. If a maintainer pushes to the branch, my approval stops being sufficient and a fresh one is needed.
## Canonical requirement Refs bytefolk/.github#32 - Canonical Issue URL: bytefolk/.github#32 - Consumed revision: R1 - No automatic close keywords: acknowledged Decision reference: the initial R1 Issue body. It explicitly records that local candidates preceded this prospective publication record; no retrospective approval is claimed. ## Requirement trace | REQ/AC IDs | Changed files / domain | Tests or review evidence | |---|---|---| | REQ-001 / AC-001 | 4 exact-pinned version annotations | Exact expected-byte replacement PASS | | REQ-002 / AC-002 | 2 files in bytefolk/mem | Repository inventory PASS; aggregate 7 repositories, 13 files, 21 lines | | REQ-003 / AC-003 | Existing workflow content and modes | Parsed YAML and comment-stripped bytes identical | | REQ-004 / AC-004 | Current-head CI and independent review | Local independent replay recorded in the canonical R1 Issue linked above; hosted CI collected on head `f464f686` (19 of 20 checks succeed, see Validation); independent human review requested and still pending | ## File domains `.github/workflows/bytefolk-scorecard.yml` (47); `.github/workflows/bytefolk-security.yml` (58, 65, 68). Prepared parent / merge base: `2986fe38175f54d99f15dd38a498708c6ecd88cd` PR base at publication: `87db0dfe0507be2190fe2fdcce0e267be8224f4d`. Since that baseline `main` advanced by six commits through `3c13f04e` (#162, #160, #165, #188, #158, #204) — not only `web/package-lock.json` as previously stated here. None of them touched `.github/workflows/`, so the F9 workflow blobs and the PR diff are unchanged. The reviewed commit and original parent are preserved. Head: `f464f68636adc6bb5295c3818aa6654c46a3caad` — `d2a9ec5` plus one non-forced `Merge branch 'main'` commit (`f464f686`) that brought the branch up to `3c13f04e` so it is no longer `BEHIND`. Verified: `git rev-parse d2a9ec5:.github/workflows/bytefolk-scorecard.yml` and `...:bytefolk-security.yml` return the same blobs (`2058126c`, `48a507e0`) as at `f464f686`, and `git diff main...f464f68` is still exactly these 2 files, `+4/-4`. The comment-only payload is therefore byte-identical to the reviewed commit and the equality proof above holds on the current head. ## Scope and non-goals Correct only `# v4.37.4` to `# v4.37.9` on CodeQL uses-lines pinned to `cdf488f595d80d6e07e03d4674febd5ab45fa938`. The [official tag object](https://api.github.com/repos/github/codeql-action/git/tags/a35ac6e6798d72df5475948b28efb89edc2e19ca) resolves to that existing pin. Action SHAs, permissions, triggers, steps, matrices, other pins, and runtime code are unchanged. ## Validation - Exact commands: `ruby evidence/verify.rb --baseline` and `ruby evidence/verify.rb --committed` from the retained review packet; `git diff --check 2986fe3 d2a9ec5` from this repository. - Observed counts/results: PASS 2/2 files and 4/4 replacements here; aggregate PASS 13/13 files and 21/21 replacements. Baseline intentionally exits 1 after detecting all 21 stale annotations; committed verification exits 0. - Check URLs: collected on head `f464f686` — 19 of 20 checks succeed. The single failure is [`HTTP, CLI and MCP lifecycle`](https://github.com/bytefolk/mem/actions/runs/34807101354/job/103861020551), whose log is `pull access denied for minio/minio` at ~13s: a container-image pull failure in an unrelated job. The same workflow was green on `main` at `3c13f04e`, and the identical failure is present on #198 and #199, so it is not caused by this comment-only change. Root-cause tracking is separate and open. The strict verifier checks the changed-file allowlist; exact old blobs and line inventory; complete expected-byte replacement; absence of stale target annotations; parsed YAML equality; comment-stripped byte equality and SHA-256 digests; whitespace and unchanged modes; one commit with the exact parent; and clean worktrees with no untracked files. All passed. The independent replay is recorded in canonical R1. The verifier and inventory are retained outside repository commits. | ID | REQ/AC | Observable acceptance criterion | Command or manual steps | Environment | Expected | Observed | Status | |---|---|---|---|---|---|---|---| | V1 | AC-001, AC-002, AC-003 | Exact annotations with executable YAML unchanged | `ruby evidence/verify.rb --committed` | Ruby 2.6.10, Psych 3.1.0, isolated review packet | Exact scoped replacements and equality | 2/2 files; 4/4 lines; all invariants pass | PASS | | V2 | AC-004 | Hosted checks on this exact head | Inspect this PR's checks at `f464f686` | GitHub Actions | Applicable checks succeed | 19 of 20 succeed; `HTTP, CLI and MCP lifecycle` fails on `pull access denied for minio/minio` (infra, unrelated job, also failing on #198/#199, green on `main`) | PARTIAL | ## Security and compatibility Documentation annotation only. No dependencies, permissions, credentials, data flows, or runtime behavior change. The diff and commit identity were inspected for public-safe content. No CHANGELOG entry or behavior-documentation update is needed because only explanatory comments change. ## Known limitations Runtime suites, build, coverage, and dependency audits were not rerun for this comment-only change; no runtime test result is claimed. Hosted CI is separate from local equality proof. Two limits now apply: (1) the strict verifier's `one commit with the exact parent` invariant describes the reviewed payload commit `d2a9ec5`, not the current branch shape, which carries two additional `Merge branch 'main'` commits; (2) this PR is **not merge-ready yet** — repository `AGENTS.md` step 6 requires passing CI *and* an approval from someone other than the author, and `HTTP, CLI and MCP lifecycle` is red on the unrelated `minio` pull, so the green-CI half is unmet until that infrastructure failure is fixed. ## Risk and rollback Low-risk annotation correction. Roll back through an ordinary revert of this single commit. There is no migration or release action. ## Product review handoff - Implementation/publication owner: @PeterGuy326 - Automated pre-review result: independent local replay recorded in R1; no human approval implied. - Human final review: PENDING; no human review requested by this publication. - Merge ledger owner: @PeterGuy326 - Product reviewer: @PeterGuy326 - Milestone or release packet: N/A: bounded documentation annotation maintenance - Merge, CI, release, and model judgment do not accept or close the Issue: acknowledged ## Maintenance update (2026-09-14, @waterbro-8) Records written by the maintainer account, not by the implementation owner: - `f464f686 Merge branch 'main'` was pushed to this head branch (non-forced, `main` at `3c13f04e` is an ancestor of the head) to clear the `BEHIND` state this PR's own body said blocked merging. No workflow file content changed: both blobs are identical to `d2a9ec5`. - The stale facts above were corrected in place: the recorded head SHA, the "Main advanced only `web/package-lock.json` in PR #192" claim, the `NOT VERIFIED` hosted-CI rows, and the "this is a draft, not merge-ready" note. - This PR was marked ready for review and an independent review was requested. The maintainer account that pushed the merge commit did **not** approve it: `AGENTS.md` step 6 requires an approval from someone other than the author, and a commit author on the head cannot supply that approval for their own push. `@PeterGuy326` remains implementation and merge-ledger owner. Co-authored-by: 勒布朗-詹姆斯 <2986253039@qq.com>
Bumps google.golang.org/grpc from 1.82.1 to 1.83.2.
Release notes
Sourced from google.golang.org/grpc's releases.
... (truncated)
Commits
030ee8bUpdate version to 1.83.2 (#9375)8668b69cherry-pick #9365 to v1.83.x (#9366)a3e952dcherry-pick #9346 to v1.83.x and update x/net dependency (#9369)58f8fd9Change version to 1.83.2-dev (#9337)1550d9eChange version to 1.83.1 (#9336)ebba6f3Cherry-pick #9258 and #9332 into v1.83.x (#9335)8cfeca0Cherry-pick #9331 to v1.83.x (#9333)dec6951Change version to 1.83.1-dev (#9229)4c226daChange version to 1.83.0 (#9228)c198988Cherrypick 9223 into v1.83.x (#9279)