Já é publico PoC para vulnerabilidade de elevação de privilégio no Windows CVE-2024-26230
Pesquisador de segurança publicou os detalhes técnicos e um exploit de prova de conceito (PoC) para uma vulnerabilidade de elevação de privilégio corrigida no serviço de telefonia do Windows
Essa falha, que tem uma pontuação CVSS de 7,8, apresenta um risco significativo, permitindo que invasores obtenham privilégios de SISTEMA em sistemas afetados por meio de uma vulnerabilidade de uso após liberação no serviço de telefonia.
O Windows Telephony Service é um serviço baseado em RPC que, embora não seja executado por padrão, pode ser ativado invocando a API StartServiceW com privilégios de usuário padrão. A vulnerabilidade surge na maneira como esse serviço manipula objetos com o valor mágico “GOLD”, um identificador exclusivo usado na tabela de identificadores globais do serviço.
void __fastcall GetUIDllName(__int64 a1, int *a2, unsigned int a3, __int64 a4, _DWORD *a5)
{
[...]
if ( object )
{
*object = 0x474F4C44; // =====> [a]
v38 = *(_QWORD *)(contexthandle + 184);
*((_QWORD *)object + 10) = v38;
if ( v38 )
*(_QWORD *)(v38 + 72) = object;
*(_QWORD *)(contexthandle + 184) = object; // =======> [b]
a2[8] = object[22];
}
[...]
}
A interface do serviço consiste em três funções principais:
- ClientAttach : Cria um identificador de contexto.
- ClientRequest : processa solicitações usando o identificador de contexto especificado.
- ClientDetach : libera o identificador de contexto.
A vulnerabilidade está enraizada no método ClientRequest , onde uma variável global chamada “gaFuncs” roteia solicitações para funções de despacho específicas. Essas funções processam vários objetos, que são criados e inseridos na tabela de handles global pela função NewObject .
No entanto, ao manipular objetos com o valor mágico “GOLD”, ocorre um descuido crítico. O serviço de telefonia falha ao verificar se o objeto “GOLD” é de propriedade do identificador de contexto antes de liberá-lo. Essa falha pode ser explorada criando dois identificadores de contexto: um para manter o objeto “GOLD” e outro para invocar a função de despacho FreeDiagInstance , que libera o objeto “GOLD”. Como resultado, o identificador de contexto original retém um ponteiro pendente para o objeto liberado, levando a uma vulnerabilidade de uso após liberação quando o serviço tenta referenciá-lo posteriormente.
O exploit para essa vulnerabilidade foi desenvolvido por k0shl da Cyber Kunlun, que empregou uma nova técnica para contornar a mitigação do eXtended Flow Guard (XFG) no Windows 11 — um recurso de segurança projetado para evitar tais ataques. Após a análise detalhada de k0shl, outro pesquisador, Wa1nut4, publicou um código de exploit de prova de conceito (PoC) para CVE-2024-26230 no GitHub, tornando a falha amplamente acessível aos invasores.
O exploit funciona manipulando o buffer de entrada do cliente RPC, que pode ser totalmente controlado pelo invasor. Esse controle, em última análise, leva ao travamento do serviço de telefonia quando ele tenta referenciar uma função virtual por meio do ponteiro pendurado.
A exploração bem-sucedida dessa vulnerabilidade tem consequências severas, concedendo aos invasores controle total sobre o sistema comprometido. Com privilégios SYSTEM, atores maliciosos podem executar código arbitrário, instalar malware, exfiltrar dados sensíveis e estabelecer backdoors persistentes.
A Microsoft abordou essa vulnerabilidade em suas atualizações de segurança de abril de 2024. Os administradores de sistema e usuários são fortemente incentivados a aplicar essas atualizações imediatamente para proteger seus sistemas.