Kurt Seifried of Red Hat reports:
The xguest rpm creates a user and sets a password using the following rpm postinstall script:
head -1 /dev/urandom | passwd xguest --stdin > /dev/null
this can lead to insufficient randomness being used (in testing with head -n 1 /dev/urandom | wc -c it took an average of 10 attempts to get only 2 characters out). This password is required due to GDM requiring a password for automated passwordless logins at the console.
A better method would be to use a tool such as openssl to get a guaranteed amount of entropy to create the password.
Additionally this password needs to be unique per instance or install but this value is created at install-time and not during the first run. All container and image instances created would share the same password as this password is set at rpm install time, and each instance should recieve a unique password.
This bug is being file because Product Security considers "first run problems" to be bugs with the source package and with the container or image only in the aggregate. This view is in collaboration with upstream Fedora. See: https://fedorahosted.org/fpc/ticket/506
The recommended resolution for services is to follow the "First-time Service Setup" pattern (see: https://fedoraproject.org/wiki/Packaging:Initial_Service_Setup ). Other packages may should use a runtime check and generation or similar procedure.
Name: Kurt Seifried (Red Hat)
Created xguest tracking bugs for this issue:
Affects: fedora-all [bug 1346017]
Probably head -c 24 (or some number) would fix it. The issue is that if the random string contains 0x0A, then head sees it as a new line and stops collecting random bytes.
xguest-1.0.10-34.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.
xguest-1.0.10-33.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.
(In reply to Steve Grubb from comment #3)
> Probably head -c 24 (or some number) would fix it. The issue is that if the
> random string contains 0x0A, then head sees it as a new line and stops
> collecting random bytes.
dd is much safer as you get a definite quantity of entropy.