5574530 2000-10-10 18:17 /60 rader/ Brevbäraren (som är implementerad i) Python
Mottagare: Bugtraq (import) <13191>
Kommentar till text 5570341 av Brevbäraren (som är implementerad i) Python
Ärende: Re: ncurses buffer overflows
------------------------------------------------------------
From: "Harrington, Perry" <pedward@WEBCOM.COM>
To: BUGTRAQ@SECURITYFOCUS.COM
Message-ID: <200010100022.RAA16024@eris>
This brings up an interesting piece of history. When the whole
LD_PRELOAD haX0ring came about, people jumped on the wagon and fixed
the ld library.
However, this same trick can be used by a SA to plug potential
security holes:
libary: ncurses_fix.c
tparm(....)
char *buffer;
buffer = __tparm(....);
if (strlen(buffer) > OPT_SIZE) {
ack choke, exit proggie and log to syslog, email SA
}
return buffer;
}
This is just a generic piece of code, but it can apply to any
unchecked parameter problem.
I would consider using this method on proprietary OSes that don't
respond quickly to potential threats.
So anyhow, compile into an SO (gcc -shared) and edit your preload file
in /etc.
--Perry
> static inline int
> onscreen_mvcur(int yold,int xold,int ynew,int xnew, bool ovw)
> /* onscreen move from (yold, xold) to (ynew, xnew) */
> {
> char use[OPT_SIZE], *sp;
>
>
> =2E.. a few lines later:
>
> sp =3D tparm(SP->_address_cursor, ynew, xnew);
> if (sp)
> {
> tactic =3D 0;
> (void) strcpy(use, sp);
>
>
> OPT_SIZE seems to be defined as 512. tparm() can be made return a
--
Perry Harrington Director of zelur xuniL ()
perry@webcom.com System Architecture Think Blue. /\
(5574530) ------------------------------------------(Ombruten)