Execução Remota de Código no GitLab por meio de vulnerabilidades Ruby

A pesquisa mostra como uma cadeia de duas vulnerabilidades de corrupção de memória na biblioteca Oj (parser JSON do Ruby) leva à execução remota de código no GitLab. Um atacante pode enviar um arquivo .ipynb especialmente criado que primeiro divulga endereços de memória e depois usa um estouro para sobrescrever um callback e obter execução de código no processo Puma.
A exploração requer apenas privilégios comuns de usuário: um atacante simplesmente precisa enviar o arquivo e abrir o diff. As vulnerabilidades não têm impacto crítico individualmente, mas juntas permitem o comprometimento total do servidor GitLab, incluindo acesso ao código-fonte e tokens de CI/CD — no entanto, a correção foi lançada como um bugfix de rotina, sem um CVE separado.
Fornecedor
Gitlab
Produto
Gitlab
Oj
Puma
Ruby