
Sin embargo, un goto fail perdido - correctamente identado pero sin estar dentro de ninguna condición, hace que a mitad de las comprobaciones se salte a la zona de código fail pero sin que se haya actualizado el valor del mensaje de err, ya que no ha sido provocado ese salto al final del código por ninguna condición.
![]() |
Figura 1: El "goto fail" de más que provoca el caos |
Cuando se llega al final del código se comprueba si se ha llegado al final porque se han pasado todos los controles de seguridad o porque se ha producido un err, al estar el valor de err sin ningún código se da por bueno ese certificado.
![]() |
Figura 2: Al final del código el err llega sin valor de fallo |
Este goto en medio de la lista de comprobaciones hace que la lista de verificaciones que se hacen después de él no tengan ningún efecto, ya que con que un certificado digital pase las primeras llegará a la zona final del código sin ningún valor en el código de error, haciendo que se puedan usar certificados falsos en ataques man in the middle. Apple ha confirmado que este fallo no afecta solo a iOS sino también a OSX por lo que sacará una actualización de emergencia para este bug lo antes posible. Tú, actualiza tu iOS ya y en cuanto salga el parche de OSX también.
No hay comentarios:
Publicar un comentario