# CVE-2022-2588 - Linux kernel cls_route UAF

It was discovered that the cls_route filter implementation in the Linux kernel
would not remove an old filter from the hashtable before freeing it if its
handle had the value 0.

Zhenpeng Lin working with Trend Micro's Zero Day Initiative discovered that
this vulnerability could be exploited for Local Privilege Escalation. This has
been reported as ZDI-CAN-17440, and assigned CVE-2022-2588.

This bug has been present since the first Linux commit git, v2.6.12-rc2.

Exploiting it requires CAP_NET_ADMIN in any user or network namespace.

It can be mitigated by those users who do not rely on cls_route, by adding
'install cls_route /bin/true' to their modprobe.conf or modprobe.d configs,
in case it's built as a module.

This PoC triggers a WARNING