|
Message-ID: <ZOzy5H/9go9KPfm3@1wt.eu> Date: Mon, 28 Aug 2023 21:17:56 +0200 From: Willy Tarreau <w@....eu> To: Solar Designer <solar@...nwall.com> Cc: oss-security@...ts.openwall.com, Vegard Nossum <vegard.nossum@...cle.com>, Jiri Kosina <jkosina@...e.cz>, Donald Buczek <buczek@...gen.mpg.de>, Greg KH <gregkh@...uxfoundation.org> Subject: Re: linux-distros list policy and Linux kernel, again Hi Alexander, On Mon, Aug 28, 2023 at 08:05:18PM +0200, Solar Designer wrote: > Hi Willy, > > Thank you for your helpful feedback and criticism. > > I just noticed the recent ksummit list thread is also summarized by LWN: > > https://lwn.net/Articles/941745/ I didn't notice. > In there, Johannes Segitz (SUSE, and a former linux-distros subscriber) > made a comment saying (among other things): > > "I see the 14 day requirement by distros as the major problem in the way > it is currently run. I understand why solar designer insists on this (it > is really tricky to keep information private for any extended time), but > this then leads to people working around distros and distributing the > information up front, only to notify distros when it's basically already > solved and widely known." It's possible, but I don't have data to back this, what I suspect instead is that reporting security issues is so stressful for anyone (constantly making sure not to do a mistake nor to send to the wrong people) that once they see the fix merged, they just relax and consider the job done, so most likely linux-distros isn't even contacted at this point. And it's very possible that some having experienced a friendly process on s@k.o and felt some unneeded pressure on l-d just don't want to go there again. I personally see this a bit like projects asking to sign a CLA: you come there saying "hey, you had a bug there, I fixed it, look" and in return you feel like you're swamped by some heavy process so you just give up, swearing you'll never go there again. That might be exagerated but I can understand how it could be felt that way. I'm having periods where it's very difficult for me to find even one extra hour a day, and I would certainly not appreciate at all being pressured like this to tidy my stuff and prepare for it to be published when I have other things to do, after having made the effort to report a bug. So that's something to keep in mind, not everyone deals with it the same way. > I think people handling a complex issue more privately at first and only > notifying distros when no more than 14 days is left until planned public > disclosure is actually fine. I doubt all distros need to be involved in > early analysis and fixing of a complex issue e.g. in the kernel. I generally agree, though see above. Also some reporters systematically copy some distros' security teams, probably because they were in contact with them previously and found that it made the process smoother for them, and it's possible that they consider that this part of the job is already done. > > Please note that delays are not specific to hardware issues. We've had > > to work maybe 3 months with a reporter on a randomness problem that > > allowed to some extents to guess TCP ports and sequence numbers, and it > > required us to imagine various approaches that shouldn't break TCP, and > > iterate with the researchers who studied them, tested them before getting > > back to us with "it still isn't sufficient". It was a long and painful > > one, nobody remained idle, yet it was really needed to get to the end of > > it before publishing anything. Further, the researchers asked us to keep > > some details on hold for a while because they were preparing a paper, and > > this is also something to keep in mind (some of them depened on this, > > though we must not accept that it drags for too long). > > Yes, I understand that such cases and such incentives exist. In those > cases, the issue should only be brought to (linux-)distros when it's > almost ready for publication. Yes, but again, please see above, I couldn't blame a bug reporter for wanting to have their week-ends and nights again and think everything's behind them and in someone else's hands now. > That said, can you share more detail on the specific issue you referred > to above and its handling/disclosure timeline? Was it ever brought to > oss-security, and if not then why not? I just checked and I'm not seeing any traces of it there. I don't even know who normally notifies about such issues there. > I am guessing this is related to your work on random32 in 2020: > > https://lore.kernel.org/netdev/20200808152628.GA27941@SDF.ORG/ Ah yes indeed it's that one! How painful memories suddently come back! > If so, it looks like the original issue became public via your commit in > July 2020, but further issues with that fix commit were discovered and > fixes for them prepared in public in August and only merged in October. > > So I guess some lengthy private discussion occurred before July 2020, Yeah it started in early March, and Eric, Amit and I basically spent all our week-ends and numerous evenings experimenting with different methods to deliver good enough randoms without breaking the principle of not reusing the same IDs too fast (still have a long minimal period), and running tests on real traffic, counting failures. At some point in July I gave up and concluded we couldn't fix it alone between us and needed some public help, hence the posting. > but it wasn't enough anyway, which makes me question the value of having > the initial handling in private. Maybe the issue wasn't critical enough > and privately-fixable enough for that. Maybe this actually illustrates > that such issues are best handled entirely in public... if it were not > for the researchers' incentive you mentioned (plan to publish a paper). It's always the same for random attacks: the reporter sees a very high success rate in a lab while those dealing with production know for sure that the success rate is so close to zero in field that it cannoot be represented on a float. But there's a wide spectrum between the two, such as mostly idle routers serving as route reflectors, or monitoring devices etc. Thus you start from "it could theoretically be damaging in certain environments, let's be careful", with the researchers initially willing to be discrete since working to prepare a paper. As we made progress and saw the risks of attack significantly fade away but never close enough to zero, we concluded that in the worst case we had something better than the original and it wasn't that much of a problem anymore to make it public. But I think the researchers also progressed on their side seeing the hopes to get a quick fix fade away and the reality hit the theory, thus being more willing to disclose more of their work. It's a bit of everything. > > As such I think that it's not a good solution to anything to require a > > disclosure before a fix is ready. Actually there can be one exception: > > when no more progress is being made. I don't think I would personally be > > shocked by saying that a discussion that remained inactive for 7 days > > leads to publication, it would sufficiently put the pressure on all parties > > not to let it cool rot. And difficult issues generally don't stay inactive > > for more than a few days. > > Makes sense. The current kernel documentation edit should take care of > this (no linux-distros notification until fix is ready) for cases where > the reporter learns of linux-distros from there. Maybe we should even > duplicate this information on the linux-distros wiki page? Maybe. I'm not good at adopting processes, so I'm not the best one to suggest either way :-/ > Alternatively, we may need to relax the policy. I personally think it does have a flaw that is emphasized by the linux kernel handling but can actually affect other projects. Some sole developers might just not have enough resources to do everything in 14 days, from diagnosing the problem at night or only during a few work hours, setting up a lab on the week-end to test a fix, to contacting whoever needs to be contacted and making releases. Some even make the mistake of developing new stuff in maintenance branches and feel like they need to finish before releasing (already seen)! I remember having had to search in my boxes of hardware to re-assemble a working PC with a floppy drive just to be able to validate a fix in the floppy driver. You can be sure I only did that the week-end after the report, but that's possibly 5 days lost already! I understand the rationale behind your policy. I, too, was on vendor-sec where we saw some vendors say "just FYI we're trying to fix this, we'll keep you updated" and one year later, no news. But all those doing a serious work (and there are, and the linux security team is doing that serious work) can be heavily penalized by that policy when they're not quick enough to obtain a fix. The linux people are known for being vocal, so you hear about them. But other developers might just feel completely crushed by this and it could really be harmful to them, especially when they're new to this and haven't been dealing with security reports for 25 years like many of us. That's why I tend to think that what would better address what you want to prevent, is ensuring the discussion doesn't come to a stall. This could remove a lot of frustration. And if something has to be published before the end because the developers or vendor stay silent, it's much more powerful to say "they didn't dare responding for 14 days" than "they couldn't figure a working fix for this complex issue in 14 days". > Via links from the new LWN story, I also found your similar comments > from 2022: > > https://lwn.net/Articles/897065/ Ah I didn't remember :-) At least it seems I'm consistent on this topic. > Here's a thought experiment: what if the list were not private at all, > e.g. like oss-security is not? Sure someone can ask to "please keep > this confidential", but if it's posted to the list that would be > ineffective. So what people sometimes do on public lists, Bugzillas, > GitHub issues, etc. is share private reproducers with individual > maintainers out-of-band, such as via direct e-mail, while keeping the > main discussion on the list, etc. Mistakes are made all the time on these. I just had one two weeks ago on haproxy via github that saved me an embargo :-) Having a private list to estimate if the risk is real and to forward to the skilled people is more effective IMHO. We see this a lot on s@.... I think that about 1/3 of the issues end up as "do not worry, just post this publicly". That encourages those not really in the security business to seek help without taking the risk to be blamed for disclosing something dangerous. > I see no good reason why the same > can't be happening on a temporarily-private list. So the real problem > may be that (linux-)distros is misunderstood as permanently-private > rather than temporarily-private. Unfortunately, I don't know how to > address that reliably. Even with automated delayed publication, some > people would initially have the wrong idea... maybe unless they have to > pass through a web page with the public archives before finding the > posting address? Just a stupid idea, it could possibly be addressed by a confirmation e-mail on an opening thread. Something like "we need you to confirm that what you posted will be made public by YY/MM/DD, if that's really what you want, please visit this link within 24h otherwise all your materials will be destroyed". I'm not sure, that's just an idea. But yes, it needs to be understood as public so that confidential stuff is not shared there, and it must be possible to ask for some materials to be erased early if the reporter wasn't aware of this or made a mistake (e.g. send a pcap just before the security team says "never ever share a pcap!"). > Alternatively, we may need to relax the policy. > > Just thinking out loud. You're welcome. I don't want to interfere with the lists you operate nor with those working on them, but I observe that there has been some frictions multiple times for reasons that are probably not too hard to address if respective participants discuss just a bit, which is why I'm sharing some observations ;-) Regards, Willy
Powered by blists - more mailing lists
Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.