AMDのCPUにおけるRDRAND命令に不具合、Systemdが影響を受ける 110
そこを吸収するのがOSの仕事では 部門より
Linux向けのサービス・システム管理ソフトウェアSystemdは、いくつかのAMD製プロセッサを搭載するマシン上で適切に動作しないという。その結果、いくつかのLinuxディストリビューションでブートに失敗するなどの不具合が報告されている(Ubuntu systemd packageでのバグ報告、Phoronix、本の虫)。
2018年12月にリリースされたSystemd 240では、x86-64アーキテクチャにおいてカーネルが提供する乱数源である/dev/urandomではなくRDRAND命令を使って乱数を生成するよう変更が行われた。この変更については、システムの起動直後には/dev/urandom経由では十分なランダム性が得られないためと説明されている。
しかし、特定のAMD CPUではRDRAND命令に不具合があり、その影響でRDRAND命令を使用するよう変更されたSystemd v240以降で問題が発生することが2月に確認された。2月の時点で問題となったのはAMDのExcavatorアーキテクチャおよびそれ以前のアーキテクチャを採用するCPUで、これらのCPUではサスペンド/レジューム後にRDRAND命令がランダム値ではなく必ず「-1」(0xFFFFFFFFFFFFFFFF )を返すようになっていたという(systemdのissuesに投稿されたコメント、TechPowerUp)。これによってsystemdが特定の状況下で乱数を得られず、問題が発生していたという。