Perl: Format string errors can lead to code execution
1.
Gentoo Linux Security Advisory
Version Information
| Advisory Reference |
GLSA 200512-01 / Perl |
| Release Date |
December 07, 2005 |
| Latest Revision |
December 07, 2005: 01 |
| Impact |
high |
| Exploitable |
remote and local |
| Package |
Vulnerable versions |
Unaffected versions |
Architecture(s) |
| dev-lang/perl |
<
5.8.7-r3 |
>=
5.8.7-r3,
revision >=
5.8.6-r8 |
All supported architectures
|
Related bugreports:
#114113
Synopsis
A fix is available for Perl to mitigate the effects of format string
programming errors, that could otherwise be exploited to execute arbitrary
code.
2.
Impact Information
Background
Perl is a stable, cross-platform programming language created by
Larry Wall. It contains printf functions that allows construction of
strings from format specifiers and parameters, like the C printf
functions. A well-known class of vulnerabilities, called format string
errors, result of the improper use of the printf functions in C. Perl
in itself is vulnerable to a limited form of format string errors
through its own sprintf function, especially through wrapper functions
that call sprintf (for example the syslog function) and by taking
advantage of Perl powerful string expansion features rather than using
format string specifiers.
Description
Jack Louis discovered a new way to exploit format string errors in
Perl that could lead to the execution of arbitrary code. This is
perfomed by causing an integer wrap overflow in the efix variable
inside the function Perl_sv_vcatpvfn. The proposed fix closes that
specific exploitation vector to mitigate the risk of format string
programming errors in Perl. This fix does not remove the need to fix
such errors in Perl code.
Impact
Perl applications making improper use of printf functions (or
derived functions) using untrusted data may be vulnerable to the
already-known forms of Perl format string exploits and also to the
execution of arbitrary code.
3.
Resolution Information
Workaround
Fix all misbehaving Perl applications so that they make proper use
of the printf and derived Perl functions.
Resolution
All Perl users should upgrade to the latest version:
Code Listing 3.1: Resolution |
# emerge --sync
# emerge --ask --oneshot --verbose dev-lang/perl
|
4.
References
|