L'azione di accettare una richiesta di pull su Github è vulnerabile alle condizioni di gara?

8

Su github, qualsiasi persona (chiamiamoli Alice) può biforcarsi a un progetto, apportare modifiche e quindi inviare tali modifiche al proprietario del progetto (Bob) come richiesta di pull, e l'idea è che Bob riesamini l'inviato codice per accertarsi che rispetti le specifiche e non contenga virus *.

Se Bob vuole che le modifiche vengano apportate prima di accettare la richiesta di pull (come lo stile del codice), possono fare commenti chiedendo ad Alice di apportare tali modifiche, e Alice molto probabilmente apporterà tali modifiche, e le trasferirà alla forcella di Alice, a quel punto i commit appaiono automaticamente come parte della richiesta pull.

Ora, cosa succede se c'è una persona maliziosa (Malice) che crea un fork con modifiche vantaggiose e invia una richiesta pull, e Malice sa esattamente quando Bob sta andando a dare un'occhiata a quella richiesta pull, e che Bob sta per prendere circa 5 minuti per esaminare il nuovo codice. Sarebbe quindi possibile che Malice esegua un commit malevolo tra Bob che richiede alla pagina di visualizzare la richiesta di pull e Bob che preme il pulsante "Accetta"?

* Idealmente, questo è quello che succede. Supponiamo che Bob sia sia benevolo che intelligente, e lo fa in modo adeguato alle sue migliori capacità, ma non è a conoscenza di questa particolare vulnerabilità possibile.

    
posta Shelvacu 01.03.2016 - 19:42
fonte

2 risposte

2

No, Github non è vulnerabile.

Ho provato questo con un amico molto utile del mio per rendere le cose più veloci. Quando questo è stato tentato, github ha aggiornato l'elenco dei commit live, e se ho fatto clic sul pulsante "Accetta" prima che la lista fosse aggiornata, github visualizza questo messaggio:

    
risposta data 02.03.2016 - 04:50
fonte
0

Le richieste di pull non sono specifiche di GitHub. Fa parte di Git.

Accettare una richiesta pull è semplicemente unire una revisione in master. Quindi spero vivamente che se tu dica a GitHub di eseguire git merge deadbeef , eseguirà effettivamente git merge deadbeef e non git merge HEAD .

    
risposta data 01.03.2016 - 22:40
fonte

Leggi altre domande sui tag