GitLab RCE via duas vulnerabilidades de corrupção de memória na gem Ruby Oj
Técnicas e Métodos de Ataque2026-07-28, 13:02
Pesquisadores da depthfirst demonstraram uma cadeia de RCE no GitLab através do processamento de diffs para Jupyter Notebooks. Um arquivo
.ipynb especialmente criado é passado para ipynbdiff e depois para o parser JSON nativo Oj, onde a primeira vulnerabilidade permite uma escrita fora dos limites do array, enquanto a segunda permite um vazamento de endereço heap para bypass de ASLR.
Como resultado, um atacante pode substituir o callback do parser e alcançar a execução de system() dentro de um worker Puma rodando como usuário git.A cadeia:
.ipynb em um repositório Git → diff do notebook GitLab → ipynbdiff → extensão C Oj → escrita OOB → substituição de p->start → vazamento de ponteiro heap → recuperação da base libc/libruby → chamada para system()
O ataque não requer privilégios de administrador, acesso ao CI ou interação do usuário—é suficiente ser capaz de pushar commits para um projeto e abrir o diff. Versões do GitLab CE/EE a partir de 15.2.0 são afetadas. Correções foram incluídas em 18.10.8, 18.11.5 e 19.0.2, enquanto a versão segura do Oj é 3.17.3.
Fornecedor
Produto
Mais