0% found this document useful (0 votes)
5 views87 pages

Core Escalation

Uploaded by

scribd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views87 pages

Core Escalation

Uploaded by

scribd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 87

Core Escalation

Unleashing the Power of Cross-Core Attack on Heterogeneous System

Guanxing Wen

#BHUSA @BlackHatEvents
$ whoami

✤ Security Researcher @ Pangu Team in Shanghai

✤ Interested in bootloader, kernel, Trustzone

✤ Also a fan of pwning smart devices at hand

✤ Electric Vehicles, TV, speakers, POS …

✤ Twitter: @hhj4ck
EL3 Tour: Get The Ultimate Privilege
of Android Phone

Guanxing Wen

2019

Exploit the BL31 of Huawei P20


EL3 Tour: Get The Ultimate Privilege
of Android Phone

Guanxing Wen

2019

Exploit the bootrom of Huawei Mate30


Exploit the XXX of Huawei XXXX40
Motivation

✤ Decrypt the rmwares of Mate40 (kirin9000)

✤ Xloader, Fastboot, TEEOS, BL31, LPM3, MODEM …


fi
Motivation

✤ Decrypt the rmwares of Mate40 (kirin9000)

✤ Xloader, Fastboot, TEEOS, BL31, LPM3, MODEM …

✤ Bootrom exploit used to build the decryption oracle was dead


fi
Motivation

✤ Decrypt the rmwares of Mate40 (kirin9000)

✤ Xloader, Fastboot, TEEOS, BL31, LPM3, MODEM …

✤ Bootrom exploit used to build the decryption oracle was dead

✤ The only solution I came up with is to follow the traditional approach


fi
ARM Trustzone (ACPU)

Normal World Secure World

EL0 APP APP TA TA

EL1 Linux Kernel TEEOS

EL2 Hypervisor

EL3 Secure Monitor (BL31)


ARM Trustzone (ACPU)

Normal World Secure World

EL0 APP APP TA TA

EL1 Linux Kernel TEEOS

EL2 Hypervisor

EL3 Secure Monitor (BL31)


ARM Trustzone (ACPU)

Normal World Secure World

EL0 APP APP TA(ENC) TA(ENC)

EL1 Linux Kernel TEEOS(ENC)

EL2 Hypervisor

EL3 Secure Monitor (BL31)


ARM Trustzone (ACPU)

Normal World Secure World

EL0 APP APP TA(ENC) TA(ENC)

EL1 Linux Kernel TEEOS(ENC)

EL2 Hypervisor

EL3 Secure Monitor (BL31)


Find suitable TEE issues

✤ Logic bugs that work stably and can be exploited blindly

✤ No prior knowledge is required, such as gadgets or o sets

✤ Two primary attack surface

✤ BL31 & TEEOS

ff
TEEOS

Tasks & Drivers


Examples of Tasks & Drivers

SECURE WORLD

‣ DRV_TIMER ‣ RPMB
TA TA TA TA TA

• Manages secure timers • RPMB filesystem


libc libgm libtee
Uses a normal world agent
libvendor

‣ GATEKEEPER
• Gatekeeper implementation ‣ SSA IPC

‣ KEYMASTER • Trusted Storage API


GTask
Uses a normal world agent
• Keymaster implementation

‣ PERMISSION_SERVICE ‣ TALOADER & TARUNNER Perm


Platdrv RPMB SSA TUI


Serv
glue between GlobalPlatform
• Permissions system for RPMB,
and OS-level APIs
SSA and TUI
IPC

Hexacon 2022
‣ PLATDRV ‣ TUI

hmsysmgr hmfilemgr
Trusted User Interface
• Platform drivers
implementation
• Interrupts, crypto engine, secure

element, fingerprint sensor, etc.

Secure Kernel
SION
✤ Memory can switch between non-secure and secure dynamically

✤ Speeds up the decryption of DRM video streams


SION
✤ Memory can switch between non-secure and secure dynamically

✤ Speeds up the decryption of DRM video streams

✤ SECMEM (TA) exports SION APIs to the normal world

CMD Function Name Description


1 sion_alloc registers physical pages into platdrv and update their DMSS bits
2 sion_free zero out related pages and update their DMSS bits
3 sion_map_iommu map operations related to iommu
4 sion_unmap_iommu unmap operations related to iommu
7 sion_con g set attribute bits of DMSS
8 sion_uncon g unset attribute bits of DMSS
fi
fi
SION ALLOC

ion.heap_id_mask = 1 << ION_DRM_HEAP_ID


EL0
ioctl(open(“/dev/ion”), ION_IOC_ALLOC, &ion)

EL1 ion_secsg_heap_allocate -> secmem_tee_exec_cmd

SEL0 sion_ioctl alloc buff_id <=> ion pages

secmem platdrv
SION ALLOC
struct ion_buffer {
u64 magic;
union {
struct rb_node node;
struct list_head list;
ion.heap_id_mask = 1 << ION_DRM_HEAP_ID };
EL0 struct ion_device *dev;
ioctl(open(“/dev/ion”), ION_IOC_ALLOC, &ion) struct ion_heap *heap;
unsigned long flags;
unsigned long private_flags;
size_t size;
void *priv_virt;
EL1 ion_secsg_heap_allocate -> secmem_tee_exec_cmd struct mutex lock;
int kmap_cnt;
void *vaddr;
struct sg_table *sg_table;
struct list_head attachments;
SEL0 sion_ioctl alloc buff_id <=> ion pages char task_comm[TASK_COMM_LEN];
pid_t pid;
secmem platdrv #if defined(CONFIG_ION_HISI_SECSG)
unsigned int id;
#endif
};
SION MAP

EL0 ion.fd vma SEL0

TEEC_ION_INPUT sion_map_user

EL1 ion.fd buff.id buff.id ion pages SEL1


CVE-2022-46762

✤ Each module assumes other modules for input validation

✤ NW kernel should never be a rewall for SW

✤ EL0 can invoke sion_alloc directly with arbitrary physical address

✤ The same goes for sion_free


fi
Bind ion fd, bu id and ion page

sion_alloc
ion.fd buff.id buff.id ion pages

ff
Unbind bu id and ion page

sion_alloc
ion.fd buff.id buff.id ion pages

sion_free
buff.id buff.id ion pages
ff
Rebind the bu id and target page

sion_alloc
ion.fd buff.id buff.id ion pages

sion_free
buff.id buff.id ion pages

sion_alloc
buff.id buff.id any pages
ff
Make use of the malformed bu id

✤ CHINADRM_COMMON_TA

✤ A substitute of widevine

✤ Cleartext need no decryption

✤ Decryption = memmove

✤ Overwrite any SW pages?

ff
A Small Setback

✤ hmsysmgr blacklists mmap

✤ 0x13000000-0x13101000

✤ 0x13102000-0x13600000

✤ 0x13600000-0x19600000
START END USAGE
10000000 105FFFFF sensorhub-shmemext
10600000 1063FFFF sensorhub-shmem
10640000 106BFFFF sensorhub-share-mem
106C0000 108BFFFF iommu_pgtable
108C0000 109BEFFF fka-mem
109BF000 109BFFFF mntndump
109C0000 10ABFFFF ivp
114C0000 11CBFFFF hhee
11CC0000 11D3FFFF lpmx-core
11D40000 11DFFFFF lpmcu
11E00000 127FFFFF sensorhub-s
12800000 12FFFFFF npu-tiny
13000000 135FFFFF bl31
13600000 165FFFFF secos
16600000 16AFFFFF voiceid
2CE00000 2D9FFFFF sec_camera
2DA00000 2E97FFFF hifi-base
2E980000 2F37FFFF npu-sec
2F380000 2F8FFFFF hifi-data
2F900000 3015FFFF bbox-mem
30160000 3025FFFF dp-dhcp
30260000 3035FFFF pstore-mem
30360000 3075FFFF npu_ai_ts_fw
30760000 3105FFFF npu_ai_server
36500000 3A3FFFFF logo-buffer
3A400000 3FFFFFFF fastboot-cma-mem
40000000 4FFFFFFF hisi_cma
50000000 5ABFFFFF hisi_iris_static_cma
60000000 63FFFFFF tiny_cma
90000000 9FFFFFFF hisi_smemheap_cma
A0000000 B127FFFF modem-s
2CE00000 2D9FFFFF sec_camera
2DA00000 2E97FFFF hifi-base
2E980000 2F37FFFF npu-sec
2F380000 2F8FFFFF hifi-data
2F900000 3015FFFF bbox-mem
30160000 3025FFFF dp-dhcp
30260000 3035FFFF pstore-mem
30360000 3075FFFF npu_ai_ts_fw
30760000 3105FFFF npu_ai_server
36500000 3A3FFFFF logo-buffer
3A400000 3FFFFFFF fastboot-cma-mem
40000000 4FFFFFFF hisi_cma
50000000 5ABFFFFF hisi_iris_static_cma
60000000 63FFFFFF tiny_cma
90000000 9FFFFFFF hisi_smemheap_cma
A0000000 B127FFFF modem-s
A bigger picture
ARM Trustzone (ACPU)

Normal World Secure World

EL0 APP APP TA TA

EL1 Linux Kernel TEEOS

EL2 Hypervisor

EL3 Secure Monitor (BL31)


ARM Trustzone (ACPU)

Normal World (NW) Secure World (SW)

AXI BUS
ARM Trustzone (ACPU)

Normal World (NW) Secure World (SW)

AXI BUS
ARM Trustzone (ACPU)

Normal World (NW) Secure World (SW)

SCR.NS = 1 SCR.NS = 0

AXI BUS
ARM Trustzone (ACPU)

Normal World (NW) Secure World (SW)

SCR.NS = 1 SCR.NS = 0

AXI BUS

TZASC TZPC AXI-to-APB

DRAM
DRAM DRAM
DRAM
DRAM Peripherals
ARM Trustzone (ACPU)

ACPU

AXI BUS

TZASC TZPC AXI-to-APB

DRAM
DRAM DRAM
DRAM
DRAM Peripherals
ARM Trustzone (SOC)

ACPU MODEM GPU ISP LPMCU IOMCU UFS

AXI BUS

TZASC TZPC AXI-to-APB

DRAM
DRAM DRAM
DRAM
DRAM Peripherals
ARM Trustzone (SOC)

ACPU MODEM GPU ISP LPMCU IOMCU UFS

AXI BUS

TZASC TZPC AXI-to-APB

DRAM
DRAM DRAM
DRAM
DRAM Peripherals
START END USAGE
10000000 105FFFFF sensorhub-shmemext
10600000 1063FFFF sensorhub-shmem
10640000 106BFFFF sensorhub-share-mem
106C0000 108BFFFF iommu_pgtable
108C0000 109BEFFF fka-mem
109BF000 109BFFFF mntndump
109C0000 10ABFFFF ivp
114C0000 11CBFFFF hhee
11CC0000 11D3FFFF lpmx-core
11D40000 11DFFFFF lpmcu
11E00000 127FFFFF sensorhub-s
12800000 12FFFFFF npu-tiny
13000000 135FFFFF bl31
13600000 165FFFFF secos
16600000 16AFFFFF voiceid
Pivot to IOMCU

✤ load_and_run sensorhub.img (ARM Cortex M7, not encrypted)


Pivot to IOMCU

✤ load_and_run sensorhub.img (ARM Cortex M7, not encrypted)

✤ Tamper its memory with a thorough overwrite


Pivot to IOMCU

✤ load_and_run sensorhub.img (ARM Cortex M7, not encrypted)

✤ Tamper its memory with a thorough overwrite

✤ Crash dump (RDR) revealed that 0x1248d000 gets executed

✤ IOMCU reboots itself, without interfering entire system


Pivot to IOMCU

✤ load_and_run sensorhub.img (ARM Cortex M7, not encrypted)

✤ Tamper its memory with a thorough overwrite

✤ Crash dump (RDR) revealed that 0x1248d000 gets executed

✤ IOMCU reboots itself, without interfering entire system

✤ A secure master can raise AWPROT=0, ARPROT=0


Pivot to LPMCU

✤ SRAM of LPMCU is accessible from IOMCU

✤ #de ne SOC_IOMCU_LP_RAM_BASE_ADDR (0x5FF50000)


fi
Pivot to LPMCU

✤ SRAM of LPMCU is accessible from IOMCU

✤ #de ne SOC_IOMCU_LP_RAM_BASE_ADDR (0x5FF50000)

✤ Dump the SRAM of LPMCU into crash dump (RDR) of IOMCU


fi
Pivot to LPMCU

✤ SRAM of LPMCU is accessible from IOMCU

✤ #de ne SOC_IOMCU_LP_RAM_BASE_ADDR (0x5FF50000)

✤ Dump the SRAM of LPMCU into crash dump (RDR) of IOMCU

✤ Patch LPMCU RDR related code to get code execution

✤ RDR is triggered during a crash of IOMCU


fi
Mountain Top: LPMCU
✤ A secure master (ARM Cortex M3), de nitely

✤ LPM3.img runs in this core after bootrom and xloader

✤ Recent mitigations only accumulated more privilege for the LPMCU

✤ DMSS control is shifted from ACPU to LPMCU

✤ dma_transfer() is powerful enough to hack into other cores

✤ Even DDR belongs to ACPU


fi
Acquire ACPU EL3 privilege

stp x29, x30, [sp, -0x10]!


tst x0, 1
beq exec
ldr w3, [x1]
str w3, [x2]
b end
exec:
blr x3
str x0, [x6]
end:
tlbi alle3
dsb ish
isb
ldp x29, x30, [sp], 0x10
ret

Patch BL31 (adding a RWX smc handler)


Establish a Decryption Oracle

Patch TEEOS (platdrv)


DEMO: Firmware Decryption
Core Escalation

LPMCU

IOMCU

ACPU EL0 ACPU EL3


What else lies under this attack model?
ARM Trustzone (SOC)

ACPU MODEM GPU ISP LPMCU IOMCU UFS

AXI BUS

TZASC TZPC AXI-to-APB

DRAM
DRAM DRAM
DRAM
DRAM Peripherals
ARM Trustzone (SOC)

ACPU MODEM GPU ISP LPMCU IOMCU UFS

AXI BUS

TZASC TZPC AXI-to-APB

Peripherals
Peripherals
DRAM Peripherals
ARM Trustzone (SOC)

Peripherals Peripherals Peripherals Peripherals Peripherals

AXI BUS

TZASC TZPC AXI-to-APB

DRAM
UFS
IOMCU
LPMCU
ISP
GPU
MODEM
ACPU
Cross-Core Communication

ACPU MODEM GPU ISP LPMCU IOMCU UFS


Cross-Core Attack Surface

✤ ACPU <=> LPMCU, MODEM <=> HIFI, ISP <=> GPU …

✤ DMA

✤ Mailbox

✤ Shared memory

✤ Hardware speci c issues


fi
DMA
DMA

DMA Attacks: Trial And Error

Modem EDMA: FAIL IOMCU DMA: SUCCESS (on 980)

How To Tame Your Unicorn


Daniel Komaromy Lorant Szabo

TASZK Security Labs

#BHUSA @BlackHatEvents

• CVE-2021-22432
• Why do these fail/succeed though?
#BHUSA @BlackHatEvents
Mailbox
✤ Key component of the cross-core communication architecture

✤ Hardware-based module with registers and exported small bu ers

Mailboxes
SOURCE
0x40 … DSET
DCLR
DSTATUS
ACPU 0x40 NO. 17 MODE LPMCU
IMASK
ICLR
0xFE101000 0x40 … SEND 0xBE101000
DATA[0x20]

ff
CVE-2020-36600

ACPU LPMCU
Shared Memory

✤ Common usage

✤ State synchronization, data transfer and logging

✤ Pointer, o set, length on shared memory are not reliable


ff
CVE-2022-46322
DRAM
Page Table Page Table
ACPU RDR_VA RDR_PA RDR_PA 0xC1800000 RDR_PA ISP
… …

EL0 access RDR by mmap(/dev/isplog) EL3 updates the page table of ISP
CVE-2022-46322
DRAM
Page Table Page Table
ACPU RDR_VA RDR_PA RDR_PA 0xC1800000 RDR_PA ISP
… …

EL0 access RDR by mmap(/dev/isplog) EL3 updates the page table of ISP
Hardware speci c issues

✤ Internal sram exposed

✤ Registers exposed: SCTRL, TZPC …

✤ Lack of bootchain veri cation

✤ Secure master runs its image in unprotected memory


fi
fi
Abstract thinking was nice, but it's code o'clock!
CVE-2022-48353

✤ ISP is actually a secure master

✤ Think of face recognition


CVE-2022-48353

✤ ISP is actually a secure master

✤ Think of face recognition

✤ ISP does not verify its rmware

✤ shellcode injection in a single line of command

mount --bind isp_fw_mod.elf /odm/etc/firmware/isp_fw.elf


fi
Mitigations of Cross-Core Attack
✤ DMSS & CFGBUS: think of TZASC & TZPC

✤ DMSS maintains a DDR permission table for each master

✤ Each cell declares if a subrange of DDR is allowed to be accessed


with Normal/Secure AWPROT/ARPROT

✤ CFGBUS manages MMIO access

✤ Each table declares if a group of masters are allowed to access a


range of MMIO
ISP

✤ Cannot RW DDR without ACPU EL3 setting up its IOMMU

✤ Cannot RW 0xFFE00000 - 0xFFFFFFFF (blocked by CFGBUS)

✤ #de ne SOC_ACPU_DMSS_BASE_ADDR (0xFFE80000)

✤ #de ne SOC_ACPU_LP_RAM_BASE_ADDR (0xFFF50000)


fi
fi
ISP

✤ Cannot RW DDR without ACPU EL3 setting up its IOMMU

✤ Cannot RW 0xFFE00000 - 0xFFFFFFFF (blocked by CFGBUS)

✤ #de ne SOC_ACPU_DMSS_BASE_ADDR (0xFFE80000)

✤ #de ne SOC_ACPU_LP_RAM_BASE_ADDR (0xFFF50000)

✤ Can RW 0xFE252000 - 0xFE252400 (CFGBUS Registers)


fi
fi
CFGBUS
REGs 2.0.0.222 2.0.0.243
0xFE2520BC 0x4DA000 0x01A000
master bits
0xFE2520C0 0xFFFE00 0x03FE00
0xFE2520C4 00000000 00000000
0xFE2520C8 0 0
0xFE2520CC 0x14 0x15 log₂(size)
0xFE2520D0 0 0
0xFE2520D4 0 0
0xFE2520D8 0x3 0x2 rw permission
0xFE2520DC 0x3 0x3
0xFE2520E0 0xF 0xF
0xFE2520E4 0 0
0xFE2520E8 0x10000 0x10000
0xFE2520EC 0x00000 0x00000
0xFFE00000 + 2 ** 0x15 = 0x100000000
CFGBUS
REGs 2.0.0.243
0xFE252044 0x002000
0xFE252048 0x03FE00
0xFE25204C 00002000 offset
0xFE252050 0
0xFE252054 0x0a
0xFE252058 0
0xFE25205C 0
0xFE252060 0x2
0xFE252064 0x3
0xFE252068 0xF
0xFE25206C 0
0xFE252070 0x10000
0xFE252074 0x00000
0xFE250000 + 0x2000 = 0xFE252000
0xFE252000 + 2 **0xa = 0xFE252400
Con gure CFGBUS
REGs 2.0.0.243 [0xfe25200c] <= 0x00
0xFE252044 0x002000 [0xfe252008] <= 0x00
0xFE252048 0x03FE00
[0xfe25240c] <= 0x00
0xFE25204C 00002000
0xFE252050 0
[0xfe25248c] <= 0x00
0xFE252054 0x0a [0xfe252018] <= 0x00
0xFE252058 0 [0xfe252020] <= 0x0F
0xFE25205C 0 . . .
0xFE252060 0x2 [0xfe252014] <= 0xBA
0xFE252064 0x3
[0xfe252008] <= 0x0F
0xFE252068 0xF
0xFE25206C 0 [0xfe25200c] <= 0x01
0xFE252070 0x10000 [0xfe252008] <= 0x1F
0xFE252074 0x00000 [0xfe252018] <= 0x08
fi
Con gure CFGBUS
REGs 2.0.0.243 [0xfe25200c] <= 0x00
0xFE252044 0x002000 [0xfe252008] <= 0x00
0xFE252048 0x03FE00
[0xfe25240c] <= 0x00
0xFE25204C 00002000 Disable
0xFE252050 0
[0xfe25248c] <= 0x00
0xFE252054 0x0a [0xfe252018] <= 0x00
0xFE252058 0 [0xfe252020] <= 0x0F
0xFE25205C 0 . . .
0xFE252060 0x2 [0xfe252014] <= 0xBA
0xFE252064 0x3
[0xfe252008] <= 0x0F
0xFE252068 0xF
0xFE25206C 0 [0xfe25200c] <= 0x01
0xFE252070 0x10000 [0xfe252008] <= 0x1F
0xFE252074 0x00000 [0xfe252018] <= 0x08
fi
Con gure CFGBUS
REGs 2.0.0.243 [0xfe25200c] <= 0x00
0xFE252044 0x002000 [0xfe252008] <= 0x00
0xFE252048 0x03FE00
[0xfe25240c] <= 0x00
0xFE25204C 00002000
0xFE252050 0
[0xfe25248c] <= 0x00
0xFE252054 0x0a [0xfe252018] <= 0x00
0xFE252058 0 [0xfe252020] <= 0x0F
0xFE25205C 0 . . . Config
0xFE252060 0x2 [0xfe252014] <= 0xBA
0xFE252064 0x3
[0xfe252008] <= 0x0F
0xFE252068 0xF
0xFE25206C 0 [0xfe25200c] <= 0x01
0xFE252070 0x10000 [0xfe252008] <= 0x1F
0xFE252074 0x00000 [0xfe252018] <= 0x08
fi
Con gure CFGBUS
REGs 2.0.0.243 [0xfe25200c] <= 0x00
0xFE252044 0x002000 [0xfe252008] <= 0x00
0xFE252048 0x03FE00
[0xfe25240c] <= 0x00
0xFE25204C 00002000
0xFE252050 0
[0xfe25248c] <= 0x00
0xFE252054 0x0a [0xfe252018] <= 0x00
0xFE252058 0 [0xfe252020] <= 0x0F
0xFE25205C 0 . . .
0xFE252060 0x2 [0xfe252014] <= 0xBA
0xFE252064 0x3
[0xfe252008] <= 0x0F
0xFE252068 0xF
0xFE25206C 0 [0xfe25200c] <= 0x01 Enable
0xFE252070 0x10000 [0xfe252008] <= 0x1F
0xFE252074 0x00000 [0xfe252018] <= 0x08
fi
Disable CFGBUS
REGs 2.0.0.243 [0xfe25200c] <= 0x00
0xFE252044 0x002000 [0xfe252008] <= 0x00
0xFE252048 0x03FE00
[0xfe25240c] <= 0x00
0xFE25204C 00002000
0xFE252050 0
[0xfe25248c] <= 0x00
0xFE252054 0x0a [0xfe252018] <= 0x00
0xFE252058 0 [0xfe252020] <= 0x0F
0xFE25205C 0 . . .
0xFE252060 0x2 [0xfe252014] <= 0xBA
0xFE252064 0x3
[0xfe252008] <= 0x0F
0xFE252068 0xF
0xFE25206C 0 [0xfe25200c] <= 0x01
0xFE252070 0x10000 [0xfe252008] <= 0x1F
0xFE252074 0x00000 [0xfe252018] <= 0x08
ACPU EL0 -> ISP -> LPMCU -> ACPU EL3

✤ Disable CFGBUS

✤ Pivot to LPMCU by RW its SRAM

✤ Enable BL31 patching by updating DMSS Table of LPMCU

✤ Use dma_transfer() to patch BL31 with a RWX SMC handler


ACPU EL0 -> ISP -> LPMCU -> ACPU EL3

✤ Disable CFGBUS

✤ Pivot to LPMCU by RW its SRAM

✤ Enable BL31 patching by updating DMSS Table of LPMCU

✤ Use dma_transfer() to patch BL31 with a RWX SMC handler

✤ DEMO: Screen Passcode Bypass


DEMO: Screen Passcode Bypass
Key Takeaways

✤ Interactions between di erent cores should be explored

✤ Cross-Core attacks can be a powerful technique to exploit

✤ Vendors should exercise caution when adding new cores to the SW


ff
Key Takeaways

✤ Interactions between di erent cores should be explored

✤ May discover new paths for privilege escalation

✤ Cross-Core attacks can be a powerful technique to exploit

✤ Vendors should exercise caution when adding new cores to the SW


ff
Key Takeaways

✤ Interactions between di erent cores should be explored

✤ Cross-Core attacks can be a powerful technique to exploit

✤ Do I mention ASLR, CFI, PXN, PAN, PAC, MTE ?

✤ Vendors should exercise caution when adding new cores to the SW


ff
Key Takeaways

✤ Interactions between di erent cores should be explored

✤ Cross-Core attacks can be a powerful technique to exploit

✤ Vendors should exercise caution when adding new cores to the SW

✤ With each additional core, the complexity of writing bug-free software


increases exponentially
ff
Credit
Tielei Wang
John Dickson

#BHUSA @BlackHatEvents
Questions?
@hhj4ck

Meet + Greet: Aug 9, 17:00 – 17:30


Booth 3241 - Meetup Lounge, Business Hall #BHUSA @BlackHatEvents

You might also like