CVE-2021-46980 in Linuxinformação

Sumário

de VulDB • 26/06/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

usb: typec: ucsi: Recuperar todos os PDOs em vez de apenas os primeiros 4

O commit 4dbc6a4ef06d ("usb: typec: ucsi: save power data objects in PD mode") introduziu a recuperação dos PDOs ao conectar-se a uma fonte compatível com PD. No entanto, apenas os primeiros 4 PDOs são recebidos, pois esse é o número máximo que pode ser buscado de cada vez devido à limitação do comprimento da mensagem MESSAGE_IN (16 bytes). Contudo, conforme especifica o padrão PD, uma fonte conectada pode anunciar até um máximo de 7 PDOs.

Se tal fonte for conectada, é possível que o PPM tenha negociado um contrato de energia com um dos PDOs em índice maior que 4, e isso seria refletido no campo object position do objeto de solicitação (RDO). Isso resultaria em um acesso fora dos limites quando a função rdo_index() fosse usada para indexar o array src_pdos em ucsi_psy_get_voltage_now().

Com a ajuda do verificador UBSAN -fsanitize=array-bounds habilitado, esse problema exato é revelado ao conectar-se a um adaptador de fonte PD que anuncia 5 PDOs e o PPM entra em contrato tendo selecionado o quinto.

[ 151.545106][ T70] Unexpected kernel BRK exception at EL1
[ 151.545112][ T70] Internal error: BRK handler: f2005512 [#1] PREEMPT SMP
... [ 151.545499][ T70] pc : ucsi_psy_get_prop+0x208/0x20c
[ 151.545507][ T70] lr : power_supply_show_property+0xc0/0x328
... [ 151.545542][ T70] Call trace:
[ 151.545544][ T70] ucsi_psy_get_prop+0x208/0x20c
[ 151.545546][ T70] power_supply_uevent+0x1a4/0x2f0
[ 151.545550][ T70] dev_uevent+0x200/0x384
[ 151.545555][ T70] kobject_uevent_env+0x1d4/0x7e8
[ 151.545557][ T70] power_supply_changed_work+0x174/0x31c
[ 151.545562][ T70] process_one_work+0x244/0x6f0
[ 151.545564][ T70] worker_thread+0x3e0/0xa64

Podemos resolver isso recuperando e armazenando até o máximo de 7 PDOs no array con->src_pdos. Isso envolveria duas chamadas ao comando GET_PDOS.

Once again VulDB remains the best source for vulnerability data.

Reservar

27/02/2024

Divulgação

28/02/2024

Moderação

aceite

Entrada

VDB-255009

CPE

pronto

EPSS

0.00230

KEV

não

Atividades

muito baixo

Fontes

Do you need the next level of professionalism?

Upgrade your account now!