]> git.puffer.fish Git - matthieu/frr.git/commitdiff
nhrpd: fixes duplicate auth extension
authorDenys Haryachyy <garyachy@gmail.com>
Thu, 12 Sep 2024 07:28:28 +0000 (07:28 +0000)
committerDenys Haryachyy <garyachy@gmail.com>
Thu, 12 Sep 2024 07:28:28 +0000 (07:28 +0000)
When an NHRP peer was forwarding a message, it was copying all
extensions from the originally received packet. The authentication
extension must be regenerated hop by hop per RFC2332.
This fix checks for the auth extension when copying extensions
and omits the original packet auth and instead regenerates a new auth extension.

Fix bug #16507

Signed-off-by: Denys Haryachyy <garyachy@gmail.com>
nhrpd/nhrp_peer.c

index 3495317d4cb678664de83c01d957d0fa5857b3d8..d2c1a8c40154c30c3f6f8446a81f502baceb0712 100644 (file)
@@ -597,6 +597,12 @@ static void nhrp_handle_resolution_req(struct nhrp_packet_parser *pp)
                                nhrp_ext_complete(zb, ext);
                        }
                        break;
+               case NHRP_EXTENSION_AUTHENTICATION:
+                       /* Extensions can be copied from original packet except
+                        * authentication extension which must be regenerated
+                        * hop by hop.
+                        */
+                       break;
                default:
                        if (nhrp_ext_reply(zb, hdr, ifp, ext, &payload) < 0)
                                goto err;