HomeFreeBSD

Fix NULL deref in ip_output during route change

Description

Fix NULL deref in ip_output during route change

When changing the interface address during a route change,
the rtentry's rt_ifa will be NULL briefly. Some parts of
ip_output do not handle that NULL. In such case, re-validate
the rtentry. That validation does not check the rt_ifa, but
it does lock the route, which will synchronize with
rtrequest1_fib_change.

I would prefer to leave the rt_ifa pointer intact during
the route change, but ip6_output is not fully protected
by the net_epoch, so that could allow a use-after-free.
ip6_output already handles a NULL rt_ifa.

This is a direct commit to stable/12 because later branches
have nexthop and do not appear to have this bug.

PR: 271573
Reported by: Gaurav.Gandhi@dell.com
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D40236

Details

Provenance
vangyzenAuthored on May 23 2023, 9:46 AM
Differential Revision
D40236: Fix NULL deref in ip_output during route change
Parents
rG48f06dbeb34d: OpenSSL: Regen manual pages for OpenSSL 1.1.1u
Branches
Unknown
Tags
Unknown