PT-2021-17198 · Rust · Xcb
Publicado
2021-02-04
·
Atualizado
2021-08-25
·
CVE-2021-26957
CVSS v3.1
9.8
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
**Nome do software vulnerável e versões afetadas:
Biblioteca xcb até 04/02/2021 para Rust
Descrição:
O problema diz respeito a uma violação de integridade no crate xcb, que pode levar a leituras fora dos limites e transmutações de tipo incorretas. Especificamente, a função
xcb::xproto::change property() pode realizar uma leitura fora dos limites quando os argumentos de formato e tipo não correspondem aos casos de uso pretendidos. Além disso, a função xcb::xproto::GetAtomNameReply::name() chama std::str::from utf8 unchecked() em bytes não validados de um servidor X, e a função xcb::xproto::GetPropertyReply::value() retorna uma fatia de um parâmetro de tipo não restrito, permitindo tipos de retorno arbitrários. A função xcb::base::cast event() também usa std::mem::transmute() para retornar uma referência a um tipo arbitrário, o que pode levar à transmutação para um tipo incorreto.Recomendações:
Para o crate xcb até 04/02/2021 para Rust:
-
Recomenda-se que os usuários chamem
xcb::xproto::change property()apenas com as combinações de argumentos pretendidas, tais como format = 8 e T = u8, format = 16 e T = u16, ou format = 32 e T = u32. -
Os usuários devem chamar
xcb::xproto::GetPropertyReply::value()apenas com os tipos pretendidos, que são u8, u16 e u32. -
Como solução temporária, considere restringir o uso de
xcb::xproto::GetAtomNameReply::name()até que o problema seja resolvido. -
Recomenda-se que os usuários façam conversão apenas para as estruturas de evento fornecidas pelo crate xcb usando
xcb::base::cast event().
No momento, há
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