Morello MicroPython: A Python Interpreter for CHERI
summary
Port of MicroPython to Arm Morello implements both pure-cap and hybrid ABI builds, changes include replacing inline assembly to save full capability registers, swapping uinptr_t uses to plain integers, adding a Python wrapper type for capabilities and forcing heap allocations to set explicit capability bounds. Results: majority of tests pass, discovered concrete bugs (string read‑past, incorrect buffer rounding) and upstream fixes, runtime costs about 1.5–2× slowdown on pure-cap, and the port successfully prevents classic cross‑object buffer overflows.
AI-written summary · about
chapters (11)
- 0:00MicroPython and CHERI intro
- 1:05What is CHERI
- 3:58CHERI capabilities
- 7:11MicroPython on CHERI changes
- 9:26Heap and stack with CHERI
- 11:11MicroPython vulnerabilities
- 12:58Buffer overflow mitigation
- 13:40Testing CHERI compatibility
- 14:22Performance impact of CHERI
- 15:46Future work and CHERI runtimes
- 17:15Q&A
related talks
30mCHERI Performance Enhancement for a Bytecode Interpreter
23mInterpreter Memory Safety via Differential Fuzzing with a CHERI on Top
30m"MicroPython: The best bits!"
01h 04mExtending MicroPython: Using C for good!
32mUsing MicroPython in the wild
27mYou can't do that in MicroPython!
51mMicroPython: a journey from Kickstarter to Space
27mMicroPython: Embedded programming for everyone
