Abstract
This is a dual-audience class. It is for both developers who want to learn how to write code without introducing new vulnerabilities (or how to detect existing vulnerabilities in their own code). But it’s also a class for aspiring code auditors and freelance vulnerability hunters. So it’s an epic battle between contentious developers and devious vulnerability hunters! Who will win?! Whoever most takes the lessons of this class to heart!
This class covers the following 10 vulnerabilities. Linear stack buffer overflows, linear heap buffer overflows, non-linear out-of-bound writes, integer overflows/underflows, “other integer issues” (signed sanity checks, integer truncation, and sign extension), uninitialized data access, race conditions (double fetch and Time of Check, Time of Use (TOCTOU)), use-after-free (UAF), type confusion, and information disclosure.
For each topic area we explain at least 6 real vulnerabilities. And for at least one of those vulnerabilities we explain how it could be exploited, so that students can understand that exploitation engineering is just a typical engineering discipline, akin to a specialized form of software engineering. And thus even when vulnerabilities perhaps don’t look exploitable, they still often are. At the end of each topic area, we cover prevention, detection, and mitigation options for dealing with that vulnerability type.
The full class takes about 5 days. However, this class structure was originally created by Xeno as the basis for an Apple-internal training for its developers, while Xeno worked there. In that quick-form, less vulnerabilities were used, and it was done in a single day. Xeno has also been contracted to customize the vulnerabilities covered in this class for companies that wanted to provide more targeted Secure Development curriculum for their developers.
If you’re interested in teaching your C/C++ developers, or junior vulnerability hunters, reach out to us with info about how many students you’d like us to teach, and where.
Real vulnerabilities covered in class: - Linear Stack Buffer Overflows
- CVE-2021-21574 “BIOS Disconnect” (Includes exploit walkthrough)
- CVE-2018-9312
- CVE-2018-9318
- CVE-2020-10005
- CVE-2021-43579
- CVE-2021-20294
- CVE-2022-0435
- CVE-Unknown Samsung Baseband
- Linear Heap Buffer Overflows
- CVE-2020-0917 (Includes exploit walkthrough)
- CVE-2019-7287
- CVE-2020-11901 1 (Part of “Ripple20”)
- CVE-2020-25111 (Part of “Amnesia33”)
- CVE-2020-27009 (Part of “NAMEWRECK”)
- CVE-2021-21555
- CVE-2021-42739
- Non-linear Out-of-Bounds Writes (OOB-W)
- CVE-2019-10540 (Includes exploit walkthrough)
- CVE-2020-0938 (Was a 0day)
- CVE-2020-1020 (Was a 0day)
- CVE-2020-13995
- CVE-2020-27930 (Was a 0day)
- CVE-2021-26675 “T-BONE”
- CVE-2021-28216
- CVE-2022-25636
- Integer Overflows/Underflows
- CVE-2020-0796 “SMBGhost” (Includes exploit walkthrough)
- CVE-2019-5105
- CVE-2019-3568 (Was a 0day)
- CVE-2019-14192
- CVE-2020-11901 (Part of Ripple20)
- CVE-2020-16225
- CVE-2021-22636 (Part of “BadAlloc”)
- CVE-2021-30860
- Other Integer Issues
- CVE-2019-15948 (Includes exploit walkthrough)
- CVE-2019-14196
- CVE-2020-15999 (Was a 0day)
- CVE-2020-17087 (Was a 0day)
- CVE-2019-20561
- CVE-2021-33909 “Sequoia”
- Uninitialized Data Access (UDA)
- CVE-2022-26721
- CVE-2022-1809
- CVE-2021-3608
- CVE-2022-29968
- CVE-2019-1458 (Exploited in the wild, 0day, includes exploit walkthrough)
- CVE-2021-27080
- Race Conditions (including double fetch and Time of Check, Time of Use (TOCTOU))
- CVE-2019-11098 (Includes exploit walkthrough)
- CVE-2021-4207
- CVE-2021-34514
- 2022 no CVE assigned, Microsoft Mu
- CVE-2020-7460
- 2019 no CVE assigned, Qualcomm baseband firmware
- Use After Free (UAF)
- CVE-2020-29661 (Includes exploit walkthrough)
- CVE-2021-28460
- CVE-2020-2674
- CVE-2021-36955
- CVE-2020-9715
- Type Confusion
- CVE-2021-1732 (Exploited in the wild, 0day, includes exploit walkthrough)
- CVE-2022-21882 (Exploited in the wild, 0day, includes exploit walkthrough)
- CVE-2020-3853
- CVE-2019-14192 (Exploited in the wild, 0day)
- CVE-2021-30869 (Exploited in the wild, Nday)
- CVE-2021-30857
- CVE-2021-41073
- Information Disclosure
- CVE-2022-22252
- CVE-2022-29181
- CVE-2020-9833
- CVE-2021-3947
- CVE-2020-25624
- CVE-2019-8921
- CVE-2021-22898
- CVE-2021-22925
Request Training Quote
Xeno Kovah
Dark Mentor Level X
Hacking firmware like it’s no big deal.