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