assignUser opened a new pull request, #14155:
URL: https://github.com/apache/arrow/pull/14155

   In this PR I:
   - reduced the scope of the automatically generated `GITHUB_TOKEN` as much as 
possible (technically `contents:none` would  be the minimum but it is a bit 
unintuitive as it does not prevent checkout of public repos, I set 
`contents:read` in those cases)  
   - update all actions used to the newest version (checking for breaking 
changes, only case is actions/github-script which remains on v3 for that reason 
-> follow up)
   - move the creation of envvars containing secrets as close to their usage as 
possible (-> the step they are used in), this duplicates them in workflows with 
multiple jobs but is safer.
   
   I have opted **NOT** to pin the different actions by SHA as recommended in 
some places as the con outweigh the possible protection in my opinion. The main 
danger with pinning tags or branches is that a malicious actor changes the 
commit the tag points to and exfiltrates secrets (either repository secrets or 
in case of private repos code/ip) or takes some other damaging action like 
deleting branches, rewriting history etc..
   
   We only ever pass actions the `GITHUB_TOKEN` which is ephemeral (deleted 
after workflow is finished) and scope limited so exfiltration of that token 
would worst case allow an attacker to create/delete labels and pr comments as 
well as modify PR branches (if the submitter activated the checkbox for 
maintainer access). Actions can not access secrets without the workflow author 
explicitly passing them as input (envvars might reveal them though)
   
   The Apache Org limits the actions that can be used in repos, so we only use 
well known allow-listed actions, while this does of course not prevent 
malicious actions it reduces the risk substantially.
   
   Pinning SHAs would mitigate these risks (provided the action at that sha was 
audited...) but would also necessitate regularly checking + re-auditing the 
actions as to not miss security patches in these actions (e.g. 
[here](https://github.com/matlab-actions/setup-matlab/releases/tag/v1.1.1v)). 
IMHO that would be a considerable effort (+ needing real expertise in 
typescript/node to spot any malicious additions outside of blatant secret 
exfiltration or nuking) resulting in a small gain.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to