You are viewing a plain text version of this content. The canonical link for it is here.
Posted to test-cvs@httpd.apache.org by jo...@apache.org on 2004/10/25 15:04:14 UTC
cvs commit: httpd-test/perl-framework/t/security CAN-2004-0940.t
jorton 2004/10/25 06:04:14
Modified: perl-framework/t/conf extra.conf.in
Added: perl-framework/t/htdocs/security CAN-2004-0940.shtml
perl-framework/t/security CAN-2004-0940.t
Log:
Regression test for CAN-2004-0940, 1.3 mod_include overflow.
Revision Changes Path
1.60 +1 -0 httpd-test/perl-framework/t/conf/extra.conf.in
Index: extra.conf.in
===================================================================
RCS file: /home/cvs/httpd-test/perl-framework/t/conf/extra.conf.in,v
retrieving revision 1.59
retrieving revision 1.60
diff -d -w -u -r1.59 -r1.60
--- extra.conf.in 25 Oct 2004 07:09:00 -0000 1.59
+++ extra.conf.in 25 Oct 2004 13:04:12 -0000 1.60
@@ -420,6 +420,7 @@
## Test config for security issues
##
<Directory @SERVERROOT@/htdocs/security>
+ Options +Includes
AllowOverride All
Order allow,deny
Allow from all
1.1 httpd-test/perl-framework/t/htdocs/security/CAN-2004-0940.shtml
Index: CAN-2004-0940.shtml
===================================================================
<!--#echo var="ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab\aWAVEGOODBYETOYOURSTACKSCRIBBLESCRIBBLESCRIBBLE"-->
1.1 httpd-test/perl-framework/t/security/CAN-2004-0940.t
Index: CAN-2004-0940.t
===================================================================
use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest;
plan tests => 1, need_module 'include';
# 1.3.32 and earlier will segfault
ok t_cmp(GET_RC("/security/CAN-2004-0940.shtml"),
200, 'response was 200');
Re: cvs commit: httpd-test/perl-framework/t/security CAN-2004-0940.t
Posted by Cliff Woolley <jw...@virginia.edu>.
On Thu, 28 Oct 2004, Geoffrey Young wrote:
> I get the following failures on 1.3.32 but not on 1.3.33.
>
> t/modules/rewrite.t 22 2 9.09% 18 20
> t/security/CAN-2004-0940.t 1 1 100.00% 1
> t/security/CAN-2004-0958.t 9 2 22.22% 1 3
>
> I think these are all recent additions from you. should each of these
> failures be skipped unless something like
>
> ( have_apache(1) && have_min_apache_version(1.3.33) ) ||
> ( have_apache(2) && have_min_apache_version(2.0.XX) )
I don't think so -- it's detecting an actual legitimate failure. It's not
that the test requires a new version to work right, it's that that
particular version was broken. No sense obfuscating that fact.
--Cliff
Re: cvs commit: httpd-test/perl-framework/t/security CAN-2004-0940.t
Posted by Geoffrey Young <ge...@modperlcookbook.org>.
> Did you change PHP version too? That's a PHP test, the result shouldn't
> change unless you change PHP version too with 1.3.33?
ah, I had php installed for 1.3.32 but not 1.3.33 :)
btw, the php stuff we've been doing is coming along quite well. you might
be interested in the tarball chris and I are working on for apachecon
http://www.modperlcookbook.org/~geoff/slides/nyphp/perl-php-test.tar.gz
note you'll need to have current A-T cvs installed, as I didn't take any
protection against missing versions, etc.
> Welll... we started having this debate a while back :)
indeed :)
>
> Here's my take: I think it's correct to:
>
> 1) only test for new features in versions on which they are known to be
> present
I think we agreed on that (eventually :)
>
> 2) test for bugs in all versions unconditionally in all affected
> versions
>
> I think it's the desired outcome that if you test 1.3.32 for
> CAN-2004-0940, it should fail: 1.3.32 is after all vulnerable to
> CAN-2004-0940. Why hide that by skipping the test? Likewise, if you're
> running 1.3.32 you *should* be told that there is a nasty mod_rewrite
> regression in that version.
>
> Maybe I'm hawking my corporate agenda here a little too, because it
> makes httpd-test slightly more useful to me since I can test for 1.3.x +
> backported patch, whereas if the test was skipped for <1.3.33 it won't
> demonstrate that the code is patched.
>
> Does that make sense?
sure.
what it really feels like is that we (as a community) need a new function of
sorts. that is, skip just glosses over a failure, and todo is only forward
looking (throwing unexpectedly succeeded warnings) - we need some kind of
'known issue' marker that understands an issue can never be fixed (unlike
todo which assumes that it can be fixed in the future).
but I guess that's another topic altogether :)
so I guess I'm inclined to agree with your logic then - it's better to have
regressions fail loudly and pique some interest than to just gloss over
them, especially for security-type things.
thanks for being patient with me while I caught up, then :)
--Geoff
Re: cvs commit: httpd-test/perl-framework/t/security CAN-2004-0940.t
Posted by Joe Orton <jo...@redhat.com>.
On Thu, Oct 28, 2004 at 03:19:32PM -0400, Geoffrey Young wrote:
>
>
> jorton@apache.org wrote:
> > jorton 2004/10/25 06:04:14
> >
> > Modified: perl-framework/t/conf extra.conf.in
> > Added: perl-framework/t/htdocs/security CAN-2004-0940.shtml
> > perl-framework/t/security CAN-2004-0940.t
> > Log:
> > Regression test for CAN-2004-0940, 1.3 mod_include overflow.
>
> hi joe :)
>
> I get the following failures on 1.3.32 but not on 1.3.33.
>
> t/modules/rewrite.t 22 2 9.09% 18 20
> t/security/CAN-2004-0940.t 1 1 100.00% 1
Those bugs are present in 1.3.32, so that's expected.
> t/security/CAN-2004-0958.t 9 2 22.22% 1 3
Did you change PHP version too? That's a PHP test, the result shouldn't
change unless you change PHP version too with 1.3.33?
> I think these are all recent additions from you. should each of these
> failures be skipped unless something like
>
> ( have_apache(1) && have_min_apache_version(1.3.33) ) ||
> ( have_apache(2) && have_min_apache_version(2.0.XX) )
Welll... we started having this debate a while back :)
Here's my take: I think it's correct to:
1) only test for new features in versions on which they are known to be
present
2) test for bugs in all versions unconditionally in all affected
versions
I think it's the desired outcome that if you test 1.3.32 for
CAN-2004-0940, it should fail: 1.3.32 is after all vulnerable to
CAN-2004-0940. Why hide that by skipping the test? Likewise, if you're
running 1.3.32 you *should* be told that there is a nasty mod_rewrite
regression in that version.
Maybe I'm hawking my corporate agenda here a little too, because it
makes httpd-test slightly more useful to me since I can test for 1.3.x +
backported patch, whereas if the test was skipped for <1.3.33 it won't
demonstrate that the code is patched.
Does that make sense?
joe
Re: cvs commit: httpd-test/perl-framework/t/security CAN-2004-0940.t
Posted by Geoffrey Young <ge...@modperlcookbook.org>.
jorton@apache.org wrote:
> jorton 2004/10/25 06:04:14
>
> Modified: perl-framework/t/conf extra.conf.in
> Added: perl-framework/t/htdocs/security CAN-2004-0940.shtml
> perl-framework/t/security CAN-2004-0940.t
> Log:
> Regression test for CAN-2004-0940, 1.3 mod_include overflow.
hi joe :)
I get the following failures on 1.3.32 but not on 1.3.33.
t/modules/rewrite.t 22 2 9.09% 18 20
t/security/CAN-2004-0940.t 1 1 100.00% 1
t/security/CAN-2004-0958.t 9 2 22.22% 1 3
I think these are all recent additions from you. should each of these
failures be skipped unless something like
( have_apache(1) && have_min_apache_version(1.3.33) ) ||
( have_apache(2) && have_min_apache_version(2.0.XX) )
?
--Geoff