HTTP Manager ID is predictable

2008.03.25
Risk: High
Local: No
Remote: Yes
CWE: CWE-255


CVSS Base Score: 9.3/10
Impact Subscore: 10/10
Exploitability Subscore: 8.6/10
Exploit range: Remote
Attack complexity: Medium
Authentication: No required
Confidentiality impact: Complete
Integrity impact: Complete
Availability impact: Complete

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.


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top