prevent expression injection #28
Merged
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.
Prevent expression injection. e.g. suppose you have the following:
Although we're doing
toJSONto protect against general YAML quoting/escaping issues, the string could still contain a GitHub Actions expression. Ifgithub.event.pull_request.titlecontainsHello ${{ env.secretApiKey }}, we want to ensure that that expression is not evaluated in the generated action. Otherwise thesecretApiKeywill be passed to the dynamically called action, with possible negative consequences.It's probably not a huge vulnerability, since composite actions don't have access to
secrets, so it's unlikely an attacker could exfiltrate anything that's not already visible in the logs/etc. But better safe than sorry 😅