OpenWrt/LEDE Project

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category Kernel
  • Assigned To No-one
  • Operating System All
  • Severity High
  • Priority Very Low
  • Reported Version All
  • Due in Version Undecided
  • Due Date Undecided
  • Private
Attached to Project: OpenWrt/LEDE Project
Opened by n8v8R - 03.06.2020
Last edited by Chuanhong Guo - 15.10.2020

FS#3149 - pppoe-only-process-padt-targeted-at-local-interfaces.patch

The issue is well outlined in the forum https://forum.openwrt.org/t/pppoe-disconnects-every-few-hours/61239

Whilst being patched in kernel 4.19 | 5.4 | 5.6 https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/log/?id=a1b8c8b81a0c8c1dba9acaf2f85e7dbd6cbdc5b1&qt=grep&q=pppoe-only-process-padt-targeted-at-local-interfaces.patch&showmsg=1

kernel 4.14 (OpenWrt stable 19.07.x) seems to fall through the cracks somehow. With kernel 5.4 in upcoming stable OpenWrt 20.x still far out it would make sense to backport the patch into OpenWrt stable 19.07.x

Closed by  Chuanhong Guo
15.10.2020 08:53
Reason for closing:  Fixed
Additional comments about closing:  

"appears fixed" according to task closing request.

John commented on 08.10.2020 06:44

Having same issue on latest snapshot build DIR-882 A1

David Balažic commented on 09.10.2020 11:44

Note that 4.14 was also patched:

[PATCH 4.14 06/46] pppoe: only process PADT targeted at local interfaces
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

9 Jun 2020, 19:49

to linux-kernel, Greg, stable, me, Guillaume, David


From: Guillaume Nault <gnault@redhat.com>

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>
---
 drivers/net/ppp/pppoe.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c
index fa7121dcab67..202a0f415e1e 100644
--- a/drivers/net/ppp/pppoe.c
+++ b/drivers/net/ppp/pppoe.c
@@ -497,6 +497,9 @@ static int pppoe_disc_rcv(struct sk_buff *skb, struct net_device *dev,
        if (!skb)
                goto out;

+       if (skb->pkt_type != PACKET_HOST)
+               goto abort;
+
        if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
                goto abort;
David Balažic commented on 09.10.2020 11:48

and it seems also in 4.4. and 4.9

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing