C’è una grossa falla in GitHub Actions, la CI di GitHub, ed è by design

2

I ricercatori del gruppo Google Project Zero, in particolare Felix Wilhelm, hanno scovato una grana per gli sviluppatori di GitHub Actions, la componente del sistema GitHub che gestisce le pipeline CI di promozione del codice (controparte dei GitLab runners).

In questo tweet, Wilhelm spiega di cosa si tratta in maniera molto semplice (ed efficace):

sfruttando quindi il comando set-env, che viene eseguito all’interno del workflow dell’Action runner, di fatto la componente che esegue la pipeline, è possibile definire delle variabili d’ambiente e sostanzialmente rendere altamente vulnerabile alle code injection ogni pipeline.

Il problema principale di questa falla è che è, per così dire, by design, ossia insita nel processo di GitHub Actions. Come risolvere quindi? Tagliando la testa al toro, cioè disabilitando (o meglio deprecando) i comandi set-env e add-path, in modo da evitare totalmente la possibilità di utilizzarli (malevolmente o no) nelle pipeline:

Action and workflow authors who are setting environment variables via STDOUT should update any usage of the set-env and add-path workflow commands to use the new environment files.

Gli sviluppatori di action e workflow che impostano le variabili di ambiente tramite STDOUT devono aggiornare qualsiasi utilizzo dei comandi di flusso di lavoro set-env e add-path per utilizzare i nuovi file di ambiente.

Quindi tutto è bene quel che finisce bene. In realtà mica tanto, perché chiaramente questa deprecazione porterà inevitabilmente le pipeline attuali che sfruttano la funzionalità ad andare in errore, perciò la modifica si ripercuoterà a cascata sugli utilizzatori che dovranno, obbligatoriamente e come spiegato sopra, aggiornare il proprio codice delle GitHub Actions.

Sempre meglio comunque di trovarsi una code injection, no?

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

2 risposte a “C’è una grossa falla in GitHub Actions, la CI di GitHub, ed è by design”

  1. Avatar amedeo lanza
    amedeo lanza

    “componente GitLab che gestisce le pipeline”
    sbaglio o è un refuso ed il riferimento dovrebbe essere a GitHub ?

  2. Avatar Raoul Scarazzini

    Nice catch! Corretto. Grazie!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *