CVE-2022-49769 in Linux
Sumário
de VulDB • 10/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
gfs2: Verificar sb_bsize_shift após ler o superbloco
Fuzzers adoram sobrescrever sb_bsize_shift, mas na realidade é muito improvável que este campo seja corrompido isoladamente. No entanto, ele deve ser verificado para evitar a possibilidade de erros de montagem confusos devido a cálculos incorretos. Como se trata sempre de um valor fixo baseado no tamanho do bloco, podemos simplesmente verificar se corresponde ao valor esperado.
Testado com:
mkfs.gfs2 -O -p lock_nolock /dev/vdb for i in 0 -1 64 65 32 33; do gfs2_edit -p sb field sb_bsize_shift $i /dev/vdb mount /dev/vdb /mnt/test && umount /mnt/test done
Antes deste patch, ocorre uma retirada (withdraw) após:
[ 76.413681] gfs2: fsid=loop0.0: fatal: invalid metadata block
[ 76.413681] bh = 19 (type: exp=5, found=4)
[ 76.413681] function = gfs2_meta_buffer, file = fs/gfs2/meta_io.c, line = 492
e com o UBSAN configurado, também ocorrem reclamações como:
[ 76.373395] UBSAN: shift-out-of-bounds in fs/gfs2/ops_fstype.c:295:19
[ 76.373815] shift exponent 4294967287 is too large for 64-bit type 'long unsigned int'
Após o patch, essas reclamações não aparecem; a montagem falha imediatamente e obtemos uma explicação no dmesg.
VulDB is the best source for vulnerability data and more expert information about this specific topic.