Date: Thu, 25 May 2000 02:00:34 +0400 (MSD) From: Dmitry Valdov <dv@dv.ru> To: Jeremy Shaffner <jer@jorsm.com> Cc: freebsd-security@FreeBSD.ORG Subject: Re: QPOPPER: Remote gid mail exploit Message-ID: <Pine.BSF.3.95q.1000525015811.4888A-100000@xkis.kis.ru> In-Reply-To: <Pine.BSF.4.21.0005241649220.7700-100000@mercury.jorsm.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi! oops, sorry. My fault. I've inserted "%s" before PO_SUCCESS, not before "buffer". Sorry again. Dmitry. On Wed, 24 May 2000, Jeremy Shaffner wrote: > Date: Wed, 24 May 2000 16:52:01 -0500 (CDT) > From: Jeremy Shaffner <jer@jorsm.com> > To: Dmitry Valdov <dv@dv.ru> > Cc: freebsd-security@FreeBSD.ORG > Subject: Re: QPOPPER: Remote gid mail exploit > > > I don't see that happening here: > > uidl 2 > +OK 2 AAAAAAAAAAAAAA > euidl 2 > +OK 2 AAAAAAAAAAAAAA 481 %p%p%p%p%p%p%p%p@foo.domain.com > > Without the patch you get the behavior described in the advisory: > > +OK 2 AAAAAAAAAAAAAA 470 > 0xbfbfd0340x804fd640xbfbfd0340x1d60x8052e4e0xbfbfd86c0x > 80570280x5@foo.domain.com > > > -Jeremy > > On Thu, 25 May 2000, Dmitry Valdov wrote: > > > Hi! > > > > This patch doesn't work. popper exiting with sig11 when user send UIDL xxx > > command. > > > > Dmitry. > > > > > > > Or you can manually patch it by doing the following: > > > > > > At lines 152 and 62 from pop_uidl.c, replace: > > > - return (pop_msg (p,POP_SUCCESS, buffer)); > > > to: > > > + return (pop_msg (p,POP_SUCCESS, "%s", buffer)); > > > > > > > > > Here is the resulting patch: > > > > > > > > > ---------8<-------- > > > > > > --- pop_uidl.c.orig Wed May 24 15:58:53 2000 > > > +++ pop_uidl.c Wed May 24 16:21:56 2000 > > > @@ -59,7 +59,7 @@ > > > > > > sprintf(buffer, "%d %s", msg_id, mp->uidl_str); > > > if (nl = index(buffer, NEWLINE)) *nl = 0; > > > - return (pop_msg (p,POP_SUCCESS, buffer)); > > > + return (pop_msg (p,POP_SUCCESS, "%s", buffer)); > > > } > > > } else { > > > /* yes, we can do this */ > > > @@ -149,7 +149,7 @@ > > > sprintf(buffer, "%d %s", msg_id, mp->uidl_str); > > > if (nl = index(buffer, NEWLINE)) *nl = 0; > > > sprintf(buffer, "%s %d %.128s", buffer, mp->length, from_hdr(p, > > > mp)); > > > - return (pop_msg (p,POP_SUCCESS, buffer)); > > > + return (pop_msg (p,POP_SUCCESS, "%s", buffer)); > > > } > > > } else { > > > /* yes, we can do this */ > > > > > > ------->8---------- > > > > > > --- > Jeremy Shaffner > System Administrator > JORSM Internet > jer@jorsm.com > http://www.jorsm.com/~jer/pgp.key > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-security" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.1000525015811.4888A-100000>