exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

fedcirc.97.19.txt

fedcirc.97.19.txt
Posted Sep 23, 1999

fedcirc.97.19.txt

SHA-256 | 83b49c6c7bc4092945075439374eba8ee91d7776c01aa5f32a43dbcb93b783e5

fedcirc.97.19.txt

Change Mirror Download
-----BEGIN PGP SIGNED MESSAGE-----

******************************************************************************
------ ----- ----- --- -----
| ----- ---- | | | | |
|--- | | | | | | | |
| |-- | | | | |-- |
| | | | | | | \ |
| ----- ---- ----- ----- | \ -----

A D V I S O R Y

97.19
******************************************************************************
Topic: Vulnerability in suidperl (sperl)
Source: CERT/CC

Creation Date: May 29, 1997
Last Updated: May 29, 1997


To aid in the wide distribution of essential security information,
FedCIRC is forwarding the following information from CERT/CC advisory
CA-97.17. FedCIRC urges you to act on this information as soon as
possible.

If you have any questions, please contact FedCIRC:

Telephone: +1 888 282 0870
Email: fedcirc@fedcirc.gov



=======================FORWARDED TEXT STARTS HERE============================

=============================================================================
CERT* Advisory CA-97.17
Original issue date: May 29, 1997
Last revised: --

Topic: Vulnerability in suidperl (sperl)
- - - -----------------------------------------------------------------------------

The CERT Coordination Center has received reports of a buffer overflow
condition in suidperl built from Perl 4.n and Perl 5.n distributions on UNIX
systems. By calling this program with appropriately crafted parameters,
unauthorized local users can execute arbitrary commands as root. This
vulnerability is being actively exploited.

The CERT/CC team recommends installing a vendor patch if one is available (see
Section III.B). Until you can do so, we recommend disabling suidperl (Section
III.A). Two other alternatives are to install suidperl or sperl from version
5.003 source code along with the patch provided in Appendix B of this
advisory (see also Section III.C), or upgrade to Perl version 5.004 (Section
III.D). Note that Perl4 is no longer supported.

We will update this advisory as we receive additional information.
Please check our advisory files regularly for updates that relate to your site.

- - - -----------------------------------------------------------------------------

I. Description

On some systems, setuid and setgid scripts (scripts written in the C
shell, Bourne shell, or Perl, for example, with the set user or group ID
permissions enabled) are insecure due to a race condition in the
kernel. For those systems, Perl versions 4 and 5 attempt to work around
this vulnerability with a special program named suidperl, also known as
sperl. This program attempts to emulate the set-user-ID and set-group-ID
features of the kernel.

There is a buffer overflow condition in suidperl built from Perl 4.n and
Perl 5.n distributions earlier than version 5.004. If this program is
called with appropriately crafted parameters, an attacker can execute
arbitrary commands as root. This vulnerability is being actively
exploited.

II. Impact

Users executing Perl scripts with the setuid bit set can execute
arbitrary commands with the effective uid of the owner of the Perl
script. Attackers can execute commands as root.


III. Solution

Use the command in Section A to help you determine if your system is
vulnerable and, if it is, to (optionally) disable the suidperl and sperl
programs (see Section A). If you find that your system is vulnerable,
replace the suidperl and sperl programs with new versions.

Section B describes how to do that if your site uses versions of suidperl
and sperl that are provided as part of a vendor-supplied distribution.
Sites that installed suidperl and sperl programs themselves from the Perl
source distribution should patch the distribution as described in Section
C or upgrade to version 5.004 as described in Section D. Note that Perl4
is no longer supported.

A. Determine if your system is vulnerable and disable vulnerable programs

To determine if a system is vulnerable to this problem and to disable
the programs that are believed to be vulnerable, use the following
find command or a variant. Consult your local system documentation to
determine how to tailor the find program on your system.

After you have run this command on all your systems, they will no
longer be vulnerable. Note that after disabling the suidperl and sperl
programs, they will no longer be able to emulate the set-user-ID and
set-group-ID features of the kernel.

You will need to run the find command on each system you maintain
because the command examines files on the local disk only. Substitute
the names of your local file systems for FILE_SYSTEM_NAMES in the
example. Example local file system names are /, /usr, and /var.
You must do this as root.

Note that this is one long command, though we have separated
it onto five lines using back-slashes.

find FILE_SYSTEM_NAMES -xdev -type f -user root \
\( -name 'sperl4.[0-9][0-9][0-9]' \
-o -name 'sperl5.00[0-3]' \
-o -name 'suidperl' \) \
-perm -04000 -print -ok chmod ug-s '{}' \;

This command will find all files on a system that are
- only in the file system you name (FILE_SYSTEM_NAMES -xdev)
- regular files (-type f)
- owned by root (-user root)
- named appropriately (-name 'sperl4.[0-9][0-9][0-9]'
-o -name 'sperl5.00[0-3]'
-o -name 'suidperl')
- setuid root (-perm -04000)

Once found, those files will
- have their names printed (-print)
- have their modes changed, but only if you type `y'
in response to the prompt (-ok chown ug-s '{}' \;)


B. Obtain and install the appropriate patch from your vendor

If your vendor ships suidperl or sperl, you may be vulnerable and need
a patch. Appendix A contains information provided by the following
vendors. If your vendor is not on this list, please contact the vendor
directly.

Berkeley Software Design, Inc. (BSDI)
Cray Research - A Silicon Graphics Company
Data General Corporation
Hewlett-Packard Company
IBM Corporation
Linux
The Santa Cruz Operation, Inc. (SCO)
Silicon Graphics, Inc. (SGI)

Until you can install a patch, we recommend disabling suidperl.
The find command above will help you do that. If you need
suidperl or sperl, see the alternatives in Sections C and D below.


C. Install suidperl or sperl from 5.003 source code and apply a patch.
Follow the instructions below, which were provided by Chip Salzenberg.

If you would like to keep using setuid Perl scripts, fix Perl
yourself by following these steps:

1. Go to your Perl 5.003 source directory, or else obtain a fresh
Perl 5.003 distribution from

http://www.perl.com/CPAN/src/5.0/perl5.003.tar.gz

or another CPAN archive accessible to you.

This file is approximately 1.5 megabytes in size.

2. Using the "patch" program, apply the patch that is enclosed
below in Appendix B.

3. Build and install the patched Perl 5.003. (If you have never
built Perl before, be sure to read the "INSTALL" file first.)

Perl 5.003 binaries that have had this patch applied, and therefore
are safe from all known attacks, can be identified by the
output of the "perl -v" command: the "locally applied patches" list
will include "SUIDBUF - Buffer overflow fixes for suidperl
security".


D. Install suidperl or sperl from 5.004 source code (no patch needed).

If you would like to upgrade to Perl version 5.004, follow these
steps:

1. Obtain a fresh Perl 5.004 distribution from

http://www.perl.com/CPAN/src/5.0/perl5.004.tar.gz

or another CPAN archive accessible to you.

This file is approximately 2.5 megabytes in size.

2. Build and install Perl 5.004 according to the instructions
given in the "INSTALL" file. Do NOT apply the patch.

Perl 5.004 binaries, which are safe from all known attacks, can be
identified by the output of the "perl -v" command: it should say
"This is perl, version 5.004". (Unlike the 5.003 patch mentioned
in Section C, the "locally applied patches" list will NOT include
"SUIDBUF - Buffer overflow fixes for suidperl security". The fact
that it is version 5.004 is sufficient in this case.)


...........................................................................

Appendix A - Vendor Information

Below is a list of the vendors who have provided information for this
advisory. We will update this appendix as we receive additional information.
If you do not see your vendor's name, the CERT/CC did not hear from that
vendor. Please contact the vendor directly.


Berkeley Software Design, Inc. (BSDI)
=====================================
BSD/OS is vulnerable to the suidperl (sperl) buffer overflow problem. We
will be releasing a patch for BSDI 3.0 and perl 5.003 and are currently
working on patches for BSD/OS 3.0 and Perl 4.036. We will also be developing
patches for the perl versions shipped with BSD/OS 2.1.


Cray Research - A Silicon Graphics Company
==========================================
Cray Research does not ship perl as part of either Unicos or Unicos/mk.


Data General Corporation
========================
The only perl executables that are shipped with DG/UX are:

/bin/perl

and

/bin/perl5 /* in R420 */

These are not set uid programs.

Therefore,
No versions of DG/UX are vulnerable to this problem.


Hewlett-Packard Company
=======================
HP does not ship this product.


IBM Corporation
===============
AIX versions do not have Perl as part of the standard product.
However, the SP2's PSSP software does contain suidperl, but the
program is not installed with the setuid bit set.

IBM and AIX are registered trademarks of International Business Machines
Corporation.


Linux
=====
Red Hat 4.2 is not vulnerable
Red Hat 4.1/4.0 you can get the upgraded RPM from ftp.redhat.com

If you wish to check whether you have the fixed perl run perl -v and
check for

Locally applied patches:
SUIDBUF - Buffer overflow fixes for suidperl security


The Santa Cruz Operation, Inc. (SCO)
====================================
suidperl is not included in any SCO products.

SCO CMW+ and SCO OpenServer do not have kernel support for setuid
scripts, but you may have installed suidperl in order to emulate
that functionality - in that case you should replace your version of
perl with version 5.004, or patch your source code as noted in this
advisory.

SCO UnixWare does have safe kernel support for setuid scripts so
that suidperl is not necessary. If you have installed a version
of perl that includes suidperl, you should remove suidperl and
install a version of perl built so as not to require it.


Silicon Graphics, Inc. (SGI)
=============================
At this time, Silicon Graphics does not have any public information for
this suidperl/sperl issue. Silicon Graphics has communicated with
CERT and other external security parties and is actively investigating
this issue. When more Silicon Graphics information (including any
possible patches) is available for release, that information will
be released via the SGI security mailing list, wiretap.

For subscribing to the wiretap mailing list and other SGI security
related information, please refer to the Silicon Graphics Security
Headquarters website located at:

http://www.sgi.com/Support/Secur/security.html

...........................................................................

Appendix B - Source Code Patch Information

The following patch information has been supplied by Chip Salzenberg. If you
built suidperl or sperl from 5.003 source code, we encouraged you to apply
this patch (see the explanation in Section III.C above).


Patch follows.

- - - --------------------------------------------------------------------------

Index: patchlevel.h
***************
*** 41,42 ****
- - - --- 41,43 ----
+ ,"SUIDBUF - Buffer overflow fixes for suidperl security"
,NULL
};

Index: perl.c
*************** char *s;
*** 1212,1216 ****
# endif
#endif
! fputs("\n\t+ suidperl security patch", stdout);
fputs("\n\nCopyright 1987-1996, Larry Wall\n",stdout);
#ifdef MSDOS
- - - --- 1212,1216 ----
# endif
#endif
! fputs("\n\t+ two suidperl security patches", stdout);
fputs("\n\nCopyright 1987-1996, Larry Wall\n",stdout);
#ifdef MSDOS

Index: gv.c
*************** gv_fetchfile(name)
*** 59,67 ****
char *name;
{
! char tmpbuf[1200];
GV *gv;

! sprintf(tmpbuf,"::_<%s", name);
gv = gv_fetchpv(tmpbuf, TRUE, SVt_PVGV);
sv_setpv(GvSV(gv), name);
if (*name == '/' && (instr(name,"/lib/") || instr(name,".pm")))
- - - --- 59,80 ----
char *name;
{
! char smallbuf[256];
! char *tmpbuf;
! STRLEN tmplen;
GV *gv;

! tmplen = strlen(name) + 4;
! if (tmplen < sizeof smallbuf)
! tmpbuf = smallbuf;
! else
! New(603, tmpbuf, tmplen + 1, char);
! tmpbuf[0] = ':';
! tmpbuf[1] = ':';
! tmpbuf[2] = '_';
! tmpbuf[3] = '<';
! strcpy(tmpbuf + 4, name);
gv = gv_fetchpv(tmpbuf, TRUE, SVt_PVGV);
+ if (tmpbuf != smallbuf)
+ Safefree(tmpbuf);
sv_setpv(GvSV(gv), name);
if (*name == '/' && (instr(name,"/lib/") || instr(name,".pm")))

Index: toke.c
*************** static char *scan_const _((char *start))
*** 22,26 ****
static char *scan_formline _((char *s));
static char *scan_heredoc _((char *s));
! static char *scan_ident _((char *s, char *send, char *dest, I32 ck_uni));
static char *scan_inputsymbol _((char *start));
static char *scan_pat _((char *start));
- - - --- 22,27 ----
static char *scan_formline _((char *s));
static char *scan_heredoc _((char *s));
! static char *scan_ident _((char *s, char *send, char *dest, STRLEN destlen,
! I32 ck_uni));
static char *scan_inputsymbol _((char *start));
static char *scan_pat _((char *start));
*************** static char *scan_str _((char *start));
*** 28,32 ****
static char *scan_subst _((char *start));
static char *scan_trans _((char *start));
! static char *scan_word _((char *s, char *dest, int allow_package, STRLEN *slp));
static char *skipspace _((char *s));
static void checkcomma _((char *s, char *name, char *what));
- - - --- 29,34 ----
static char *scan_subst _((char *start));
static char *scan_trans _((char *start));
! static char *scan_word _((char *s, char *dest, STRLEN destlen,
! int allow_package, STRLEN *slp));
static char *skipspace _((char *s));
static void checkcomma _((char *s, char *name, char *what));
*************** static char * filter_gets _((SV *sv, FIL
*** 47,50 ****
- - - --- 49,54 ----
static void restore_rsfp _((void *f));

+ static char too_long[] = "Identifier too long";
+
/* The following are arranged oddly so that the guard on the switch statement
* can get by with a single comparison (if the compiler is smart enough).
*************** int allow_tick;
*** 475,479 ****
(allow_tick && *s == '\'') )
{
! s = scan_word(s, tokenbuf, allow_pack, &len);
if (check_keyword && keyword(tokenbuf, len))
return start;
- - - --- 479,483 ----
(allow_tick && *s == '\'') )
{
! s = scan_word(s, tokenbuf, sizeof tokenbuf, allow_pack, &len);
if (check_keyword && keyword(tokenbuf, len))
return start;
*************** register char *s;
*** 847,851 ****
unsigned char un_char = 0, last_un_char;
char *send = strchr(s,']');
! char tmpbuf[512];

if (!send) /* has to be an expression */
- - - --- 851,855 ----
unsigned char un_char = 0, last_un_char;
char *send = strchr(s,']');
! char tmpbuf[sizeof tokenbuf * 4];

if (!send) /* has to be an expression */
*************** register char *s;
*** 872,876 ****
weight -= seen[un_char] * 10;
if (isALNUM(s[1])) {
! scan_ident(s,send,tmpbuf,FALSE);
if ((int)strlen(tmpbuf) > 1 && gv_fetchpv(tmpbuf,FALSE, SVt_PV))
weight -= 100;
- - - --- 876,880 ----
weight -= seen[un_char] * 10;
if (isALNUM(s[1])) {
! scan_ident(s, send, tmpbuf, sizeof tmpbuf, FALSE);
if ((int)strlen(tmpbuf) > 1 && gv_fetchpv(tmpbuf,FALSE, SVt_PV))
weight -= 100;
*************** GV *gv;
*** 942,946 ****
{
char *s = start + (*start == '$');
! char tmpbuf[1024];
STRLEN len;
GV* indirgv;
- - - --- 946,950 ----
{
char *s = start + (*start == '$');
! char tmpbuf[sizeof tokenbuf];
STRLEN len;
GV* indirgv;
*************** GV *gv;
*** 952,956 ****
gv = 0;
}
! s = scan_word(s, tmpbuf, TRUE, &len);
if (*start == '$') {
if (gv || last_lop_op == OP_PRINT || isUPPER(*tokenbuf))
- - - --- 956,960 ----
gv = 0;
}
! s = scan_word(s, tmpbuf, sizeof tmpbuf, TRUE, &len);
if (*start == '$') {
if (gv || last_lop_op == OP_PRINT || isUPPER(*tokenbuf))
*************** yylex()
*** 1629,1633 ****
case '*':
if (expect != XOPERATOR) {
! s = scan_ident(s, bufend, tokenbuf, TRUE);
expect = XOPERATOR;
force_ident(tokenbuf, '*');
- - - --- 1633,1637 ----
case '*':
if (expect != XOPERATOR) {
! s = scan_ident(s, bufend, tokenbuf, sizeof tokenbuf, TRUE);
expect = XOPERATOR;
force_ident(tokenbuf, '*');
*************** yylex()
*** 1645,1649 ****
case '%':
if (expect != XOPERATOR) {
! s = scan_ident(s, bufend, tokenbuf + 1, TRUE);
if (tokenbuf[1]) {
expect = XOPERATOR;
- - - --- 1649,1653 ----
case '%':
if (expect != XOPERATOR) {
! s = scan_ident(s, bufend, tokenbuf + 1, sizeof tokenbuf - 1, TRUE);
if (tokenbuf[1]) {
expect = XOPERATOR;
*************** yylex()
*** 1748,1752 ****
s++;
if (s < bufend && isALPHA(*s)) {
! d = scan_word(s, tokenbuf, FALSE, &len);
while (d < bufend && (*d == ' ' || *d == '\t'))
d++;
- - - --- 1752,1756 ----
s++;
if (s < bufend && isALPHA(*s)) {
! d = scan_word(s, tokenbuf, sizeof tokenbuf, FALSE, &len);
while (d < bufend && (*d == ' ' || *d == '\t'))
d++;
*************** yylex()
*** 1847,1851 ****
}

! s = scan_ident(s-1, bufend, tokenbuf, TRUE);
if (*tokenbuf) {
expect = XOPERATOR;
- - - --- 1851,1855 ----
}

! s = scan_ident(s - 1, bufend, tokenbuf, sizeof tokenbuf, TRUE);
if (*tokenbuf) {
expect = XOPERATOR;
*************** yylex()
*** 1956,1960 ****
case '$':
if (s[1] == '#' && (isALPHA(s[2]) || strchr("_{$:", s[2]))) {
! s = scan_ident(s+1, bufend, tokenbuf+1, FALSE);
if (expect == XOPERATOR) {
if (lex_formbrack && lex_brackets == lex_formbrack) {
- - - --- 1960,1965 ----
case '$':
if (s[1] == '#' && (isALPHA(s[2]) || strchr("_{$:", s[2]))) {
! s = scan_ident(s + 1, bufend, tokenbuf + 1, sizeof tokenbuf - 1,
! FALSE);
if (expect == XOPERATOR) {
if (lex_formbrack && lex_brackets == lex_formbrack) {
*************** yylex()
*** 1982,1986 ****
TOKEN(DOLSHARP);
}
! s = scan_ident(s, bufend, tokenbuf+1, FALSE);
if (expect == XOPERATOR) {
if (lex_formbrack && lex_brackets == lex_formbrack) {
- - - --- 1987,1991 ----
TOKEN(DOLSHARP);
}
! s = scan_ident(s, bufend, tokenbuf + 1, sizeof tokenbuf - 1, FALSE);
if (expect == XOPERATOR) {
if (lex_formbrack && lex_brackets == lex_formbrack) {
*************** yylex()
*** 2016,2024 ****
if (*s == '{' && strEQ(tokenbuf, "$SIG") &&
(t = strchr(s,'}')) && (t = strchr(t,'='))) {
! char tmpbuf[1024];
STRLEN len;
for (t++; isSPACE(*t); t++) ;
if (isIDFIRST(*t)) {
! t = scan_word(t, tmpbuf, TRUE, &len);
if (*t != '(' && perl_get_cv(tmpbuf, FALSE))
warn("You need to quote \"%s\"", tmpbuf);
- - - --- 2021,2029 ----
if (*s == '{' && strEQ(tokenbuf, "$SIG") &&
(t = strchr(s,'}')) && (t = strchr(t,'='))) {
! char tmpbuf[sizeof tokenbuf];
STRLEN len;
for (t++; isSPACE(*t); t++) ;
if (isIDFIRST(*t)) {
! t = scan_word(t, tmpbuf, sizeof tmpbuf, TRUE, &len);
if (*t != '(' && perl_get_cv(tmpbuf, FALSE))
warn("You need to quote \"%s\"", tmpbuf);
*************** yylex()
*** 2093,2097 ****

case '@':
! s = scan_ident(s, bufend, tokenbuf+1, FALSE);
if (expect == XOPERATOR)
no_op("Array",s);
- - - --- 2098,2102 ----

case '@':
! s = scan_ident(s, bufend, tokenbuf + 1, sizeof tokenbuf - 1, FALSE);
if (expect == XOPERATOR)
no_op("Array",s);
*************** yylex()
*** 2129,2133 ****
: !GvHV(gv) )))
{
! char tmpbuf[1024];
sprintf(tmpbuf, "Literal @%s now requires backslash",tokenbuf+1);
yyerror(tmpbuf);
- - - --- 2134,2138 ----
: !GvHV(gv) )))
{
! char tmpbuf[sizeof tokenbuf + 40];
sprintf(tmpbuf, "Literal @%s now requires backslash",tokenbuf+1);
yyerror(tmpbuf);
*************** yylex()
*** 2293,2297 ****
keylookup:
bufptr = s;
! s = scan_word(s, tokenbuf, FALSE, &len);

if (*s == ':' && s[1] == ':' && strNE(tokenbuf, "CORE"))
- - - --- 2298,2302 ----
keylookup:
bufptr = s;
! s = scan_word(s, tokenbuf, sizeof tokenbuf, FALSE, &len);

if (*s == ':' && s[1] == ':' && strNE(tokenbuf, "CORE"))
*************** yylex()
*** 2338,2342 ****

if (*s == '\'' || *s == ':' && s[1] == ':') {
! s = scan_word(s, tokenbuf + len, TRUE, &len);
if (!len)
croak("Bad name after %s::", tokenbuf);
- - - --- 2343,2348 ----

if (*s == '\'' || *s == ':' && s[1] == ':') {
! s = scan_word(s, tokenbuf + len, sizeof tokenbuf - len,
! TRUE, &len);
if (!len)
croak("Bad name after %s::", tokenbuf);
*************** yylex()
*** 2557,2561 ****
s += 2;
d = s;
! s = scan_word(s, tokenbuf, FALSE, &len);
tmp = keyword(tokenbuf, len);
if (tmp < 0)
- - - --- 2563,2567 ----
s += 2;
d = s;
! s = scan_word(s, tokenbuf, sizeof tokenbuf, FALSE, &len);
tmp = keyword(tokenbuf, len);
if (tmp < 0)
*************** yylex()
*** 3244,3250 ****

if (isIDFIRST(*s) || *s == '\'' || *s == ':') {
! char tmpbuf[128];
expect = XBLOCK;
! d = scan_word(s, tmpbuf, TRUE, &len);
if (strchr(tmpbuf, ':'))
sv_setpv(subname, tmpbuf);
- - - --- 3250,3256 ----

if (isIDFIRST(*s) || *s == '\'' || *s == ':') {
! char tmpbuf[sizeof tokenbuf];
expect = XBLOCK;
! d = scan_word(s, tmpbuf, sizeof tmpbuf, TRUE, &len);
if (strchr(tmpbuf, ':'))
sv_setpv(subname, tmpbuf);
*************** char *what;
*** 4091,4102 ****

static char *
! scan_word(s, dest, allow_package, slp)
register char *s;
char *dest;
int allow_package;
STRLEN *slp;
{
register char *d = dest;
for (;;) {
if (isALNUM(*s))
*d++ = *s++;
- - - --- 4097,4112 ----

static char *
! scan_word(s, dest, destlen, allow_package, slp)
register char *s;
char *dest;
+ STRLEN destlen;
int allow_package;
STRLEN *slp;
{
register char *d = dest;
+ register char *e = d + destlen - 3; /* two-character token, ending NUL */
for (;;) {
+ if (d >= e)
+ croak(too_long);
if (isALNUM(*s))
*d++ = *s++;
*************** STRLEN *slp;
*** 4119,4129 ****

static char *
! scan_ident(s,send,dest,ck_uni)
register char *s;
register char *send;
char *dest;
I32 ck_uni;
{
register char *d;
char *bracket = 0;
char funny = *s++;
- - - --- 4129,4141 ----

static char *
! scan_ident(s, send, dest, destlen, ck_uni)
register char *s;
register char *send;
char *dest;
+ STRLEN destlen;
I32 ck_uni;
{
register char *d;
+ register char *e;
char *bracket = 0;
char funny = *s++;
*************** I32 ck_uni;
*** 4134,4143 ****
s = skipspace(s);
d = dest;
if (isDIGIT(*s)) {
! while (isDIGIT(*s))
*d++ = *s++;
}
else {
for (;;) {
if (isALNUM(*s))
*d++ = *s++;
- - - --- 4146,4161 ----
s = skipspace(s);
d = dest;
+ e = d + destlen - 3; /* two-character token, ending NUL */
if (isDIGIT(*s)) {
! while (isDIGIT(*s)) {
! if (d >= e)
! croak(too_long);
*d++ = *s++;
+ }
}
else {
for (;;) {
+ if (d >= e)
+ croak(too_long);
if (isALNUM(*s))
*d++ = *s++;

- - - --------------------------------------------------------------------------

End of patch.

- - - -----------------------------------------------------------------------------

The CERT Coordination Center staff thanks Chip Salzenberg for supplying a fix,
Larry Wall for tweaking the fix, and Warner Losh for his work on patches.

- - - -----------------------------------------------------------------------------

If you believe that your system has been compromised, contact the CERT
Coordination Center or your representative in the Forum of Incident Response
and Security Teams (see http://www.first.org/team-info/)


CERT/CC Contact Information
- - - ----------------------------
Email cert@cert.org

Phone +1 412-268-7090 (24-hour hotline)
CERT personnel answer 8:30-5:00 p.m. EST(GMT-5) / EDT(GMT-4)
and are on call for emergencies during other hours.

Fax +1 412-268-6989

Postal address
CERT Coordination Center
Software Engineering Institute
Carnegie Mellon University
Pittsburgh PA 15213-3890
USA

Using encryption
We strongly urge you to encrypt sensitive information sent by email. We can
support a shared DES key or PGP. Contact the CERT/CC for more information.
Location of CERT PGP key
ftp://info.cert.org/pub/CERT_PGP.key

Getting security information
CERT publications and other security information are available from
http://www.cert.org/
ftp://info.cert.org/pub/

CERT advisories and bulletins are also posted on the USENET newsgroup
comp.security.announce

To be added to our mailing list for advisories and bulletins, send
email to
cert-advisory-request@cert.org
In the subject line, type
SUBSCRIBE your-email-address

- - - ---------------------------------------------------------------------------
* Registered U.S. Patent and Trademark Office.

Copyright 1997 Carnegie Mellon University
This material may be reproduced and distributed without permission provided
it is used for noncommercial purposes and the copyright statement is
included.

The CERT Coordination Center is part of the Software Engineering Institute
(SEI). The SEI is sponsored by the U.S. Department of Defense.
- - - ---------------------------------------------------------------------------

This file: ftp://info.cert.org/pub/cert_advisories/CA-97.17.sperl
http://www.cert.org
click on "CERT Advisories"


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Revision history

========================FORWARDED TEXT ENDS HERE=============================

The National Institute of Standards and Technology (NIST) has
established a Federal Computer Incident response Capability (FedCIRC)
to assist federal civilians agencies in their incident handling
efforts by providing proactive and reactive computer security related
services. FedCIRC is a partnership among NIST, the Computer Incident
Advisory Capability (CIAC), and the CERT* Coordination Center
(CERT/CC).

If you believe that your system has been compromised, please contact
FedCIRC:

Telephone: +1 888 282 0870
Email: fedcirc@fedcirc.gov
Web Server: http://www.fedcirc.gov/

* Registered in U.S. Patent and Trademark Office

The CERT Coordination Center is part of the Software Engineering
Institute. The Software Engineering Institute is sponsored by the
U.S. Department of Defense.

CIAC, the Computer Incident Advisory Capability, is the computer
security incident response team for the U.S. Department of Energy
(DOE) and the emergency backup response team for the National
Institutes of Health (NIH). CIAC is located at the Lawrence Livermore
National Laboratory in Livermore, California. CIAC is also a founding
member of FIRST, the Forum of Incident Response and Security Teams, a
global organization established to foster cooperation and coordination
among computer security teams worldwide.

This document was prepared as an account of work sponsored by an
agency of the United States Government. Neither the United States
Government nor the University of California nor any of their
employees, makes any warranty, express or implied, or assumes any
legal liability or responsibility for the accuracy, completeness, or
usefulness of any information, apparatus, product, or process
disclosed, or represents that its use would not infringe privately
owned rights. Reference herein to any specific commercial products,
process, or service by trade name, trademark, manufacturer, or
otherwise, does not necessarily constitute or imply its endorsement,
recommendation or favoring by the United States Government or the
University of California. The views and opinions of authors expressed
herein do not necessarily state or reflect those of the United States
Government or the University of California, and shall not be used for
advertising or product endorsement purposes.


-----BEGIN PGP SIGNATURE-----
Version: 2.6.2
Comment: Processed by Mailcrypt 3.3, an Emacs/PGP interface

iQCVAwUBM6WFG3VP+x0t4w7BAQFf+QP/QcG26dne2BjKPrN8WnpYnjF1Uhd9Juas
8R6SXQT7LuFdl7/egKxUsCAIdBPoiQNSkQ3NJr/HFQGyZFC1bcicImqd+4HTApVX
QC00iQk8ccCK9Aawa2RF6sfqlQOpjyzGAkb9l7mCgjvvnrdVii6qxKnUZ6ffREQB
i6Cnk7aSLlQ=
=arQc
-----END PGP SIGNATURE-----
Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    8 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    11 Files
  • 23
    Apr 23rd
    68 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close