Forwarded from Private Shizo
💥Crash in [@ js::StackUses] in js::frontend::BytecodeSection::updateDepth(js::frontend::BytecodeOffset) (Samsung CPU Issue)
(changeset c6a2725 "Pass JSOp along rather than recomputing r=iain ")
Аппаратная неисправность процессора(затрагивает Samsung Galaxy S20/Note 20, которые на Exynos с процессорным ядром Samsung).
Проблема скорее всего связана с неправильной переадресацией в хранилище, то есть верхние биты не были очищены(происходит переадресация всего регистра). То есть проблема возникает с ARM-инструкцией LDRB "
Если смотреть более предметно на предоставленный дизассемблированный код(полный прикладываю ниже):
В данном коде можно увидеть сохранение опкода в буфере с последующей повторной загрузкой для использования в качестве индекса в таблице codespec(CodeSpecTable). Важно заметить, что исходя из дампа, не произошло расширение до нуля, хотя было сохранение
⚠️Важно еще то, что было написано в "Beta/Release Uplift Approval Request": "This patch is attempting to remove a bad access pattern that manifests exclusively on Samsung Galaxy S20 (and Note 20) hardware. It's hard to say if this will actually -fix- the issue, but it's hoped that this will remove the proximate cause".
(changeset c6a2725 "Pass JSOp along rather than recomputing r=iain ")
Аппаратная неисправность процессора(затрагивает Samsung Galaxy S20/Note 20, которые на Exynos с процессорным ядром Samsung).
Проблема скорее всего связана с неправильной переадресацией в хранилище, то есть верхние биты не были очищены(происходит переадресация всего регистра). То есть проблема возникает с ARM-инструкцией LDRB "
LDRB Wt, addr", которая отвечает за загрузку байт из памяти, адресованной addr и обнуляющей оного до Wt. В данном случае LDRB выполняет расширение знака в w12, далее при использовании путем считывания значения с неправильной страницы памяти возникает проблема "read-after-write".Если смотреть более предметно на предоставленный дизассемблированный код(полный прикладываю ниже):
...Неисправный IP(instruction pointer) находится по адресу 0x6c1b455dc0 "
0x6c1b455d4c ldr x24, [x27, #0x30] // x24 = offset (длина буфера перед записью чего-либо)
...
0x6c1b455da0 ldr x10, [x27, #0x28] // x10 - адрес буфера
0x6c1b455da4 strb w23, [x10, x24] //запись опкода в буфер со смещением(offset)
0x6c1b455da8 ldrsb w10, [x9, #1]
0x6c1b455dac ldr x9, [x27, #0x28] // x9 - адрес буфера
0x6c1b455db0 tbnz w10, #0x1f, #0x6c1b455de8
0x6c1b455db4 add x11, x9, x24 // x11 - это смещение опкода, который мы только что написали
0x6c1b455db8 ldrb w12, [x11] //загрузка опкода
0x6c1b455dbc add x10, x19, x12, lsl #3 //поиск в codespec таблице
0x6c1b455dc0 ldrsb w13, [x10, #1] <-------- неисправная инструкция тут(краш)
0x6c1b455dc4 tbnz w13, #0x1f, #0x6c1b4591ac
0x6c1b455dc8 and w11, w13, #0xff
0x6c1b455dcc ldp w13, w12, [x27, #0xf0]
0x6c1b455dd0 ldrsb w10, [x10, #2]
0x6c1b455dd4 sub w11, w12, w11
...
0x6c1b455dc0 ldrsb w13, [x10, #1]", где собственно и происходит краш.В данном коде можно увидеть сохранение опкода в буфере с последующей повторной загрузкой для использования в качестве индекса в таблице codespec(CodeSpecTable). Важно заметить, что исходя из дампа, не произошло расширение до нуля, хотя было сохранение
0xba(JSOp::GetAliasedVar) и ПО ИДЕИ оно должно было содержаться в x12 и по итогу x12 = 0x00000000ffffffba.⚠️Важно еще то, что было написано в "Beta/Release Uplift Approval Request": "This patch is attempting to remove a bad access pattern that manifests exclusively on Samsung Galaxy S20 (and Note 20) hardware. It's hard to say if this will actually -fix- the issue, but it's hoped that this will remove the proximate cause".
👍3🔥1
DroneSec_EMFI.pdf
1.6 MB
📡Drone Security and Fault Injection Attacks
"IOActive has been researching the possibility of using non-invasive techniques, such as electromagnetic (EM) side-channel attacks or EM fault injection (EMFI), to achieve code execution on a commercially available drone with significant security features. For this work, we chose one of the most popular drone models, DJI’s Mavic Pro. DJI is a seasoned manufacturer that emphasizes security in their products with features such as signed and encrypted firmware, Trusted Execution Environment (TEE), and Secure Boot."
#DJI_Mavic_Pro #Drone #UAV #RF #SCA #Timing_Attack #Power_Analysis #EMFI #fw #cryptography #security #expoitation #memory_corruption #code_execution
"IOActive has been researching the possibility of using non-invasive techniques, such as electromagnetic (EM) side-channel attacks or EM fault injection (EMFI), to achieve code execution on a commercially available drone with significant security features. For this work, we chose one of the most popular drone models, DJI’s Mavic Pro. DJI is a seasoned manufacturer that emphasizes security in their products with features such as signed and encrypted firmware, Trusted Execution Environment (TEE), and Secure Boot."
#DJI_Mavic_Pro #Drone #UAV #RF #SCA #Timing_Attack #Power_Analysis #EMFI #fw #cryptography #security #expoitation #memory_corruption #code_execution
👍2🔥2