#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 (at) ocert (dot) org [email concealed]> http://www.ocert.org
0x864C9B9E 0A76 074A 02CD E989 CE7F AC3F DA47 578E 864C 9B9E
"Pluralitas non est ponenda sine necessitate"