Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id DA2C410762 for ; Tue, 14 Jan 2014 17:56:05 +0000 (UTC) Received: (qmail 67922 invoked by uid 500); 14 Jan 2014 17:56:01 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 67877 invoked by uid 500); 14 Jan 2014 17:56:01 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 67851 invoked by uid 99); 14 Jan 2014 17:56:00 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jan 2014 17:56:00 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ben@reser.org designates 50.197.89.41 as permitted sender) Received: from [50.197.89.41] (HELO mail.brain.org) (50.197.89.41) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jan 2014 17:55:55 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.brain.org (Postfix) with ESMTP id B1E9F179E193 for ; Tue, 14 Jan 2014 09:55:33 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at fornix.brain.org Received: from mail.brain.org ([127.0.0.1]) by localhost (fornix.brain.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p2mMU2PzCB+w for ; Tue, 14 Jan 2014 09:55:33 -0800 (PST) Received: from fmri.brain.org (fmri.brain.org [IPv6:2001:470:e966:5:223:dfff:fedf:433d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.brain.org (Postfix) with ESMTPSA id 6DDC5179E171 for ; Tue, 14 Jan 2014 09:55:33 -0800 (PST) Message-ID: <52D57A67.5070308@reser.org> Date: Tue, 14 Jan 2014 09:56:55 -0800 From: Ben Reser User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:27.0) Gecko/20100101 Thunderbird/27.0 MIME-Version: 1.0 To: dev@httpd.apache.org Subject: Re: [VOTE] obscuring (or not) commit logs/CHANGES for fixes to vulnerabilities References: <52D0F812.8050907@reser.org> <52D4D4CB.1070000@reser.org> In-Reply-To: X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org On 1/14/14, 7:35 AM, Jeff Trawick wrote: > The simple answer to all of this is "look how httpd releases with security > fixes have been handled in the past." The RM commits the fixes just before Tag > & Roll and, depending on the impact of the vulnerabilities, may call for an > abbreviated testing schedule. That really doesn't answer any of the questions I just asked. If I thought the existing process handled all of this I wouldn't have asked the questions. > This is back to choice 1 or choice 2, and whether or not you think that showing > the code gives a would-be attacker useful information. Committing the code always gives a would-be attacker useful information, I don't dispute that. The distinction is that committing a CVE number with a security fix gives them MORE information. It creates the opportunity to automate detection of fixes that can be analyzed and exploited before we can get fixes in the hands of our users. If you don't narrow the gap between that commit and putting the fix in a usable state to end users then you've harmed our users rather than helped them in my opinion. There will always be some sort of gap, that's just the nature of an open source project. And less critical issues can afford a larger gap than more critical issues. However, that gap should be no more than a few days in my opinion. Certainly not weeks or months. > The vote is about reaffirming support for and documenting a long-standing > practice around commit/disclosure which has been followed in the vast majority > of cases and which most of us feel should always be followed. It is not about > inventing completely new procedures to deal with vulnerabilities. My observation has been that we haven't been doing that. I decided to go back and look at what we've been doing. I only bothered to look at 2.4.x (which I realize is not a huge sample). Here's how we've done with 2.4.x so far: CVE-2013-1896 trunk revision: 1485668 (2013-05-23) CVE in commit: no CVE (even now) comments: mentions segfault release with fix: 2013-07-22 CVE-2013-2249 trunk revision: 1488158 (2013-05-31) CVE in commit: no CVE (even now) comments: doesn't mention security impact at all release with fix: 2013-07-22 CVE-2012-3499 trunk revision: 1413732 (2012-11-26) & 1418752 (2012-12-08) CVE in commit: no CVE (even now) comments: only says missing html escaping release with fix: 2013-02-25 CVE-2012-4558 trunk revision: 1413732 (2012-11-26) CVE in commit: no CVE (even now) comments: only says missing html escaping release with fix: 2013-02-25 CVE-2012-3502 trunk revision: 1373955 (2012-08-16) CVE in commit: no CVE original version: http://mail-archives.apache.org/mod_mbox/httpd-cvs/201208.mbox/%3C20120816175451.51AC32388900%40eris.apache.org%3E has been updated since to include CVE comments: no mention of security impact in initial commit, subsequent update is good release with fix: 2012-08-21 CVE-2012-2687 trunk revision: 1349905 (2012-06-13) CVE in commit: CVE in initial commit comments: Good explanation of security issue release with fix: 2012-08-21 CVE-2012-0883 trunk revision: 1296428 (2012-03-02) CVE in commit: CVE in initial commit comments: Explanation done in initial commit release with fix: 2012-04-17 Now the last couple actually do commit with a CVE number and an exmplation, so maybe I'm wrong and this has been a long standing practice. From the limited data of 2.4.x it looks like something changed (or maybe it's just some people do things one way and another group does it another). To that end I applaud your effort to standardize what's being done. Maybe the people committing obscured logs were following this page: http://www.apache.org/security/committers.html But up till now I've been approaching this as a change in policy since that's how it appeared to me based on the above. > For this small aspect of the overall policy that is being voted on, > implementation is as simple as having the security team determine whether or > not a vulnerability can be fully disclosed prior to the time a release is > prepared. If it can, commit away. If not, wait for Tag&Roll. I acknowledged that my questions went beyond the simple question in your vote. The goal as I understand it is to avoid security by obscurity and to put our users on a equal footing to potential attackers reading our source commits. I don't think ever committing with some sort of security issue explained in the commit message and without an advisory and/or release coming out very soon is ever really helpful towards that goal. Our users do not read our commits, probably do not understand what our commit messages mean with respect to impact and may not be able to apply the fix committed (especially if it doesn't easily apply to release branches). I'm approaching this from the standpoint of helping our users as much as possible.