-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarify code outside build script #63
Comments
This one (unknown origin) is related to establishment of trust. Ideally this could be resolved by verifying the signature of the code. so the expectation is that execution of untrusted code input from outside the build script is verified as authentic from the expected source. Even if the build doesnt cut a release, the inclusion of untrusted and unverified code creates an unknown risk. |
Ben Cotton will try something. One alternative: |
The original requirement is unclear. The discussion on 2024-12-10 tried to clarify what was intended. This is one attempt to clarify things. Signed-off-by: David A. Wheeler <[email protected]>
See #103 for my attempt to clarify things. |
Couldn't find it on the call earlier, but here is the background for this:
|
As written, this also seems to prohibit bugs or mistaken usage of tooling (for example, not pinning a GitHub action to a specific git commit -- the upstream action repo could move a tag to introduce "code that is input from outside the build script"). While that's noble, it makes it hard to figure out what's fair game for automation and project authors to check. Can we scope this down to specific workflow execution steps? A few axes:
Should this say something like:
|
Note that my statement is different from the original in that it doesn't cover validating downloaded or cached resources at maturity level 1. We'd need a different rule for that, possibly at a different maturity level. |
This criterion is not clear:
On first reading, it sounded like many common practices
are forbidden:
curl https://STUFF | sh
appears forbidden.I'm no fan of pipe-to-shell, as it carries big risks if the
server is compromised, but it's so widespread that it can't be
a level 1 requirement. For example, the recommended way to
install Rust is pipe-to-shell.
build script appears forbidden - they must all be downloaded
before building. Again, not a bad idea, but way too many
build systems figure out what's needed, then get it.
It appears what's really meant is countering some specific
workflow attacks like script injection, as detected by Scorecard.
That sounds far more tractable, but the current text doesn't say that.
I think this text needs to be redone to say what was actually intended.
The text was updated successfully, but these errors were encountered: