<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE glsa SYSTEM "http://www.gentoo.org/dtd/glsa.dtd">
<glsa id="200512-01">
  <title>Perl: Format string errors can lead to code execution</title>
  <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.
  </synopsis>
  <product type="ebuild">Perl</product>
  <announced>2005-12-07</announced>
  <revised count="01">2005-12-07</revised>
  <bug>114113</bug>
  <access>remote and local</access>
  <affected>
    <package name="dev-lang/perl" auto="yes" arch="*">
      <unaffected range="ge">5.8.7-r3</unaffected>
      <unaffected range="rge">5.8.6-r8</unaffected>
      <vulnerable range="lt">5.8.7-r3</vulnerable>
    </package>
  </affected>
  <background>
    <p>
    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.
    </p>
  </background>
  <description>
    <p>
    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.
    </p>
  </description>
  <impact type="high">
    <p>
    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.
    </p>
  </impact>
  <workaround>
    <p>
    Fix all misbehaving Perl applications so that they make proper use
    of the printf and derived Perl functions.
    </p>
  </workaround>
  <resolution>
    <p>
    All Perl users should upgrade to the latest version:
    </p>
    <code>
    # emerge --sync
    # emerge --ask --oneshot --verbose dev-lang/perl</code>
  </resolution>
  <references>
    <uri link="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-3962">CVE-2005-3962</uri>
    <uri link="https://www.dyadsecurity.com/perl-0002.html">Dyad Security Advisory</uri>
    <uri link="http://www.securityfocus.com/archive/1/418460/30/30">Research on format string errors in Perl</uri>
  </references>
  <metadata tag="requester" timestamp="2005-12-01T12:36:20Z">
    koon
  </metadata>
  <metadata tag="submitter" timestamp="2005-12-01T16:05:52Z">
    koon
  </metadata>
  <metadata tag="bugReady" timestamp="2005-12-07T10:06:40Z">
    koon
  </metadata>
</glsa>
