It was discovered that libXdmcp used weak entropy to generate session keys. On a multi-user system using xdmcp, a local attacker could potentially use information available from the process list to brute force the key, allowing them to hijack other users' sessions.
The following flaw was reported in libXdmcp:
Summary and Impact
XDM uses weak entropy to generate the session keys on non-BSD systems:
XdmcpGenerateKey (XdmAuthKeyPtr key)
long lowbits, highbits;
srandom ((int)getpid() ^ time((Time_t *)0));
lowbits = random ();
highbits = random ();
getbits (lowbits, key->data);
getbits (highbits, key->data + 4);
On multi user systems it might possible to check the PID of the process and how long it is running to get an estimate of these values, which could allow an attacker to attach to the session of a different user.
Name: Eric Sesterhenn (X41 D-Sec GmbH)
Adjusted CVSS to include PR:L (attacker must have local shell privileges).
This could be quite a serious attack against xdmcp-based terminal servers in the absence of process namespaces, but this is no longer a common setup.
It appears that Fedora can enable arc4random in libXdmcp by adding `BuildRequires: libbsd-devel`.
Created libXdmcp tracking bugs for this issue:
Affects: fedora-all [bug 1427716]
Red Hat Product Security has rated this issue as having Moderate security impact. This issue is not currently planned to be addressed in future updates. For additional information, refer to the Issue Severity Classification: https://access.redhat.com/security/updates/classification/.
Original reporter's advisory:
This issue has been addressed in the following products:
Red Hat Enterprise Linux 7
Via RHSA-2017:1865 https://access.redhat.com/errata/RHSA-2017:1865