fix: detect ubuntu-slim runners early and bail out#657
Open
devantler wants to merge 1 commit intostep-security:mainfrom
Open
fix: detect ubuntu-slim runners early and bail out#657devantler wants to merge 1 commit intostep-security:mainfrom
devantler wants to merge 1 commit intostep-security:mainfrom
Conversation
ubuntu-slim runners (Hosted Compute Agent Docker containers) are GitHub-hosted but lack the standard USER environment variable set on full VM-based runners. This causes chownForFolder to fail with 'chown: invalid user: undefined'. Instead of patching chownForFolder, detect ubuntu-slim early informative message, matching the existing patterns for isDocker(), isARCRunner(), and other unsupported runner types. Fixes step-security#627 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
e2d6d23 to
376d25a
Compare
Member
|
Thanks for the pr @devantler ! |
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.
Summary
Detect
ubuntu-slimrunners (Hosted Compute Agent Docker containers) early and bail out with an informative message, instead of crashing withchown: invalid user: 'undefined'.Problem
ubuntu-slimrunners are GitHub-hosted Linux containers that lack the standardUSERenvironment variable (runner). When harden-runner runs on these runners,chownForFolder(process.env.USER, ...)executessudo chown -R undefined /home/agent, which crashes the step.The existing
isDocker()check does not catchubuntu-slimbecause theis-dockernpm package looks for/.dockerenv, which Hosted Compute Agent containers do not have.Fix
Add an early bail-out check in both
setup.tsandcleanup.ts:This follows the existing patterns for
isDocker(),isARCRunner(), and other unsupported runner type detection.Detection rationale
USER=runnerubuntu-slim(Hosted Compute Agent Docker containers) do not setUSERisGithubHosted()andprocess.platform === "linux", this reliably identifiesubuntu-slimFiles changed
src/common.tsUBUNTU_SLIM_MESSAGEconstantsrc/setup.tsisDocker()checksrc/cleanup.tsisDocker()checkFixes #627