¿Por qué Apple utiliza una versión vulnerable de OpenSSL?
No lo es.
Si hace clic en el enlace que publicó en su pregunta, verá que esta actualización corrige varias vulnerabilidades que existen de manera idéntica en OpenSSL 0.9.8, 1.0.0, 1.0.1 y 1.0.2.
Entonces, en otras palabras, la versión que luego sugiere como alternativa, 1.0.2, era tan vulnerable como 0.9.8, y ambas se arreglaron al mismo tiempo.
Con la última actualización de OS X ( 10.10.5 ), Apple presenta OpenSSL 0.9.8 . Navegué por la página oficial de OpenSSL , y allí podría obtener la Versión 1.0.2 .
Apple está actualizando OpenSSL a 0.9.8zg, que solo tiene 2 meses y 4 semanas más que 1.0.2d.
Mi pregunta es: ¿Por qué Apple utiliza una versión anterior de OpenSSL? ¿Se debe a funciones desaprobadas en la versión 1.0 o por qué?
Eso es algo que tendrás que preguntarle a Apple. Mi mejor conjetura es que 0.9.8 es la versión con la que hicieron las pruebas de compatibilidad, y la actualización a una versión más nueva requeriría una ronda completamente nueva de pruebas para un componente que está obsoleto de todos modos. Ya que está obsoleto, el software más nuevo (que posiblemente dependa de funciones más nuevas) no debería usarlo de todos modos, y el software más antiguo que todavía lo usa no usa las funciones nuevas (porque no existían) e incluso podría estar dañado. Por una actualización, ¿por qué molestarse?
Mientras la comunidad OpenSSL mantenga la rama 0.9.8, Apple ni siquiera tiene que hacer el trabajo de parches de backporting.
Tenga en cuenta que esto no es nada inusual. Apple envió una versión anterior de Ruby durante mucho tiempo, y generalmente no se actualizan durante un ciclo de lanzamiento, solo entre los lanzamientos. Las distribuciones de Linux, así como las BSD y otras distribuciones de Unix, tampoco suelen actualizar las versiones durante un lanzamiento, solo aplican correcciones de errores y correcciones de seguridad. Debian, en particular, generalmente no soluciona todos los errores, solo las vulnerabilidades de seguridad y los errores que pueden provocar la pérdida de datos del usuario: cualquier cambio, incluso una corrección de errores es una posible incompatibilidad y un potencial para nuevos errores; ¡Los errores conocidos son mejores que los desconocidos!