Computer Security
[EN] securityvulns.ru
no-pyccku



Related information

  Asterisk multiple security vulnerabilities

  [Full-disclosure] [MU-200803-01] Multiple buffer overflows in Asterisk

  AST-2008-004: Format String Vulnerability in Logger and Manager

  AST-2008-002: Two buffer overflows in RTP Codec Payload Handling

  AST-2008-003: Unauthenticated calls allowed from SIP channel driver

From:ASTERISK
Date:19.03.2008
Subject:AST-2008-005: HTTP Manager ID is predictable

              Asterisk Project Security Advisory - AST-2008-005

  +------------------------------------------------------------------------+
  |       Product        | Asterisk                                        |
  |----------------------+-------------------------------------------------|
  |       Summary        | HTTP Manager ID is predictable                  |
  |----------------------+-------------------------------------------------|
  |  Nature of Advisory  | An attacker could hijack a manager session      |
  |----------------------+-------------------------------------------------|
  |    Susceptibility    | All users using the HTTP manager port           |
  |----------------------+-------------------------------------------------|
  |       Severity       | Minor                                           |
  |----------------------+-------------------------------------------------|
  |    Exploits Known    | No                                              |
  |----------------------+-------------------------------------------------|
  |     Reported On      | February 25, 2008                               |
  |----------------------+-------------------------------------------------|
  |     Reported By      | Dino A. Dai Zovi < ddz AT theta44 DOT org >     |
  |----------------------+-------------------------------------------------|
  |      Posted On       | March 18, 2008                                  |
  |----------------------+-------------------------------------------------|
  |   Last Updated On    | March 18, 2008                                  |
  |----------------------+-------------------------------------------------|
  |   Advisory Contact   | Tilghman Lesher < tlesher AT digium DOT com >   |
  |----------------------+-------------------------------------------------|
  |       CVE Name       | CVE-2008-1390                                   |
  +------------------------------------------------------------------------+

  +------------------------------------------------------------------------+
  | Description | Due to the way that manager IDs are calculated, this     |
  |             | 32-bit integer is likely to have a much larger than      |
  |             | average number of 1s, which greatly reduces the number   |
  |             | of guesses an attacker would have to make to             |
  |             | successfully predict the manager ID, which is used       |
  |             | across multiple HTTP queries to hold manager state.      |
  |             |                                                          |
  |             | "The issue is the generation of session ids in the       |
  |             | AsteriskGUI HTTP server.                                 |
  |             |                                                          |
  |             | When using Glibc, the implementation and state of rand() |
  |             | and random() is                                          |
  |             |                                                          |
  |             | shared. Asterisk uses random() to issue MD5 digest       |
  |             | authentication                                           |
  |             |                                                          |
  |             | challenges and rand() bitwise-ORed with a malloc'd       |
  |             | pointer to generate                                      |
  |             |                                                          |
  |             | AsteriskGUI session identifiers. An attacker can         |
  |             | synchronize with                                         |
  |             |                                                          |
  |             | random() by retrieving 32 successive challenges and      |
  |             | predict all subsequent                                   |
  |             |                                                          |
  |             | output of calls to random() and rand(). Because a        |
  |             | pointer returned by                                      |
  |             |                                                          |
  |             | malloc has at best 21 bits of entropy, the attacker will |
  |             | on average only                                          |
  |             |                                                          |
  |             | need to guess 1448 session identifiers in order to steal |
  |             | an established                                           |
  |             |                                                          |
  |             | session.                                                 |
  |             |                                                          |
  |             | "The crux of the problem is that under Glibc, the        |
  |             | implementation of rand()                                 |
  |             |                                                          |
  |             | and random() is shared. rand() is just an alias to       |
  |             | random(). This means                                     |
  |             |                                                          |
  |             | that they all come from the same randomizer with the     |
  |             | same state.                                              |
  |             |                                                          |
  |             | "A remote attacker can synchronize with all subsequent   |
  |             | output of a remote                                       |
  |             |                                                          |
  |             | system's random() state by just observing or retrieving  |
  |             | 32 successive                                            |
  |             |                                                          |
  |             | outputs. They can easily do this by generating 32 MD5    |
  |             | digest                                                   |
  |             |                                                          |
  |             | authentication challenges. At this point, they will be   |
  |             | able to predict                                          |
  |             |                                                          |
  |             | all subsequent output of random() and rand().            |
  |             |                                                          |
  |             | "The memory address returned by calloc() is also not     |
  |             | sufficiently random.                                     |
  |             |                                                          |
  |             | In practice, it will be in low memory, immediately       |
  |             | following the executable.                                |
  |             |                                                          |
  |             | In addition, the buffer returned will be 8-byte aligned. |
  |             | This means that                                          |
  |             |                                                          |
  |             | the high order 8 bits and low order 3 bits will always   |
  |             | be zero. Finally,                                        |
  |             |                                                          |
  |             | this value is bitwise ORed with the output of random(),  |
  |             | so any bits that                                         |
  |             |                                                          |
  |             | are set will be preserved.                               |
  |             |                                                          |
  |             | "An attacker will only have to guess 2^N session ids,    |
  |             | where N is the number                                    |
  |             |                                                          |
  |             | of zeros in the number return by random() between bit    |
  |             | positions 3 and 24.                                      |
  |             |                                                          |
  |             | On average, this will be 1448 guesses.                   |
  |             |                                                          |
  |             | "However, an attacker can do better than this by         |
  |             | consuming challenges until                               |
  |             |                                                          |
  |             | the following number output by random() has many 1's in  |
  |             | those significant                                        |
  |             |                                                          |
  |             | bit positions."                                          |
  +------------------------------------------------------------------------+

  +------------------------------------------------------------------------+
  | Resolution | To mitigate this attack, the two values are now XORed     |
  |            | together. This will increase the entropy to approximately |
  |            | 2^21, which is far more difficult to predict, especially  |
  |            | given that the random number generator is used for other  |
  |            | purposes in Asterisk, not just manager HTTP session ID    |
  |            | generation.                                               |
  |            |                                                           |
  |            | Upgrade to SVN revision 104704 or greater, or upgrade to  |
  |            | one of the releases below. That the random number         |
  |            | generator is used for other things makes this attack      |
  |            | extremely difficult and unlikely, so we will not produce  |
  |            | a separate release for this security advisory.            |
  +------------------------------------------------------------------------+

  +------------------------------------------------------------------------+
  |                           Affected Versions                            |
  |------------------------------------------------------------------------|
  |          Product           |   Release   |                             |
  |                            |   Series    |                             |
  |----------------------------+-------------+-----------------------------|
  |    Asterisk Open Source    |    1.0.x    | Not affected                |
  |----------------------------+-------------+-----------------------------|
  |    Asterisk Open Source    |    1.2.x    | Not affected                |
  |----------------------------+-------------+-----------------------------|
  |    Asterisk Open Source    |    1.4.x    | All versions prior to       |
  |                            |             | 1.4.19-rc3                  |
  |----------------------------+-------------+-----------------------------|
  |    Asterisk Open Source    |    1.6.x    | All versions prior to       |
  |                            |             | 1.6.0-beta6                 |
  |----------------------------+-------------+-----------------------------|
  | Asterisk Business Edition  |    A.x.x    | Not affected                |
  |----------------------------+-------------+-----------------------------|
  | Asterisk Business Edition  |    B.x.x    | Not affected                |
  |----------------------------+-------------+-----------------------------|
  | Asterisk Business Edition  |    C.x.x    | All versions prior to C.1.6 |
  |----------------------------+-------------+-----------------------------|
  |        AsteriskNOW         | pre-release | All versions prior to 1.0.2 |
  |----------------------------+-------------+-----------------------------|
  |     Asterisk Appliance     |     SVN     | All revisions prior to      |
  |       Developer Kit        |             | 104704                      |
  |----------------------------+-------------+-----------------------------|
  | s800i (Asterisk Appliance) |    1.0.x    | All versions prior to       |
  |                            |             | 1.1.0.2                     |
  +------------------------------------------------------------------------+

  +------------------------------------------------------------------------+
  |                              Corrected In                              |
  |------------------------------------------------------------------------|
  |               Product                |             Release             |
  |--------------------------------------+---------------------------------|
  |         Asterisk Open Source         |     1.4.19-rc3, 1.6.0-beta6     |
  |--------------------------------------+---------------------------------|
  |      Asterisk Business Edition       |              C.1.6              |
  |--------------------------------------+---------------------------------|
  |             AsteriskNOW              |              1.0.2              |
  |--------------------------------------+---------------------------------|
  |   Asterisk Appliance Developer Kit   |  Asterisk 1.4 revision 104704   |
  |--------------------------------------+---------------------------------|
  |      s800i (Asterisk Appliance)      |             1.1.0.2             |
  +------------------------------------------------------------------------+

  +------------------------------------------------------------------------+
  |        Links        |                                                  |
  +------------------------------------------------------------------------+

  +------------------------------------------------------------------------+
  | Asterisk Project Security Advisories are posted at                     |
  | http://www.asterisk.org/security                                       |
  |                                                                        |
  | This document may be superseded by later versions; if so, the latest   |
  | version will be posted at                                              |
  | http://downloads.digium.com/pub/security/AST-2008-005.pdf and          |
  | http://downloads.digium.com/pub/security/AST-2008-005.html             |
  +------------------------------------------------------------------------+

  +------------------------------------------------------------------------+
  |                            Revision History                            |
  |------------------------------------------------------------------------|
  |      Date       |         Editor         |       Revisions Made        |
  |-----------------+------------------------+-----------------------------|
  | 2008-03-18      | Tilghman Lesher        | Initial release             |
  +------------------------------------------------------------------------+

              Asterisk Project Security Advisory - AST-2008-005
             Copyright (c) 2008 Digium, Inc. All Rights Reserved.
 Permission is hereby granted to distribute and publish this advisory in its
                          original, unaltered form.

About | Terms of use | Privacy Policy
© SecurityVulns, 3APA3A, Vladimir Dubrovin
 



Рейтинг@Mail.ru