Repository navigation
chore: bump default pbuf CLI version to v0.17.0 - #26
Merged
Merged
Conversation
aatarasoff
commented
Nov 15, 2026
aatarasoff
left a comment
Contributor
Author
There was a problem hiding this comment.
Code Review: chore: bump default pbuf CLI version to v0.17.0
Reviewed as Principal Software Engineer / Security Researcher. Changes are a straightforward default version bump + package version increment + CI assertion. No new logic introduced in this diff.
Findings
-
[Severity: High] — Security & Vulnerabilities
- Location:
src/main.js(INSTALL_SCRIPT_URL +exec.exec('/bin/bash', ['-lc', 'curl -fsSL ... | sh ...'])— pre-existing, not introduced here) - Problem: The Action always downloads and pipes an unpinned install script from the
mainbranch ofpbuf-registry(curl | sh). There is no commit pin, checksum, or signature verification of either the script or the resulting binary. A compromise of thepbuf-registryrepository (malicious commit tomain, compromised maintainer, or supply-chain attack on the release assets) results in arbitrary code execution on every consumer’s GitHub Actions runner. This is especially concerning for a public Action that may receive a token (pbuf_token) and GitHub token. - Fix: Prefer direct download of a versioned, checksummed binary from GitHub Releases (or a pinned commit of the install script). Example sketch:
Alternatively, pin the install script to a specific commit SHA and verify the downloaded binary against published checksums.
// After validating version const assetUrl = `https://github.com/pbufio/pbuf-registry/releases/download/${version}/pbuf_${plainVersion}_${os}_${arch}.tar.gz`; // Download, verify SHA256 from a known-good source or cosign/sigstore, extract, install. // Avoid curl|sh entirely.
- Location:
-
[Severity: Low] — Correctness & Edge Cases
- Location: CI workflow + default in
action.yml/ README - Problem: Default moved to
v0.17.0. CI now asserts the exact version string. This is good, but ensure the release assets forv0.17.0are published and stable before merging (CI currently green, so likely already available). - Fix: None required if the release is live; otherwise coordinate the release first.
- Location: CI workflow + default in
Other notes (non-blocking)
- Version regex (
VERSION_RE) is solid and prevents shell injection into the install path. core.setSecretis correctly applied to tokens.- PR comment upsert logic is reasonably defensive (pagination, timeouts, marker-based sticky comments).
Go / No-Go Verdict: Go for this PR (pure chore, CI green, consistent updates). Recommend a follow-up to eliminate the curl | sh pattern and add binary integrity verification before the next major release of the Action.
Thanks for the clean version bump!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates default
versioninput tov0.17.0(includingpbuf --versionverification in CI).