FERRAMENTAS LINUX: RLSA-2023:2786 – Atualização Moderada de Segurança para o Wayland

sábado, 27 de junho de 2026

RLSA-2023:2786 – Atualização Moderada de Segurança para o Wayland

 


Atualização de segurança Wayland para Rocky Linux 8 corrige CVE-2021-3782 com overflow de referência no libwayland-server. Procedimento de patch e verificação para ambientes gráficos.

 

O RLSA-2023:2786 é uma atualização de segurança de severidade moderate para o pacote Wayland no Rocky Linux 8

A vulnerabilidade corrigida, CVE-2021-3782, afeta a biblioteca libwayland-server e consiste em um estouro de contagem de referência (reference-count overflow) no gerenciamento do pool de buffers compartilhados (wl_shm).

Em sistemas LP64 (arquiteturas 64-bit), a contagem de referência é armazenada em um int. Um cliente malicioso pode criar um grande número de objetos de buffer wl_shm ou forçar o servidor a criar referências externas em excesso, fazendo a contagem transbordar para um valor negativo. 

O resultado prático é um use-after-free na estrutura de rastreamento wl_shm_pool, permitindo que o atacante:

  • Manipule incrementos/decrementos do contador.
  • Vaze 4 bytes da memória do servidor por tentativa, construindo um oráculo limitado.

Embora classificado como moderate, o impacto em servidores Wayland (como compositores GNOME/KDE em estações de trabalho ou terminais gráficos) não deve ser subestimado — especialmente em ambientes multi-usuário ou com acesso a aplicações containerizadas que compartilham o socket no Wayland.


Pré-requisitos

Antes de aplicar o patch, verifique:


⚠️ Atenção: Esta atualização afeta bibliotecas compartilhadas do Wayland. Qualquer aplicação gráfica em execução que utilize essas bibliotecas precisa ser reiniciada após o update — incluindo o compositor gráfico (GNOME Shell, KWin, etc.). Planeje o procedimento durante uma janela de manutenção ou fora do horário comercial.

Passo a Passo

1. Verificação do estado atual

Antes de qualquer alteração, documente o ambiente:

bash
$ rpm -qa | grep wayland
wayland-devel-1.21.0-1.el8.x86_64
wayland-1.21.0-1.el8.x86_64
libwayland-client-1.21.0-1.el8.x86_64
libwayland-server-1.21.0-1.el8.x86_64
libwayland-cursor-1.21.0-1.el8.x86_64
bash
$ uname -a
Linux rocky8-lab 4.18.0-477.10.1.el8_8.x86_64 #1 SMP ... x86_64 GNU/Linux

Por que isso importa? Saber a versão exata permite confirmar se o patch foi aplicado corretamente e facilita um possível rollback.

2. Aplicação da atualização

O pacote corrigido é a versão 1.21.0-1.el8 (ou superior). Execute:

bash
$ sudo dnf update wayland

Saída esperada (trecho):

text
Rocky Linux 8 - BaseOS                            1.2 MB/s | 2.3 MB     00:01
Rocky Linux 8 - AppStream                         1.5 MB/s | 4.1 MB     00:02
Dependencies resolved.
================================================================================
 Package            Arch      Version             Repository              Size
================================================================================
Upgrading:
 wayland            x86_64    1.21.0-1.el8        baseos                 123 k
 libwayland-client  x86_64    1.21.0-1.el8        baseos                  45 k
 libwayland-server  x86_64    1.21.0-1.el8        baseos                  52 k
 libwayland-cursor  x86_64    1.21.0-1.el8        baseos                  38 k

Transaction Summary
================================================================================
Upgrade  4 Packages

Total download size: 258 k
Is this ok [y/N]: y

Se o sistema já estiver atualizado, o dnf informará:

text
Nothing to do.
Complete!

Por que dnf update e não dnf upgrade? Ambos funcionam; update é sinônimo de upgrade no DNF moderno. O importante é que o DNF resolva as dependências e atualize todos os subpacotes (libwayland-client, libwayland-server, libwayland-cursor) em conjunto, evitando inconsistências de versão.

3. Verificação pós-atualização

Confirme que os pacotes foram atualizados:

bash
$ rpm -q wayland libwayland-client libwayland-server libwayland-cursor
wayland-1.21.0-1.el8.x86_64
libwayland-client-1.21.0-1.el8.x86_64
libwayland-server-1.21.0-1.el8.x86_64
libwayland-cursor-1.21.0-1.el8.x86_64

Verifique a integridade dos binários com rpm -V:

bash
$ sudo rpm -V wayland libwayland-client libwayland-server libwayland-cursor

Saída: (nenhuma saída = tudo OK; qualquer linha indica alteração não esperada no sistema de arquivos)

4. Reinicialização dos serviços dependentes

Aqui está o ponto crítico: as bibliotecas Wayland estão carregadas em memória por qualquer processo que as utilize. A simples atualização dos arquivos no disco não substitui as versões em execução.

Opção A — Reinicialização completa do sistema (recomendado para ambientes gráficos):

bash
$ sudo shutdown -r now

Opção B — Reinicialização seletiva do compositor (para ambientes headless ou com mínima interrupção):

bash
# Para GNOME (GDM)
$ sudo systemctl restart gdm

# Para KDE (SDDM)
$ sudo systemctl restart sddm

# Para Wayland sem display manager (ex: Sway, Weston)
$ sudo pkill -HUP weston   # ou o processo do compositor

Por que isso é necessário? O kernel Linux carrega bibliotecas compartilhadas no momento do exec() de cada processo. Processos já em execução mantêm os inodes antigos, mesmo que o arquivo em disco seja substituído. Apenas novos processos (ou processos reiniciados) carregarão a versão corrigida.

5. Validação funcional

Após a reinicialização, verifique se o ambiente gráfico opera normalmente:

bash
$ echo $XDG_SESSION_TYPE
wayland
bash
$ sudo journalctl -u gdm --since "5 minutes ago" | grep -i error

Teste aplicações gráficas críticas:

bash
$ glxinfo | grep "OpenGL version"
$ weston-info | head -20

📘  Indicação de Leitura 


Livro: Segurança em Servidores Linux Ataque e Defesa

Esse livro  é um guia prático e abrangente sobre a segurança do sistema operacional Linux como um todo. O livro ensina a pensar como um atacante para fortalecer a defesa do servidor, abordando tópicos fundamentais como:

  • Ferramentas de rede: Nmap, Netcat, knockd.
  • Monitoramento: de arquivos e sistemas de arquivos.
  • Defesas: contra malware e ataques DDoS.
  • Descoberta de vulnerabilidades: como invasores encontram pontos fracos.


Segurança em Servidores Linux Ataque e Defesa: (anúncio) ->  https://link.amazon/B00xISltq

Eu ganho uma comissão quando você faz uma compra.


Troubleshooting

Problema: Sistema não inicializa graficamente após o update.

Cenário: Após reiniciar, o GDM/SDDM não inicia ou a tela fica preta.

Causa possível: Conflito entre o novo Wayland e drivers. gráficos proprietários (NVIDIA, AMDGPU-PRO) ou módulos do kernel compilados contra a versão anterior.

Solução:


1. Acesse o sistema via runlevel 3 (modo texto):


No GRUB, adicione systemd.unit=multi-user.target aos parâmetros do kernel.

Ou pressione Ctrl+Alt+F2 para um TTY alternativo.

2. Verifique os logs do Xorg/Wayland:
  1. bash
    $ sudo journalctl -b -u gdm -n 100
    $ sudo cat /var/log/Xorg.0.log | grep -i error

3. Se o problema for com o driver NVIDIA, reinstale o driver compatível com o novo kernel:

  1. bash
    $ sudo dnf reinstall akmod-nvidia xorg-x11-drv-nvidia
    $ sudo systemctl restart gdm

4. Em último caso, faça rollback para a versão anterior:

  1. bash
    $ sudo dnf downgrade wayland libwayland-client libwayland-server libwayland-cursor

 Armadilha Comum

"Atualizei o Wayland mas não reiniciei o compositor — e o sistema parece funcionar."

Esta é a armadilha mais perigosa. O administrador vê que os arquivos foram substituídos, executa wayland-info e tudo parece normal. 

Porém, o servidor Wayland (e todas as aplicações gráficas) continuam executando a versão antiga em memória, com a vulnerabilidade ainda ativa.

Como detectar: Compare o PID do compositor com o tempo de modificação dos arquivos .so
bash
$ pidof gnome-shell   # ou o processo do seu compositor
1234
$ ls -l /proc/1234/maps | grep wayland
7f8a2c000000-7f8a2c020000 r-xp ... /usr/lib64/libwayland-server.so.0.21.0 (deleted)


Veja o marcador (deleted)? Isso indica que o arquivo original foi substituído, mas o processo ainda o mantém aberto. A vulnerabilidade persiste.

A correção é simples: sempre reinicie o compositor (ou o sistema inteiro) após atualizar bibliotecas do Wayland.



Conclusão


O RLSA-2023:2786 corrige uma vulnerabilidade de estouro de contagem de referência no libwayland-server que pode levar a use-after-free e vazamento de memória. 

O procedimento de atualização é direto via dnf update wayland, mas o sucesso da correção depende de um passo frequentemente negligenciado: a reinicialização de todos os processos que utilizam as bibliotecas — especialmente o compositor gráfico.

  • Para ambientes de estação de trabalho com Rocky Linux 8, recomenda-se:
  • Aplicar o patch durante janela de manutenção
  • Reiniciar o sistema completamente após o update
  • Validar com rpm -V e testes funcionais

Documentar a versão anterior para possível rollback
A vulnerabilidade é moderada, mas em ambientes multi-usuário ou com exposição a containers gráficos, o risco de exploração justifica a priorização desta atualização.


Nenhum comentário:

Postar um comentário