En el último episodio de Proyecto Macintosh estuvimos hablando sobre la última actualización de seguridad emitida por Apple y sobre todo de su tamaño, 1 GB aproximadamente. Ahora hay algunos datos adicionales sobre las razones de ese tamaño no reveladas por Apple en un primer momento.

De hecho, el artículo en el que se hacen referencia a los problemas de seguridad se ha actualizado para añadir un nuevo problema de seguridad no especificado cuando se publicó la actualización, la vulnerabilidad CVE-2018-8897 descubierta por Andy Lutomirski y Nick Peterson de Everdox Tech LLC. Esta vulnerabilidad además afecta a todos los sistemas operativos de uso común, incluyendo Windows, Ubuntu y varias distribuciones Linux, incluyendo el propio Kernel.

El problema de seguridad hace que en algunas circunstancias, es posible que algunos sistemas operativos o hipervisores no esperen o no manejen correctamente una excepción de depuración de hardware de arquitectura Intel. El error parece deberse a la interpretación del desarrollador de la documentación existente para ciertas instrucciones de interrupción/excepción de la arquitectura Intel, a saber, MOV a SS y POP a SS.

Así, un atacante autenticado puede ser capaz de leer datos sensibles en la memoria o controlar funciones del sistema operativo de bajo nivel. Al afectar al kernel del sistema, los cambios a realizar son bastante profundos y pueden afectar a muchas partes del sistema. De ahí el tamaño de la actualización de seguridad.

La descripción de la vulnerabilidad es la siguiente:

CWE-703: Improper Check or Handling of Exceptional Conditions – CVE-2018-8897

The MOV SS and POP SS instructions inhibit interrupts (including NMIs), data breakpoints, and single step trap exceptions until the instruction boundary following the next instruction (SDM Vol. 3A; section 6.8.3). (The inhibited data breakpoints are those on memory accessed by the MOV to SS or POP to SS instruction itself). Note that debug exceptions are not inhibited by the interrupt enable (EFLAGS.IF) system flag (SDM Vol 3A; section 2.3).

If the instruction following the MOV to SS or POP to SS instruction is an instruction like SYSCALL, SYSENTER, INT 3, etc. that transfers control to the operating system at Current Privilege Level (CPL) < 3, a debug exception is delivered after the transfer to CPL < 3 is complete. Such deferred #DB exceptions by MOV SS and POP SS may result in unexpected behavior.

Therefore, in certain circumstances after the use of certain Intel x86-64 architecture instructions, a debug exception pointing to data in a lower ring (for most operating systems, the kernel Ring 0 level) is made available to operating system components running in Ring 3. This may allow an attacker to utilize operating system APIs to gain access to sensitive memory information or control low-level operating system functions.

Several operating systems appear to incorrectly handle this exception due to interpretation of potentially unclear existing documentation and guidance on the use of these instructions.

More details can be found in the researcher’s paper.

Si te preguntabas por qué esta actualización de seguridad ocupaba tanto espacio, ahora tienes una explicación. La actualización de la documentación por parte de Apple, unos días después de la publicación del artículo descriptivo no es que ayude especialmente a entender estas cosas cuando debería haberse publicado de forma inmediata, pero al menos, se ha reflejado para el interés de usuarios de todo tipo y especialistas en seguridad.

In this article


Join the Conversation