← back
CVE-2018-19320highunder attackransomware

CVE-2018-19320

76Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 7.8epss 3.6%
from disclosure to weapon479 days
Published on NVDDec 21
1st PoC+479d
CISA KEV+1403d
exploitation probability
3.6%top 12% of all CVEs
observed exploitation
yesCISA + VulnCheck
6 public exploit(s)
Action required by CISAfederal deadline: 2022-11-14

Apply updates per vendor instructions.

Summary

O driver kernel GDrv (\\.\GIO), distribuído junto com utilitários GIGABYTE/AORUS para controle de placas-mãe e placas de vídeo (fan curves, LEDs, overclock), expõe um IOCTL que funciona como um memcpy arbitrário em ring0. Qualquer processo local sem privilégios pode abrir um handle para o driver e ler/escrever em qualquer endereço de memória do kernel, escalando de usuário comum para SYSTEM/kernel. É CVE de acesso local, mas está no catálogo KEV da CISA por exploração confirmada, o que a torna relevante em cenários de escalada de privilégio pós-comprometimento inicial (malware, ransomware, red team) mais do que como vetor remoto.

Technical detail

A falha é uma exposição de IOCTL com controle de acesso insuficiente (CWE-782). O driver GIO (parte do conjunto GPCIDrv/GDrv usado por GIGABYTE APP Center, AORUS GRAPHICS ENGINE, XTREME GAMING ENGINE e OC GURU II) cria um device object acessível por qualquer processo, inclusive em integridade baixa, sem exigir privilégio administrativo para obter o HANDLE via CreateFile em \\.\GIO.

O IOCTL 0xC3502808 implementa uma função equivalente a memcpy que recebe uma estrutura com três campos — endereço de destino (ULONG64 dest), endereço de origem (ULONG64 src) e tamanho (DWORD size) — e executa a cópia diretamente em memória do kernel, sem qualquer validação de que os endereços pertencem ao espaço do processo chamador ou de que a operação é legítima para as funções que o driver deveria expor (leitura de sensores, controle de fan curve, etc.). O atacante controla os três parâmetros integralmente.

Com essa primitiva de leitura/escrita arbitrária em ring0, é possível sobrescrever estruturas do kernel (tokens de processo, tabelas de callback, ponteiros de função) para executar código arbitrário com privilégios de kernel, ou simplesmente corromper memória crítica e causar BSOD, como demonstrado no PoC público do advisório original. O mesmo conjunto de drivers também expõe IOCTLs de leitura/escrita em portas de I/O (CVE-2018-19322), tratada em CVE separada.

A vulnerabilidade foi descoberta por Diego Juarez e publicada pela SecureAuth (advisório CORE-2018-0007), que reporta ainda três falhas relacionadas nos mesmos drivers (CVE-2018-19321, CVE-2018-19322, CVE-2018-19323).

How it’s exploited

Exploração exige apenas acesso local ao sistema — nenhuma autenticação de rede, nenhuma interação do usuário, e nenhuma configuração especial além de ter o software GIGABYTE/AORUS instalado com o driver GIO carregado (o que ocorre por padrão ao instalar os utilitários listados). Um atacante com qualquer sessão local, mesmo com processo em baixa integridade, abre o handle do driver e envia o IOCTL malicioso para ler ou escrever memória do kernel, obtendo controle total do sistema (execução de código em ring0) a partir de um usuário sem privilégios.

O PoC público divulgado no full-disclosure demonstra a primitiva de escrita arbitrária causando BSOD instantâneo ao escrever em endereço zero — prova de conceito de negação de serviço, mas a mesma primitiva de R/W arbitrário é suficiente, em mãos mais elaboradas, para elevação de privilégio completa (sobrescrita de token de processo é a técnica clássica para esse tipo de driver vulnerável). A CISA lista a CVE no catálogo KEV com confirmação de exploração ativa, mas não indica uso em campanhas de ransomware.

O padrão de uso mais realista não é ataque remoto contra um servidor, e sim escalada de privilégio local por malware ou por um atacante que já obteve execução de código como usuário comum em uma máquina com o driver vulnerável instalado — cenário comum em estações de jogos/gamer com hardware GIGABYTE/AORUS, que é o público-alvo desses utilitários.

Versions

Affected
Segundo o advisório original (SecureAuth/CORE-2018-0007): GIGABYTE APP Center v1.05.21 e anteriores; AORUS GRAPHICS ENGINE v1.33 e anteriores; XTREME GAMING ENGINE v1.25 e anteriores; OC GURU II v2.08. A descrição oficial da CVE cita faixas ligeiramente diferentes para dois produtos: AORUS GRAPHICS ENGINE anterior a 1.57 e XTREME GAMING ENGINE anterior a 1.26. Outros produtos podem estar afetados mas não foram testados pelos pesquisadores.
Fixed in
Não confirmado nas fontes lidas. O advisório original afirma que o fornecedor não forneceu correção ou workaround até a data de publicação (18/12/2018). A descrição da CVE sugere, pelas faixas 'before 1.57' e 'before 1.26', que versões posteriores de AORUS GRAPHICS ENGINE e XTREME GAMING ENGINE corrigiram a falha, mas o conteúdo do advisório de segurança da GIGABYTE não foi verificado para confirmar números de versão corrigida para nenhum dos quatro produtos.

How to protect

O advisório original da SecureAuth (dezembro de 2018) registra explicitamente que o fornecedor não disponibilizou correção nem workaround até a publicação. A página de segurança da GIGABYTE (gigabyte.com/Support/Security/1801) é a referência para status de patch, mas seu conteúdo não foi verificado nesta pesquisa — não é possível confirmar aqui número de versão corrigida para APP Center, AORUS GRAPHICS ENGINE, XTREME GAMING ENGINE ou OC GURU II. A descrição posterior da CVE, ao citar 'before 1.57' e 'before 1.26', sugere que versões mais novas de AORUS GRAPHICS ENGINE e XTREME GAMING ENGINE corrigiram o problema, mas essa faixa diverge da lista original do pesquisador (v1.33 e v1.25), e nenhuma das fontes lidas confirma o mecanismo exato da correção.

Como paliativo real e verificável pelas fontes: remover os utilitários GIGABYTE/AORUS/OC GURU II listados quando não forem estritamente necessários, ou desinstalar/desabilitar o serviço do driver GDrv (arquivo do driver GIO) elimina a superfície de ataque — a maior parte dos usuários não precisa desses drivers para uso normal do hardware. Verificar se o driver ainda está presente mesmo após atualização do software é importante, já que drivers legados costumam permanecer instalados.

Antivírus e EDR não bloqueiam nativamente chamadas DeviceIoControl para drivers assinados e legítimos, então não funcionam como mitigação por si só; regras específicas de controle de aplicação (bloquear carregamento do driver vulnerável por hash/caminho) são a única mitigação técnica de host confiável na ausência de patch confirmado.

How to detect

Não há indicador de rede, já que a exploração é inteiramente local via IOCTL para um device driver. Em host, sinais possíveis incluem: presença do driver GIO/GDrv (ou GPCIDrv) carregado no sistema; processos não privilegiados abrindo handle para \\.\GIO; chamadas DeviceIoControl com o código de controle 0xC3502808 originadas de processos que não são os utilitários GIGABYTE legítimos. Nenhuma dessas checagens é feita por logging padrão do Windows — requer monitoramento via ETW, driver de segurança com hooks de I/O, ou EDR com visibilidade de chamadas ao driver; na ausência disso, não há sinal confiável de tentativa de exploração.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
The GDrv low-level driver in GIGABYTE APP Center v1.05.21 and earlier, AORUS GRAPHICS ENGINE before 1.57, XTREME GAMING ENGINE before 1.26, and OC GURU II v2.08 exposes ring0 memcpy-like functionality that could allow a local attacker to take complete control of the affected system.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.