Ken Ashcraft <[EMAIL PROTECTED]> writes:
> I work at Coverity where we use static analysis to find bugs in
> software.  I ran a security checker over postgresql-7.4.1 and I think I
> found a security hole.
>
> In the code below, fld_size gets copied in from a user specified file. 
> It is passed as the 'needed' parameter to enlargeStringInfo().  If
> needed is a very large positive value, the addition 'needed += str->len
> + 1;' could cause an overflow, making needed a negative number. 

I've applied a patch that fixes this issue, as well as the related one
that enlargeStringInfo could go into an infinite loop.

Although the path of control you identify doesn't seem very threatening
(since one must already be superuser to execute COPY from a file), the
same sort of problem could be triggered by sending a malformed data
packet, thus opening up the problem to anyone who can get past the
initial postmaster authentication check.  So this is more severe than we
first thought.

If you are looking to improve your checker, you might want to look into
why it only found this path for bad data, and not the path leading from
the client connection socket.  Seems like it should've found that too.

Thanks for the report!

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to