FreeBSD -- ICMPv6 use-after-free in error message handling
When an ICMPv6 error message is received, the FreeBSD ICMPv6 stack
may extract information from the message to hand to upper-layer
protocols. As a part of this operation, it may parse IPv6 header
options from a packet embedded in the ICMPv6 message.
The handler for a routing option caches a pointer into the packet
buffer holding the ICMPv6 message. However, when processing
subsequent options the packet buffer may be freed, rendering the
cached pointer invalid. The network stack may later dereference the
pointer, potentially triggering a use-after-free.
A remote host may be able to trigger a read of freed kernel memory.
This may trigger a kernel panic if the address had been unmapped.
Copyright © 2003-2005 Jacques Vidrine and contributors.
Please see the source of this document for full copyright