Vulnerability Development mailing list archives
Re: Vulnerability in PHP ?!?
From: "Mihai (Cop) Moldovanu" <mihaim () tfm ro>
Date: Tue, 14 May 2002 04:00:28 +0300 (EEST)
Erik Parker said:
If you read any of the past archives for Bugtraq, Vuln-dev, Php-dev, or php-cvs, or search on Security focus's very efficient search engine, you'd be able to find them.
He was asking about 4.1.2 wich can be crashed remote . I will put the details at the end of this message .
B> I stumbled on some exploit code from TESO that is available at B> packetstorm (http://packetstormsecurity.nl/filedesc/7350fun.html). The B> code exists as a binary that is supposed to exploit B> mod_php 4.0.x and crash at least 4.1.2 B> B> I am curious what hole is being exploited. I can't remember a buffer B> overflow vulnerability being reported for mod_php 4.1.2 B> Anyone with ideas ? B>
Details about php 4.2.0 upload bug.
A special buffer passed to php by using the old POST upload trick
will segfault php in php_mime_get_hdr_value .
#0 0x40313520 in php_mime_get_hdr_value (header=
{head = 0x0, tail = 0x0, size = 8, count = 0, dtor = 0x403132bc
<php_free_hdr_entry>, persistent = 0 '\000', traverse_ptr = 0x0},
key=0x403bb6bb "Content-Disposition") at rfc1867.c:375
#1 0x40313c95 in rfc1867_post_handler (
content_type_dup=0x818d474 "multipart/form-data; boundary=", '-'
<repeats 27times>, "299908810612827886801697150081", arg=0x818e80c, tsrm_l
at rfc1867.c:649
#2 0x40311b43 in sapi_handle_post (arg=0x818e80c, tsrm_ls=0x8116230)
at SAPI.c:110
#3 0x40315a07 in php_treat_data (arg=0, str=0x0, destArray=0x0,
tsrm_ls=0x8116230) at php_variables.c:251
0x4031350f <php_mime_get_hdr_value+51>: call 0x402dc054 <_init+11560>
0x40313514 <php_mime_get_hdr_value+56>: mov %eax,%esi
0x40313516 <php_mime_get_hdr_value+58>: add $0x10,%esp
0x40313519 <php_mime_get_hdr_value+61>: lea 0x0(%esi),%esi
0x4031351c <php_mime_get_hdr_value+64>: sub $0x8,%esp
0x4031351f <php_mime_get_hdr_value+67>: push %edi
// This is the line with the problem
0x40313520 <php_mime_get_hdr_value+68>: pushl (%esi)
In the infamous rfc1867.c at line 365
if (!strcasecmp(entry->key, key)) {
entry becomes NULL when calling strcasecmp and that's why
it will segfault .
This will give us a pretty and easy fix of this problem :
do {
+ if ( entry != NULL )
if (!strcasecmp(entry->key, key)) {
return entry->value;
php 4.2.1 fixes this problem .
--
SysAdmin of ProTV & ProFM , Member of TFM Group linux division .
Mihai Moldovanu
http://www.tfm.ro/
http://portal.tfm.ro/
Current thread:
- Re: XP Screen Saver password uses Old password until logout or New one is used. hellNbak (Apr 30)
- Re: XP Screen Saver password uses Old password until logout or Newone is used. Meritt James (Apr 30)
