¿La acción de aceptar una solicitud de extracción en Github es vulnerable a las condiciones de la carrera?

8

En github, cualquier persona (llamémosla Alice) puede bifurcar un proyecto, modificarlo y luego enviar esos cambios al propietario del proyecto (Bob) como una solicitud de extracción, y la idea es que Bob revise el contenido enviado. código para asegurarse de que está a la altura de las especificaciones y no contiene virus *.

Si Bob quiere que se realicen cambios antes de aceptar la solicitud de extracción (como el estilo del código), pueden hacer comentarios pidiéndole a Alice que realice esos cambios, y es muy probable que Alice realice esos cambios y los envíe a la bifurcación de Alice, momento en el que Las confirmaciones aparecen automáticamente como parte de la solicitud de extracción.

Ahora, ¿qué pasa si hay una persona maliciosa (Malice) que crea una bifurcación con cambios beneficiosos y envía una solicitud de extracción, y Malice sabe exactamente cuándo Bob va a ver esa solicitud de extracción, y que Bob tomará Aproximadamente 5 minutos para revisar el nuevo código. ¿Sería posible para Malice cometer un compromiso malicioso entre Bob que solicita la página para ver la solicitud de extracción y Bob presionando el botón "Aceptar"?

* Idealmente, esto es lo que sucede. Suponemos que Bob es benevolente e inteligente, y lo hace de manera adecuada a su mejor capacidad, pero no es consciente de esta posible vulnerabilidad en particular.

    
pregunta Shelvacu 01.03.2016 - 19:42
fuente

2 respuestas

2

No, Github no es vulnerable.

He probado esto con un amigo muy útil para que las cosas vayan más rápido. Cuando se intentó esto, github actualizó la lista de confirmaciones en vivo y, si hice clic en el botón "Aceptar" antes de que se actualizara la lista, github muestra este mensaje:

    
respondido por el Shelvacu 02.03.2016 - 04:50
fuente
0

Las solicitudes de extracción no son específicas de GitHub. Es parte de git.

Aceptar una solicitud de extracción es simplemente fusionar una revisión en el maestro. Así que espero que si le dices a GitHub que ejecute git merge deadbeef , en realidad ejecutará git merge deadbeef y no git merge HEAD .

    
respondido por el Antoine Pinsard 01.03.2016 - 22:40
fuente

Lea otras preguntas en las etiquetas