Repository navigation
croc: 11.1.0 -> 11.5.4 (GHSA-x89h) [pkgscan-audited draft] - #782
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
This review includes 1 billable file and costs up to $0.25.
Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing. Or wait 41 minutes for your next included review. View limit detailsLimit details: You’ve used all 2 included reviews currently available. Your 57 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour. Review configuration: ⚙️ Run configurationConfiguration used: Repository: gominimal/pkgs/.coderabbit.yaml Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (1)
Comment |
|
Build evidence: the superseded #750 (croc 11.5.3, same |
croc 11.1.0 → 11.5.4. Clears GHSA-x89h (fixed in 11.5.2); 11.5.4 is the latest release (2026-09-26). Replaces #750 (11.5.3). Main has been on Go 1.27.0 since #667, which satisfies croc's
go 1.27.0(notoolchainline), so this no longer waits on #758.Only
version+ sourcesha256change. The source is the samegs://minimal-staging-archivesmirror convention as 11.1.0: the object is GitHub's release archive, byte-for-byte.v11.5.4.tar.gzsha25616910b594704b40e9df35eb3bc637db675fe3d770a4588bd32b5a12c5ff174ffmatches two independent downloads ofcodeload.github.com/schollz/croc/tar.gz/refs/tags/v11.5.4. Mirrored by hand, see below.The updater refused to mirror or PR this (anti-xz gate,
pkgscan-critical). All 13 findings are the persistence/filesystem rule matching the strings.bashrc/.zshrc. Audit: I diffed every occurrence of.bashrc|.zshrc|.profile|.bash_profile|/etc/profile|crontab|authorized_keys|.ssh/between the v11.1.0 and v11.5.4 source trees, not just the reported 13. The only NEW occurrences are:src/croc/{overwrite,stdout_cleanup,sending_text,croc}_test.go,src/receivefs/path_test.go,src/utils/utils_test.go,web/src/protocol/metadata.test.ts). These are croc's own security regression tests for this very fix. They attempt to deliver.bashrc/.ssh/authorized_keys(for example".ssh/authorized_keys": "attacker-key") and assert the file is not overwritten or created. All of them run int.TempDir()aftert.Chdir.scripts/install-benchmark-prereqs.sh: the maintainers' Ubuntu/Debian benchmark-machine setup (it installs Go and NVM; NVM's installer appends to~/.bashrc/~/.zshrcviaPROFILE). It's referenced by neither croc's Makefile nor its CI. Ourbuild.shonly runsgo build, so it never runs here.None are in shipped (non-test) source. "It's a test file" was not taken on trust (xz hid its payload in test fixtures): each flagged test was read.
Reviewer: please confirm the audit before un-drafting. The build still needs the usual buildbot pass.
(Tooling gaps found here, being fixed in pkgmgr-rs: the gs:// gate has no operator override even after a human audit + mirror,
pkgscan diffcan't audit a not-yet-mirrored version, and the Slack alert suggests--allow-critical-pkgscan, which can't work for gs:// packages.)🤖 Generated with Claude Code