<<< Date Index >>>     <<< Thread Index >>>

[ GLSA 200512-01 ] Perl: Format string errors can lead to code execution



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Gentoo Linux Security Advisory                           GLSA 200512-01
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                            http://security.gentoo.org/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  Severity: High
     Title: Perl: Format string errors can lead to code execution
      Date: December 07, 2005
      Bugs: #114113
        ID: 200512-01

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

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.

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.

Affected packages
=================

    -------------------------------------------------------------------
     Package        /  Vulnerable  /                        Unaffected
    -------------------------------------------------------------------
  1  dev-lang/perl     < 5.8.7-r3                          >= 5.8.7-r3
                                                          *>= 5.8.6-r8

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.

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:

    # emerge --sync
    # emerge --ask --oneshot --verbose dev-lang/perl

References
==========

  [ 1 ] CVE-2005-3962
        http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3962
  [ 2 ] Dyad Security Advisory
        http://www.dyadsecurity.com/perl-0002.html
  [ 3 ] Research on format string errors in Perl
        http://www.securityfocus.com/archive/1/418460/30/30

Availability
============

This GLSA and any updates to it are available for viewing at
the Gentoo Security Website:

  http://security.gentoo.org/glsa/glsa-200512-01.xml

Concerns?
=========

Security is a primary focus of Gentoo Linux and ensuring the
confidentiality and security of our users machines is of utmost
importance to us. Any security concerns should be addressed to
security@xxxxxxxxxx or alternatively, you may file a bug at
http://bugs.gentoo.org.

License
=======

Copyright 2005 Gentoo Foundation, Inc; referenced text
belongs to its owner(s).

The contents of this document are licensed under the
Creative Commons - Attribution / Share Alike license.

http://creativecommons.org/licenses/by-sa/2.0

Attachment: pgp7sD2oFJcCG.pgp
Description: PGP signature