Bug#534982: squid - DoS in external auth header parser

2009-10-12 Thread Amos Jeffries
I see Bug No longer marked as fixed in versions squid/2.7.STABLE7-1 and
reopened. above.

Is this correct and 2.7.STABLE7 still showing the vulnerable behaviour?

Terry:  If possible I'd like to see some details of the event, for my
interest.

Amos
Squid Team



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#534982: squid - DoS in external auth header parser

2009-09-30 Thread Terry Burton
reopen 534982
severity 534982 critical

This bug has recently hit us hard resulting in repeated DoS of a
production web service running on Debian Lenny.

What is the intended mitigation strategy for this DoS for users of
Debian Stable who rely on Squid support for external_acl_type? For the
time being I have had to rebuild appropriately patched squid packages
for Lenny to guard against this.

Since there will redoubtably be many production web servers running
Debian that are vulnerable to CVE-2009-2855 the patch should be
backported into the squid packages shipped with Lenny and released
through the security repository.


Thanks,

Terry



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#534982: squid - DoS in external auth header parser

2009-09-30 Thread Florian Weimer
* Terry Burton:

 This bug has recently hit us hard resulting in repeated DoS of a
 production web service running on Debian Lenny.

Do you know if this was triggered accidentally or deliberately?

 Since there will redoubtably be many production web servers running
 Debian that are vulnerable to CVE-2009-2855 the patch should be
 backported into the squid packages shipped with Lenny and released
 through the security repository.

Luigi, do you plan to prepare an update for (old)stable?



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#534982: squid - DoS in external auth header parser

2009-09-30 Thread Terry Burton
On Wed, Sep 30, 2009 at 5:49 PM, Florian Weimer f...@deneb.enyo.de wrote:
 * Terry Burton:

 This bug has recently hit us hard resulting in repeated DoS of a
 production web service running on Debian Lenny.

 Do you know if this was triggered accidentally or deliberately?

Florian,

Probably accidentally, though it may possibly have been deliberate.

(I will disclose further information privately as a follow up to this message.)


Many thanks,

Terry



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#534982: squid - DoS in external auth header parser

2009-06-28 Thread Bastian Blank
Package: squid
Version: 2.7.STABLE3-4.1
Severity: normal

My main squid reverse proxy suddenly stopped working after some days.
The last time it happened, I managed to dig a bit around and also got a
core dump and analyzed it as far as this works without debugging
symbols. This happened on my own rebuild with SSL enabled, but the
affected code region does not even consider SSL support.

Config excerpt:

| http_port 80 accel vhost defaultsite=example.com
| https_port 443 accel vhost defaultsite=example.com cert=/etc/squid/ssl/all 
options=NO_SSLv2
| icp_port 3130
| 
| logformat combined %a %ui %un [%tl] %rm %ru HTTP/%rv %Hs %st %Ss %Sh/%A 
%{Referer}h %{User-Agent}h
| cache_access_log /srv/squid/prod/log/access.log
| cache_access_log /srv/squid/prod/log/combined.log combined
| cache_log /srv/squid/prod/log/cache.log
| cache_store_log /srv/squid/prod/log/store.log
| 
| acl accelerated_domains dstdomain example.com
| acl accelerated_protocols proto http https
| 
| external_acl_type zope_auth ttl=0 %PATH %{Cookie:;__ac} /etc/squid/auth/auth 
/etc/squid/zope_auth.conf
| acl zope_auth external zope_auth
| 
| http_access allow accelerated_domains accelerated_protocols zope_auth
| http_access deny all

Available threads:

| (gdb) info threads
|   17 process 17096  0x2b7100488bc8 in strcspn () from /lib/libc.so.6
|   16 process 17138  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   15 process 17137  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   14 process 17136  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   13 process 17135  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   12 process 17134  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   11 process 17133  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   10 process 17132  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   9 process 17131  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   8 process 17130  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   7 process 17129  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   6 process 17128  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   5 process 17127  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   4 process 17126  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   3 process 17125  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
|   2 process 17124  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0
| * 1 process 17123  0x2b70ffd60d29 in pthread_cond_wait@@GLIBC_2.3.2 () 
from /lib/libpthread.so.0

So 16 threads suddenly waited for something shared and only the 17th did
something usefull.

Annotated backtrace of thread 17 (I had to reconstruct the function names from
a similar binary):

| (gdb) bt
| #0  0x2b7100488bc8 in strcspn () from /lib/libc.so.6
| #1  0x00456021 in ?? ()
00455f80 g F .text  0191  strListGetItem
| #2  0x0045395e in ?? ()
004538b0 g F .text  014a  
httpHeaderGetListMember
| #3  0x0043923a in ?? ()
00438e60 l F .text  0648  makeExternalAclKey
| #4  0x00439f6b in ?? ()
00439e70 g F .text  048c  aclMatchExternal
| #5  0x0040a24c in ?? ()
00409f30 g F .text  0eef  aclMatchAclList
| #6  0x0040ae61 in ?? ()
0040ae20 l F .text  044d  aclCheck
| #7  0x0042652b in ?? ()
| #8  0x00431105 in ?? ()
| #9  0x004601a0 in ?? ()
| #10 0x2b710042c1a6 in __libc_start_main () from /lib/libc.so.6

Register dump to show the parameters for strcspn:

| (gdb) info registers
| rax0x0  0
| rbx0x199d93d26859837
| rcx0x3  3
| rdx0x199d93d26859837
| rsi0x700690 7341712
| rdi0x199d93d26859837
| rbp0x0  0x0
| rsp0x7fffab99df88   0x7fffab99df88
| r8 0x199d93d26859837
| r9 0x1  1
| r100x353a39353a333220   3835440933431882272
| r110x2b71005153a0   47764336628640
| r120x7fffab99e130   140736072376624
| r130x7fffab99e128   140736072376616
| r140x3b 59
| r150x7fffab99e13c   140736072376636
| rip0x2b7100488bc8   0x2b7100488bc8 strcspn+24

Parameters are in rsi and rdi:

| (gdb) print {char[5]}0x700690
| $14 = \;,\000
| (gdb)