A flaw was found in microprocessor execution engine sharing on SMT (e.g. Hyper-Threading) architectures. An attacker running a malicious process on the same core of the processor as the victim process, can extract certain secret information.
The reporter is able to steal an OpenSSL (<= 1.1.0h) P-384 private key from a TLS server using this new side-channel vector. It is a local attack in the sense that the malicious process must be running on the same physical core as the victim (an openSSL-powered TLS server in this case). But in general any application which branches on a secret value may be affected.
Created compat-openssl10 tracking bugs for this issue:
Affects: fedora-all [bug 1645698]
Created mingw-openssl tracking bugs for this issue:
Affects: epel-7 [bug 1645697]
Affects: fedora-all [bug 1645696]
Note about OpenSSL:
Though the reporters demonstrate this flaw against OpenSSL, any application which has secret dependent control flaw will be affected. From an OpenSSL point of view, this particular issue has been fixed in their code via multiple commits:
For the 1.1.0 branch, at
everything starting from aab7c770353b1dc4ba045938c8fb446dd1c4531e
OpenSSL released 1.1.1 and 1.1.0i. They contain the relevant patches.
Name: Billy Bob Brumley, Cesar Pereida Garcia, Sohaib ul Hassan, Nicola Tuveri (Tampere University of Technology; Finland), Alejandro Cabrera Aldaya (Universidad Tecnologica de la Habana CUJAE; Cuba)
At this time Red Hat Engineering is working on patches to address this issue. Until fixes are available, users are advised to review the guidance supplied in the L1 Terminal Fault vulnerability article: https://access.redhat.com/security/vulnerabilities/L1TF and decide what their exposure across shared CPU threads are and act accordingly.
This is a timing side-channel flaw on processors which implement SMT/Hyper-Threading architectures. It can result in leakage of secret data in applications such as OpenSSL that has secret dependent control flow at any granularity level. In order to exploit this flaw, the attacker needs to run a malicious process on the same core of the processor as the victim process.
openssl-1.0.2 fix is:
OpenShift Online disables Hyper-Threading, see https://blog.openshift.com/what-openshift-online-customers-should-know-about-l1tf-openshift-sre-security/