Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Threat Intelligence

New Speculative Execution Vulnerability Gives CISOs a New Reason to Lose Sleep

The vulnerability, dubbed SWAPGS, is an undetectable threat to data security, similar in some respects to Spectre and Meltdown.

Bogdan Botezatu, director of threat research at BitDefender, leans across the table in a hotel lobby coffee shop to make his point. "When you're a CISO, there is no single of vulnerability you're aware of that doesn't keep you awake at night." The new vulnerability his team of researchers found — the vulnerability they will reveal in a press conference this evening — is one that he says should definitely contribute to CISO insomnia.

The new vulnerability, dubbed SWAPGS by the BitDefender research team, is a speculative execution vulnerability that Botezatu says is similar in some respects to Spectre and Meltdown. "What we have done is to manipulate this instruction called SWAPGS in order to sample information from the realm of the operating system memory into the user space," he explains.

SWAPGS is an instruction that swaps the contents of a particular register with the contents of a specific memory location. The instruction is defined as a privileged instruction that should be available only to system software, such as a hypervisor. One of the things that makes the instruction dangerous when exploited is that it can provide rapid access to certain data structures used by the operating system kernel.

When the instruction is manipulated, Botezatu says, "This can lead to all sorts of trouble like leaking out information about passwords, encryption, keys, tokens, authentication, cookies, and other sensitive information that goes through the processor."

Like many of the other speculative execution exploits that have been found, SWAPGS doesn't allow the attacker to manipulate the data being stored in the memory location — it only allows for the contents of that memory location to be monitored. "You just poke the memory, and run a time-based attack. If it's something interesting, it's fine. If not, you have just lost 20 seconds and you need to go back to square one," Botezatu explains.

As with most of the other speculative execution attacks, Botezatu sees SWAPGS as something that could be a tool for patient nation-state actors, not finance-focused criminals. Criminal actors, he says, can simply launch repeated phishing attacks to get the information that might become available through SWAPGS.

Still, he points out, a speculative execution attack like SWAPGS is dangerous because it bypasses hardware-based protection and is undetectable by normal security packages. Furthermore, while BitDefender followed responsible disclosure and Microsoft has issued a Window patch for the vulnerability, Botezatu says, "We know that in enterprises, patch adoption is not something that happens overnight. That can take anywhere from one to 180 days, if you're lucky."

Related content:


Black Hat USA returns to Las Vegas with hands-on technical Trainings, cutting-edge Briefings, Arsenal open-source tool demonstrations, top-tier security solutions, and service providers in the Business Hall. Click for information on the conference and to register.

Curtis Franklin Jr. is Senior Editor at Dark Reading. In this role he focuses on product and technology coverage for the publication. In addition he works on audio and video programming for Dark Reading and contributes to activities at Interop ITX, Black Hat, INsecurity, and ... View Full Bio

Recommended Reading:

Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
User Rank: Ninja
8/10/2019 | 7:02:41 PM
Response from IBM X-Force Exchange

FreeBSD, when running on a 64bit system with a FreeBSD/amd64 kernel, could allow a local attacker to gain elevated privileges on the system. By causing a General Protection Fault while the kernel is returning from processing an interrupt or system call, a local attacker could cause the incorrect execution of swapgs CPU instruction. An attacker could exploit this vulnerability to execute arbitrary code on the system with kernel level privileges.

The SWAPGS Side-Channel Attack Against Windows
Researchers from Bitdefender have discovered a new side-channel attack they have named SWAPGS. While building on research from the previously discovered and widely publicized Spectre and Meltdown attacks, SWAPGS can reportedly bypass all known mitigations for them. SWAPGS is a variation on the Spectre Variant 1 vulnerability. The attack exploits the speculative execution of a specific instruction on Intel chips, combined with the use of the instruction by Windows operating systems inside a gadget. Exploitation requires an attacker being able to log on to a vulnerable system and could allow the attacker to obtain sensitive information from a system's memory which could include the likes of credentials and encryption keys or pointers and addresses that could potentially be used for privilege escalation attacks. The Intel CPU's affected are from the Ivy Bridge series on. Microsoft released an update to address the vulnerability (CVE-2019-1125) in its July bulletins and has issued further guidance which notes that a microcode update is not required to address the vulnerability

What I get from both findings is that the user has to login and then they have to verify if Speculative Execution is part of the "Ivy Bridge" processor. If it is, then that is where priviledge escalation could take place but there are a few things they must do first is identify if this is an "Ivy Bridge" processor.

  • Write-host "Check if Ivy Bridge Processor"
    Write-Host "-----------------------------"
    $type = (get-wmiobject -class Win32_processor).Name
    Write-Host ""
    Write-Host "Check Ivy Processor Status"
    Write-Host "--------------------------"
    $check = $type.substring(18,8).split("-")[1]
    $proc = $check.substring(0,2)
    $ivy = @("30","31","32","33","34","35","36","37")
    foreach ($i in $ivy) {
        if ($i -eq $proc) {
            Write-Host "Ivy Bridge Processor Identified: " $type
    } Write-Host "Ivy Bridge Processor not identified"

There is a much better way of checking for Ivy Bridge but this is good for right now, Speculative Processor check can be downloaded from the web to help with the identification, but this is a good start.

I am getting rusty in my Powershell programming, need to get back on it.

COVID-19: Latest Security News & Commentary
Dark Reading Staff 7/6/2020
Ripple20 Threatens Increasingly Connected Medical Devices
Kelly Sheridan, Staff Editor, Dark Reading,  6/30/2020
DDoS Attacks Jump 542% from Q4 2019 to Q1 2020
Dark Reading Staff 6/30/2020
Register for Dark Reading Newsletters
White Papers
Current Issue
How Cybersecurity Incident Response Programs Work (and Why Some Don't)
This Tech Digest takes a look at the vital role cybersecurity incident response (IR) plays in managing cyber-risk within organizations. Download the Tech Digest today to find out how well-planned IR programs can detect intrusions, contain breaches, and help an organization restore normal operations.
Flash Poll
The Threat from the Internetand What Your Organization Can Do About It
The Threat from the Internetand What Your Organization Can Do About It
This report describes some of the latest attacks and threats emanating from the Internet, as well as advice and tips on how your organization can mitigate those threats before they affect your business. Download it today!
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
PUBLISHED: 2020-07-06
The parse_report() function in whoopsie.c in Whoopsie through 0.2.69 mishandles memory allocation failures, which allows an attacker to cause a denial of service via a malformed crash file.
PUBLISHED: 2020-07-06
PlayerGeneric.cpp in MilkyTracker through 1.02.00 has a use-after-free in the PlayerGeneric destructor.
PUBLISHED: 2020-07-06
It's possible to inject JavaScript code via the html method.
PUBLISHED: 2020-07-06
It's possible to use <<script>script> in order to go over the filtering regex.
PUBLISHED: 2020-07-06
An issue was discovered in Roundcube Webmail before 1.2.11, 1.3.x before 1.3.14, and 1.4.x before 1.4.7. It allows XSS via a crafted HTML e-mail message, as demonstrated by a JavaScript payload in the xmlns (aka XML namespace) attribute of a HEAD element when an SVG element exists.