Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [day] [month] [year] [list]
Date: Mon, 10 Sep 2012 15:43:04 +0200
From: Timo Warns <Warns@...-Sense.DE>
Subject: [PRE-SA-2012-06] FreeRADIUS: Stack Overflow in TLS-based EAP

The issue described below has been reported to the distros list with a timeline
as follows:

    - notification of
    - confirmation by Alan DeKok (FreeRADIUS project leader)
      with agreement on embargo period until 2012-09-10
    - notification of

    - release of FreeRADIUS 2.2.0
    - public disclosure

PRE-CERT Security Advisory

* Advisory: PRE-SA-2012-06
* Released on: 10 September 2012
* Affected product: FreeRADIUS 2.1.10 - 2.1.12
* Impact: remote code execution
* Origin: specially crafted client certificates
* CVSS Base Score: 10
    Impact Subscore: 10
    Exploitability Subscore: 10
  CVSS Vector: (AV:N/AC:L/Au:N/C:C/I:C/A:C)
* Credit: Timo Warns (PRESENSE Technologies GmbH)
* CVE Identifier: CVE-2012-3547


A stack overflow vulnerability has been identified in FreeRADIUS that allows to
remotely execute arbitrary code via specially crafted client certificates
(before authentication). The vulnerability affects setups using TLS-based EAP
methods (including EAP-TLS, EAP-TTLS, and PEAP).

FreeRADIUS defines a callback function cbtls_verify() for certificate
verification. The function has a local buf array with a size of 64
bytes. It copies the validity timestamp "not after" of a client
certificate to the buf array:

    asn_time = X509_get_notAfter(client_cert);
    if ((lookup <= 1) && asn_time && (asn_time->length < MAX_STRING_LEN)) {
        memcpy(buf, (char*) asn_time->data, asn_time->length);
        buf[asn_time->length] = '\0';

The MAX_STRING_LEN constant is defined to be 254. If asn_time->length is
greater than 64 bytes, but less than 254 bytes, buf overflows via the memcpy.

Depending on the stack layout chosen by the compiler, the vulnerability allows
to overflow the return address on the stack, which can be exploited for code


The issue has been fixed in FreeRADIUS 2.2.0. Updates should be installed as
soon as possible.


When further information becomes available, this advisory will be
updated. The most recent version of this advisory is available at:


PRE-CERT can be reached under For PGP key
information, refer to

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Powered by Openwall GNU/*/Linux - Powered by OpenVZ