Security in C++ - Hardening Techniques From the Trenches
summary
Implementation adds two concrete defenses to Clang/libc++: Standard Library hardening (none/fast/extensive/debug modes, built‑in traps for fast/extensive, verbose diagnostics for debug) and typed memory allocation (compiler emits a 64‑bit type descriptor to a typed operator new that funnels to a type‑aware allocator). LLVM 18 ships hardening; WebKit, Chrome (extensive) and Google Cloud (fast) deploy it and report many bugs found. Typed allocation (deployed in Darwin/xnu) sharply reduces exploitability of use‑after‑free + type‑confusion chains but is not a silver bullet.
AI-written summary · about
chapters (7)
- 0:00Introduction and motivation
- 7:25Memory safety overview
- 27:52Standard Library hardening
- 48:19Deployment experience
- 1:03:30Type memory operations
- 1:17:51Conclusions and future work
- 1:22:02Q&A session
related talks
01h 05mSecurity in C++: Hardening techniques from the trenches
52mKernel Hardening: Ten Years Deep
50mSecure development with C++ - Lessons and techniques
01h 02mTowards Safety and Security in C++26
59mHardening Your Code
18mExciting new compiler flags for kernel security
35mUpstream Kernel Hardening: Recent Progress and Challenges
01h 26mA Path to Practically Safe C++
