[oCERT-2009-004] AjaxTerm session id collision

2009-05-12T00:00:00
ID SECURITYVULNS:DOC:21805
Type securityvulns
Reporter Securityvulns
Modified 2009-05-12T00:00:00

Description

2009-004 AjaxTerm session id collision

Description:

AjaxTerm, an open source web based terminal, uses a form of random session id generation which can lead to remote session hijacking.

The ajaxterm.js script allocates session ids on the client side using the following method:

var sid=""+Math.round(Math.random()*1000000000);

The javascript random function used in combination with round does not provide sufficient entropy for a unique session id, as the session id is the only unique identifier for the user session it is possible for an attacker to brute force the space of possible id values and attach an existing connection.

This vulnerability also allows Denial Of Service attacks as it is possible to exhaust the available session ids when performing a brute force attack and, depending on the configured AjaxTerm child command, system resources.

Affected version:

AjaxTerm <= 0.10

Fixed version:

Unfortunately oCERT has been unable to get feedback from AjaxTerm maintainers and the package seems unmaintained, it's therefore suggested to avoid AjaxTerm usage on production or any environment where strong security is needed.

Credit: Initial vulnerability report provided by Michael Greb <mgreb [at] linode [dot] com>.

CVE: N/A

Timeline:

2009-03-12: vulnerability report received 2009-03-12: contacted AjaxTerm maintainer 2009-04-18: oCERT contacts various vendors security team seeking for developers familiar with AjaxTerm 2009-04-28: due to lack of feedback oCERT asks reporter to disclose the issue 2009-04-29: reporter agrees to disclosure 2009-05-11: advisory release

References:

Permalink: http://www.ocert.org/advisories/ocert-2009-004.html

-- Andrea Barisani | Founder & Project Coordinator oCERT | Open Source Computer Emergency Response Team

<lcars@ocert.org> http://www.ocert.org 0x864C9B9E 0A76 074A 02CD E989 CE7F AC3F DA47 578E 864C 9B9E "Pluralitas non est ponenda sine necessitate"