Profiling Across FreeBSD Exec Calls
Privacy and Legal Notice
INFORMATION BULLETIN
J-067: Profiling Across FreeBSD Exec Calls
September 8, 1999 23:00 GMT
PROBLEM: FreeBSD's profiling mechanism allows an attacker to start
execution at any arbitrary location in the program being
profiled.
PLATFORM: All systems running FreeBSD 3.2 (and earlier) or
FreeBSD-Current before August 11, 1999.
DAMAGE: An attacker could theoretically gain root access from a
carefully crafted attack.
SOLUTION: Apply the available patches. There are no immediate or
temporary workarounds.
VULNERABILITY The risk is MEDIUM. It is possible to gain root access but
ASSESSMENT: there are no known attacks at this time.
[ Start FreeBSD Advisory ]
=============================================================================
FreeBSD-SA-99:02 Security Advisory
FreeBSD, Inc.
Topic: Profiling Across Exec Calls
Category: core
Module: kernel
Announced: 1999-09-04
Affects: FreeBSD 3.2 (and earlier)
FreeBSD-current before the correction date.
Corrected: FreeBSD-3.3 RELEASE
FreeBSD-current as of August 11, 1999
FreeBSD-3.2-stable as of August 22, 1999
FreeBSD only: No
Patches: ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-99:02/
I. Background
FreeBSD provides a mechanism to profile a running executable to aid in
performance tuning. This can be accomplished via a kernel mechanism
to statistically sample the program counter of the program under
profile.
II. Problem Description
A flaw exists in the implementation which allows an attacker to cause
arbitrary locations in program executed by the attacker.
III. Impact
No attacks against using this vulnerability this are known at this
time. An attacker could theoretically gain root access from a
carefully crafted attack.
IV. Workaround
Since profiling is done in the kernel via the profil(2) system call,
one must patch the kernel so no workaround is possible.
V. Solution
Apply the following patch. It will apply to both FreeBSD-current before
the resolution date and to 3.2-stable before the resolution date.
Index: kern_exec.c
===================================================================
RCS file: /home/imp/FreeBSD/CVS/src/sys/kern/kern_exec.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- kern_exec.c 1999/04/27 11:15:55 1.99
+++ kern_exec.c 1999/08/11 20:35:38 1.100
@@ -228,6 +228,9 @@
fdfree(p);
p->p_fd = tmp;
}
+
+ /* Stop profiling */
+ stopprofclock(p);
/* close files on exec */
fdcloseexec(p);
=============================================================================
FreeBSD, Inc.
Web Site: http://www.freebsd.org/
Confidential contacts: security-officer@freebsd.org
Security notifications: security-notifications@freebsd.org
Security public discussion: freebsd-security@freebsd.org
PGP Key: ftp://ftp.freebsd.org/pub/FreeBSD/CERT/public_key.asc
Notice: Any patches in this document may not apply cleanly due to
modifications caused by digital signature or mailer software.
Please reference the URL listed at the top of this document
for original copies of all patches if necessary.
=============================================================================
[ End FreeBSD Advisory ]
CIAC wishes to acknowledge the contributions of FreeBSD, Inc. for the
information contained in this bulletin.
DOE-CIRC can be contacted at:
Voice: +1 866-941-2472 (7 x 24)
E-mail: doecirc@doecirc.energy.gov
World Wide Web: http://www.doecirc.energy.gov/