From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (193.142.43.55:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 07 Jun 2020 21:06:42 -0000 Received: from p5de0bf0b.dip0.t-ipconnect.de ([93.224.191.11] helo=nanos.tec.linutronix.de) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1ji2V7-0006d8-9z for speck@linutronix.de; Sun, 07 Jun 2020 23:06:41 +0200 From: Thomas Gleixner Subject: [GIT pull] Slow Randomizing Boosts Denial of Service Date: Sun, 07 Jun 2020 23:06:34 +0200 Message-ID: <875zc2bn6t.fsf@nanos.tec.linutronix.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" To: speck@linutronix.de List-ID: --=-=-= Content-Type: text/plain Subject: [GIT pull] x86/srbds: Special Register Buffer Data Sampling (SRBDS) Linus, please pull the x86/srbds branch from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/srbds up to: 3798cc4d106e ("x86/speculation: Add Ivy Bridge to affected list") The 9th episode of the dime novel "The performance killer" with the subtitle "Slow Randomizing Boosts Denial of Service". SRBDS is an MDS-like speculative side channel that can leak bits from the random number generator (RNG) across cores and threads. New microcode serializes the processor access during the execution of RDRAND and RDSEED. This ensures that the shared buffer is overwritten before it is released for reuse. The mitigation support comes with the usual pile of unpleasent ingredients: - command line options - sysfs file - microcode checks - a list of vulnerable CPUs Thanks, tglx --- P.S. : The virtual tip branch is attached as bundle, based on 5.7-rc2 and still merges fine into mainline. P.P.S: The backports will come in a separate mail. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=srbds-master Content-Transfer-Encoding: base64 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 QIS5Bo5UADORf/o= --=-=-=--