| From foo@baz Sat 16 May 2020 02:04:40 PM CEST |
| From: Guillaume Nault <gnault@redhat.com> |
| Date: Thu, 14 May 2020 12:15:39 +0200 |
| Subject: pppoe: only process PADT targeted at local interfaces |
| |
| From: Guillaume Nault <gnault@redhat.com> |
| |
| [ Upstream commit b8c158395119be62294da73646a3953c29ac974b ] |
| |
| We don't want to disconnect a session because of a stray PADT arriving |
| while the interface is in promiscuous mode. |
| Furthermore, multicast and broadcast packets make no sense here, so |
| only PACKET_HOST is accepted. |
| |
| Reported-by: David Balažic <xerces9@gmail.com> |
| Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") |
| Signed-off-by: Guillaume Nault <gnault@redhat.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ppp/pppoe.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/net/ppp/pppoe.c |
| +++ b/drivers/net/ppp/pppoe.c |
| @@ -490,6 +490,9 @@ static int pppoe_disc_rcv(struct sk_buff |
| if (!skb) |
| goto out; |
| |
| + if (skb->pkt_type != PACKET_HOST) |
| + goto abort; |
| + |
| if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr))) |
| goto abort; |
| |