The best vulnerable driver to learn all methods to exploit kernel vulnerability.
There is an vulnerable linux driver which contains 5 vulnerabilities. They are UAF / arbitrary read and write / uninitialized stack variable / buffer overflow / null pointer dereference.
And there are exploiting scripts for each bug.
You can read my blog to learn how to exploit linux kernel vulnerability.
And you can read my jianshu.
linux内核提权系列教程(1):堆喷射函数sendmsg与msgsend利用
linux内核提权系列教程(2):任意地址读写到提权的4种方法
Null-dereference and stack overflow are too easy, you can read this blog.