One script turns a standard Steam user into SYSTEM
BrokenPipe demonstrates a narrow Windows privilege boundary failure. Steam's client service already runs as NT AUTHORITY\SYSTEM. According to the repository, that service accepts an installation root chosen by the caller even though the path is outside the signed portion of a genuine Valve install-script VDF. The script uses that gap to place a launcher at a relocated path, whitelist it, and ask the service to execute it with the service's privileges.
The default payload is a copy of cmd.exe. A successful launch is the proof; the screenshot verifies the resulting process with the Local System SID S-1-5-18. The script also accepts another executable and arguments. That flexibility changes the risk sharply, because this is executable launch as Windows' most powerful ordinary service identity. Run it only on a machine you own or have explicit permission to assess.
This is not a remote exploit and it is not a Steam account takeover. The caller starts as a local standard Windows user on a machine where Steam and its privileged service are already installed. The README says Steam can sit at its unauthenticated login screen and no game needs to run. BrokenPipe proves the elevation path; it does not establish persistence, remote reach, or access to another Steam account.
Windows PowerShell 5.1 and Steam are hard requirements
The documented target is Windows 10 or Windows 11 x64 with Steam installed and its client service running. The script expects Windows PowerShell 5.1 and uses inline C# for shared-memory IPC. A genuine Valve-signed VDF is embedded as Base64, so current main does not depend on a separate helper executable from the repository.
At startup, the script checks for the chosen payload and the standard Steam executable path. It creates a work directory under the user's temporary folder, copies the payload to launcher.exe, writes the signed and run VDF files, and compiles the IPC type in memory. If Steam is absent, it stops; if Steam is installed but not running, the script starts it silently before contacting the service.
The README says the author validated the proof against Steam 10.96.30.42 on current Windows 10 and Windows 11 x64 systems available to them. That is an author claim tied to one reported Steam version, not our result and not a guarantee about the Steam client you have now. The repository supplies no vendor advisory, CVE, or fixed-version table that would let a defender turn the claim into current patch status.
What happened when we ran it
We did not run commit 84b1dbf. Our sandbox does not support the repository's PowerShell and Windows ecosystem, and no Dockerfile provides a compatible environment. We have no lab install, build, test, dependency, or vulnerability measurement for BrokenPipe. A successful script parse on another operating system would not validate the Steam service path anyway.
The meaningful result would require an approved Windows 10 or 11 x64 target, a standard user token, Steam Client Service, and observation of the launched process identity. It would also require recording the exact Steam version and cleaning the artifacts after the test. We did none of those things, so this review does not claim that the exploit worked, failed, or remains unpatched.
The repository has no tests directory or visible CI workflow. Its source is a 15,818-byte PowerShell file, plus the README, license, and image asset. That small shape makes manual inspection possible, including the inline C# protocol client. It offers no automated regression signal for a Windows or Steam update that changes the IPC message, VDF handling, process launch, or cleanup behavior.
The temporary launcher survives the script
Current main defaults its working root to a BrokenPipe-<process ID> directory under the user's temporary folder. It writes launcher.exe, signed.vdf, and run.vdf there. The last action prints that Steam accepted the launch request. There is no Remove-Item call or final cleanup block for those files after success or failure.
That behavior matches the September 18 commit history. A documentation change removed receipt and cleanup nodes from the pipeline diagram because the single-script version never runs them. The absence is easy to miss if you focus on the SYSTEM shell screenshot. A disposable machine or snapshot is the right test boundary, followed by inspection of the work directory and any launched process. The repository itself does not automate that hygiene.
The code also writes a HasRunKey path into the generated run VDF while setting IgnoreHasRunKey to 1. We did not execute the service request, so we cannot say what state Steam records on a target. The safe review conclusion stays limited: the script stages local artifacts and launches a payload, but it provides no cleanup report comparable to a purpose-built validation harness.
Release 1 is not the PowerShell code on main
GitHub's latest release is tag 1, published September 14, 2026, and its note calls it the original built release. Four days later, commit 0bfdf65 made the self-contained PowerShell script the primary proof and moved the compiled C++ version to the legacy branch. Someone downloading the release asset and someone cloning main are therefore reviewing different implementations.
Main was last pushed on September 18, 2026. GitHub showed 225 stars and no open issues or pull requests. The empty queue gives us no public record of affected versions, failed reproductions, antivirus behavior, or a vendor fix. Recent commits corrected empty argument handling and PowerShell 5.1 text encoding, which shows quick iteration, but only across a few days.
BrokenPipe is easiest to recommend as readable exploit research. The one-file layout exposes the trust decision and IPC client without asking you to run an opaque binary. As a defensive tool, it is incomplete: there is no current-version detector, cleanup, regression suite, mitigation, or release that matches main. Read it first. If an authorized reproduction is still necessary, isolate the Windows target and treat the observed process token, not the README screenshot, as your evidence.
