-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Installer pipe corruption: gum spin child inherits piped script stdin #90008
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopCrash, hang, restart loop, or process-level availability failure.Crash, hang, restart loop, or process-level availability failure.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopCrash, hang, restart loop, or process-level availability failure.Crash, hang, restart loop, or process-level availability failure.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Problem
When the installer is piped via
curl | bash, child processes spawned undergum spincan inherit the script stream as stdin. Gum v0.17.0 sets the wrapped command's stdin toos.Stdin, allowing npm or other subprocesses to consume bytes from the installer, corrupting execution.Additionally, fallback paths redirect stdin unconditionally from
/dev/null, breaking interactive commands like Homebrew installation prompts when the script is run directly (bash install.sh).Expected behavior
curl | bash): child processes should not be able to read from the piped script streambash install.sh): interactive commands should retain terminal stdin for user promptsActual behavior
/dev/null, breaking interactive promptsAffected files
scripts/install.sh(run_with_spinner,run_quiet_step,run_npm_global_install)