Skip go content

Control-flow Enforcement (CET)

Architecture referenceFeex

Dem still dey call am CET

CET, Control-flow Enforcement Technology, dey add hardware mechanism dem to protect control flow, mainly shadow stack dem and indirect branch tracking. Hardware support and active protection inside particular process na different state dem.

Wetin you need know

CET, Control-flow Enforcement Technology, dey add hardware mechanism dem to protect control flow, mainly shadow stack dem and indirect branch tracking. Hardware support and active protection inside particular process na different state dem.

How e dey work

Shadow stack dem dey maintain protected return-address state, while indirect branch tracking dey constrain destination dem of tracked indirect branch dem. Dem dey address different control-flow transfer dem and dem get separate enumeration and enablement. Di OS, loader, application binary and library dem dey participate to make protected execution environment work.

Where e dey useful

Application wey dem build properly fit run with OS-managed shadow stack so dat mismatched return address go trigger di defined exception instead of silently redirecting execution. Compatibility policy fit differ for legacy module dem and user-mode versus supervisor-mode protection.

How to check support and enablement

Check CPUID.07H.00H:ECX bit 7 for shadow-stack capability and EDX bit 20 for indirect branch tracking, den inspect di OS im documented process protection status. CPU bit wey dey available alone no fit establish enforcement for program wey dey run.

Capability, enablement and enforcement na different ting dem wey person must check separately. Processor fit support protection while di OS, application or virtual-machine policy no turn am on. Database support field no be attestation say running system dey secure.

Wetin di feature no dey guarantee

CET field no dey prove say both subfeature dem dey present or enabled. CET no dey make binary trustworthy, e no dey prevent every memory corruption bug or replace update dem. To disable protection globally no be routine fix for application crash.

Compatibility and performance inside real life

Keep di OS, firmware and affected runtime current. If protection show compatibility problem, make you use vendor diagnostics and supported update dem first. Broad protection toggle fit affect oda application dem wey no concern am, so e suppose follow clear deployment and recovery policy.

Practical verification checklist

  1. Record di exact processor or platform model plus di application, OS and runtime version dem wey dey involve. Make you keep di exact word dem wey di error or requirement use.
  2. Check di manufacturer reference for dat exact model, den inspect di real capability and enabled state inside di environment where di program dey run.
  3. Compare every single requirement of di binary or backend wey you choose. Name wey resemble am, alias, or broad technology label no reach.
  4. Confirm say di application select di implementation wey dem intend. Use di diagnostics wey dem document and supported fallback if requirement dem no complete.
  5. Make only one supported change at a time, den run di same workload again. Keep di original configuration and recovery way ready.

If dem list di feature but software no fit use am

Start from di exact component wey dey fail. Hardware database dey describe capability wey dem record; di operating system or hypervisor fit show different real environment. If illegal-instruction error happen, you still need to check di exact instruction wey cause di fault and di binary build, because corrupt file or anoda instruction wey no dey supported fit give di same kind problem.

Install di application, driver or runtime version wey get support for dat exact platform, and use di vendor documented baseline or fallback build if e need am. Software update no fit create instruction wey di processor no get. Firmware and security-policy change dem suppose follow di system manufacturer procedure and recovery plan, no be just any common optimization advice.

Sources and scope of dis explanation

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: Control-flow Enforcement Technology shadow stack

Dis reference dem establish architectural behavior and software requirement dem. Dem no dey independently verify every feature value for any linked hardware model page. For model support, use dat page manufacturer evidence and check di active system configuration. Dis article no supply benchmark, certification or independent review date.

Sources and verification

Editorial ownership: Feex. No independent review date dey recorded. How we dey do research.

Dis article make sense to you?

Yes or no dey enough. Choose reason if you want, or add short note.

Dis article make sense to you?