A flaw was found in the way ansi cprng implementation in the Linux kernel processed non-block size aligned requests. If several small requests are made that are less than the instances block size, the remainder for loop code doesn't increment rand_data_valid in the last iteration, meaning that the last bytes in the rand_data buffer gets reused on the subsequent smaller-than-a-block request for random data. Acknowledgements: Red Hat would like to thank Stephan Mueller for reporting this issue.
Proposed upstream patch: http://marc.info/?l=linux-crypto-vger&m=137942122902845&w=2
Statement: This issue affects the versions of Linux kernel as shipped with Red Hat Enterprise Linux 5, 6 and Red Hat Enterprise MRG 2. Future kernel updates for Red Hat Enterprise Linux 5, 6 and Red Hat Enterprise MRG 2 may address this issue.
Created kernel tracking bugs for this issue: Affects: fedora-all [bug 1009136]
kernel-3.11.2-201.fc19 has been pushed to the Fedora 19 stable repository. If problems still persist, please make note of it in this bug report.
kernel-3.11.2-301.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.
kernel-3.10.13-101.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report.
This issue has been addressed in following products: Red Hat Enterprise Linux 5 Via RHSA-2013:1449 https://rhn.redhat.com/errata/RHSA-2013-1449.html
This issue has been addressed in following products: MRG for RHEL-6 v.2 Via RHSA-2013:1490 https://rhn.redhat.com/errata/RHSA-2013-1490.html
This issue has been addressed in following products: Red Hat Enterprise Linux 6 Via RHSA-2013:1645 https://rhn.redhat.com/errata/RHSA-2013-1645.html
714b33d15130cbb5ab426456d4e3de842d6c5b8a upstream