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 script
  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 heap overflows
      1. 2.8.1. Answers
    9. 2.9. Exercise integer-pointer type confusion bug
      1. 2.9.1. Answers
    10. 2.10. Demonstrate pointer injection
      1. 2.10.1. Answers
    11. 2.11. Adapt a C Program to CHERI C
      1. 2.11.1. Answers
    12. 2.12. CheriABI Showcase
      1. 2.12.1. Answers
    13. 2.13. Extending Heap Allocators for CHERI
      1. 2.13.1. Answers
    14. 2.14. Demonstrate pointer revocation
      1. 2.14.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
    3. 3.3. Exploiting heap use-after-free to manipulate control flow
    4. 3.4. Exploiting kernel system-call vulnerability to manipulate control flow
    5. 3.5. Exploiting kernel NFS-server vulnerability to manipulate control flow
  5. 4. Appendix

Adversarial CHERI Exercises and Missions

Focused Adversarial Missions