1. Adversarial CHERI Exercises and Missions
  2. 1. Introduction
    1. 1.1. Background reading
    2. 1.2. Cross compilation and execution
      1. 1.2.1. Helper scripts
  3. 2. Skills Development Exercises
    1. 2.1. Compile and run RISC-V and CHERI-RISC-V programs
      1. 2.1.1. Answers
    2. 2.2. Disassemble and debug RISC-V and CHERI-RISC-V programs
      1. 2.2.1. Answers
    3. 2.3. Demonstrate CHERI Tag Protection
      1. 2.3.1. Answers
    4. 2.4. Exercise an inter-object stack buffer overflow
      1. 2.4.1. Answers
    5. 2.5. Exercise an inter-object global buffer overflow
      1. 2.5.1. Answers
    6. 2.6. Explore subobject bounds
      1. 2.6.1. Answers
    7. 2.7. Corrupt a control-flow pointer using a subobject buffer overflow
      1. 2.7.1. Answers
    8. 2.8. Exercise integer-pointer type confusion bug
      1. 2.8.1. Answers
    9. 2.9. Extending Heap Allocators for CHERI
      1. 2.9.1. Answers
  4. 3. Focused Adversarial Missions
    1. 3.1. Exploiting a buffer overflow to manipulate control flow
    2. 3.2. Exploiting an uninitialized stack frame to manipulate control flow
  5. 4. Appendix

Adversarial CHERI Exercises and Missions on CHERI-seL4 microkernel and CHERI-Microkit

Focused Adversarial Missions