PT-2021-17199 · Xcb · Xcb
Publicado
2021-02-04
·
Atualizado
2021-08-25
·
CVE-2021-26958
CVSS v3.1
8.8
Alta
| Vetor | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
**Nome do software vulnerável e versões afetadas:
Crate xcb até 04/02/2021 para Rust
Descrição:
O problema diz respeito a uma violação de segurança no crate xcb, que pode levar à conversão para um tipo incorreto após o uso de
std::mem::transmute para retornar uma referência a um tipo arbitrário. Especificamente, as funções xcb::xproto::GetPropertyReply::value() e xcb::xproto::GetAtomNameReply::name() são afetadas. A função value() retorna uma fatia do tipo T, onde T é um parâmetro de tipo não restrito, e os bytes brutos recebidos do servidor X11 são interpretados como o tipo solicitado. A função name() chama std::str::from utf8 unchecked() em bytes não validados de um servidor X. Além disso, há uma leitura fora dos limites em xcb::xproto::change property() quando os argumentos de formato e tipo não correspondem ao uso pretendido.Recomendações:
Para o crate xcb até 04/02/2021 para Rust:
-
Como solução temporária, considere restringir o uso da função
xcb::xproto::GetPropertyReply::value()para chamá-la apenas com os tipos pretendidos, que sãou8,u16eu32. -
Evite usar a função
xcb::xproto::GetAtomNameReply::name()até que o problema seja resolvido. -
Restrinja o uso da função
xcb::xproto::change property()para chamá-la apenas com uma das combinações de argumentos pretendidas, que são format = 8 eT = u8, format = 16 eT = u16, ou format = 32 eT = u32. -
Recomenda-se aos usuários que façam conversão apenas para as estruturas de evento fornecidas pelo
xcbc
Exploit
Out of bounds Read
Unchecked Return Value
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Xcb