PT-2026-51087 · Ohler55+3 · Oj+1

·

CVE-2026-54901

·

Publicado

2026-06-19

·

Atualizado

2026-07-01

CVSS v4.0

8.7

Alta

VetorAV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Nome do Software Vulnerável e Versões Afetadas Oj versões anteriores a 3.17.2
Descrição O Oj::Parser no modo usual não marca as referências array class e hash class durante a coleta de lixo (GC), resultando em uma condição de Use-After-Free. Se o GC for executado após a classe ser atribuída, mas antes de uma operação de análise, o objeto da classe é recuperado, deixando o parser com um VALUE pendente. Uma chamada subsequente à função parse() desreferencia esse objeto liberado, levando a um erro de segmentação (segfault). Isso ocorre porque a função parser mark() em ext/oj/parser.c não passa o array class para rb gc mark(), fazendo com que o GC colete a classe referenciada. A falha ocorre especificamente quando close array class() chama rb funcallv() no VALUE da classe coletada.
Recomendações Atualize para a versão 3.17.2.

Exploit

Correção

Use After Free

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-54901
GHSA-VWM4-62GF-X745

Produtos afetados

Oj
Ruby-Oj