| lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
|
Open Source and information security mailing list archives
| ||
|
Message-id: <4E9DF0EB.8080008@verizon.net> Date: Tue, 18 Oct 2011 17:34:35 -0400 From: Jim Sansing <jjsansing@...izon.net> To: Eric Dumazet <eric.dumazet@...il.com> Cc: Linux Network Development list <netdev@...r.kernel.org> Subject: Re: Comment on nf_queue NF_STOLEN patch Eric Dumazet wrote: > Le mardi 18 octobre 2011 à 15:08 -0400, Jim Sansing a écrit : > >> I have been working on a kernel module that registers with netfilter, >> and I noticed that a patch was added to nf_queue that changed the >> handling of return code NF_FILTER from 'do nothing' to 'free the skb'. >> I'm not sure which kernel version this went in, but the date of the >> patch is Feb, 19, 2010. >> >> Everything I have read about netfilter states that it is up to the >> netfilter hook to free the skb if NF_STOLEN is returned. The >> implications of this patch from a hook programming perspective are: >> >> 1) If the skb is used after the return from the hook, it must be cloned. >> 2) The original skb must not be freed. >> >> I suggest that a comment be added to include/linux/netfilter.h that says >> explicitly the skb will be freed if NF_STOLEN is returned. >> > > But its not true. Just read the code. > > If you are working on this stuff I recommend you take a look at > commits : > > c6675233f9015d3c0460c8aab53ed9b99d915c64 > (netfilter: nf_queue: reject NF_STOLEN verdicts from userspace) > > fad54440438a7c231a6ae347738423cbabc936d9 > (netfilter: avoid double free in nf_reinject) > > 64507fdbc29c3a622180378210ecea8659b14e40 > (netfilter: nf_queue: fix NF_STOLEN skb leak) > > 3bc38712e3a6e0596ccb6f8299043a826f983701 > ([NETFILTER]: nf_queue: handle NF_STOP and unknown verdicts in > nf_reinject) > > I see that fad54440438a7c231a6ae347738423cbabc936d9 (netfilter: avoid double free in nf_reinject) returns the switch case for NF_STOLEN back to the original state, but I just downloaded 3.0.4, and the skb is still freed. So for some versions of the kernel, the situation exists. Hopefully anyone who runs into it will find this thread. Later . . . Jim -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists