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
| ||
|
Date: Tue, 19 May 2009 19:22:01 +0200 From: Jarek Poplawski <jarkao2@...il.com> To: Eric Dumazet <dada1@...mosbay.com> Cc: lav@....ru, Stephen Hemminger <shemminger@...ux-foundation.org>, netdev@...r.kernel.org, Neil Horman <nhorman@...driver.com> Subject: Re: Fw: [Bug 13339] New: rtable leak in ipv4/route.c On Tue, May 19, 2009 at 05:32:29PM +0200, Eric Dumazet wrote: > Jarek Poplawski a écrit : > > On 19-05-2009 04:35, Stephen Hemminger wrote: > >> Begin forwarded message: > >> > >> Date: Mon, 18 May 2009 14:10:20 GMT > >> From: bugzilla-daemon@...zilla.kernel.org > >> To: shemminger@...ux-foundation.org > >> Subject: [Bug 13339] New: rtable leak in ipv4/route.c > >> > >> > >> http://bugzilla.kernel.org/show_bug.cgi?id=13339 > > ... > >> 2.6.29 patch has introduced flexible route cache rebuilding. Unfortunately the > >> patch has at least one critical flaw, and another problem. > >> > >> rt_intern_hash calculates rthi pointer, which is later used for new entry > >> insertion. The same loop calculates cand pointer which is used to clean the > >> list. If the pointers are the same, rtable leak occurs, as first the cand is > >> removed then the new entry is appended to it. > >> > >> This leak leads to unregister_netdevice problem (usage count > 0). > >> > >> Another problem of the patch is that it tries to insert the entries in certain > >> order, to facilitate counting of entries distinct by all but QoS parameters. > >> Unfortunately, referencing an existing rtable entry moves it to list beginning, > >> to speed up further lookups, so the carefully built order is destroyed. > > We could change rt_check_expire() to be smarter and handle any order in chains. > > This would let rt_intern_hash() be simpler. > > As its a more performance critical path, all would be good :) > > >> > >> For the first problem the simplest patch it to set rthi=0 when rthi==cand, but > >> it will also destroy the ordering. > > > > I think fixing this bug fast is more important than this > > ordering or counting. Could you send your patch proposal? > > > > Here is mine, only compiled, not tested yet. > > All credits for Stephen for doing the analysis of course :) - All credits for Stephen for doing the analysis of course :) + All credits for Alexander V. Lukyanov for doing the analysis of course :) Jarek P. -- 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