]> git.puffer.fish Git - matthieu/frr.git/commit
pimd: fix UAF/heap corruption in BSM code
authorDavid Lamparter <equinox@opensourcerouting.org>
Mon, 27 Sep 2021 08:33:33 +0000 (10:33 +0200)
committerDavid Lamparter <equinox@opensourcerouting.org>
Mon, 27 Sep 2021 08:37:23 +0000 (10:37 +0200)
commit200f56710a462354f55e6189a0d10df03415c1e4
tree0406b1acf12b0d6a38b1b14a1044e9d7d976405f
parent83caa5e5c1e05062977bdd77ede06d63d03c1ddf
pimd: fix UAF/heap corruption in BSM code

This `XFREE()` call is in plainly in the wrong spot.  `rp_all` (the
224.0.0.0/4 entry) isn't supposed to be free'd ever, and the
conditional above makes quite clear that it remains in use.

It may be possible to exploit this as a heap corruption bug, maybe even
as RCE.  I haven't tried; I randomly noticed this while working on the
BSM code.  Luckily this code is only run by the CLI for the clear
command, so the surface is very small.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
pimd/pim_cmd.c