Vulnerabilidade de execução remota de código em biblioteca popular ReportLab PDF foi divulgada
1 de Junho de 2023

Um pesquisador publicou um exploit funcional para uma falha de execução de código remoto (RCE) afetando o ReportLab Toolkit, uma biblioteca Python popular usada por vários projetos para gerar arquivos PDF a partir de entrada HTML.

O exploit de prova de conceito (PoC) para a falha, rastreado como CVE-2023-33733 , foi publicado ontem no GitHub junto com um texto que fornece detalhes técnicos sobre a vulnerabilidade, aumentando assim a probabilidade de exploração em ambientes reais.

ReportLab Toolkit é usado por vários projetos como uma biblioteca PDF e tem aproximadamente 3,5 milhões de downloads mensais no PyPI (Python Package Index).

O problema decorre da capacidade de contornar as restrições de sandbox em 'rl_safe_eval', cujo papel é prevenir a execução de código malicioso, levando o atacante a acessar funções internas potencialmente perigosas do Python.

A função 'rl_safe_eval' foi introduzida como medida preventiva para evitar um problema semelhante de execução de código remoto descoberto em 2019; portanto, o pesquisador concentrou-se em contorná-la.

O PoC apresentado recupera a função interna 'type', que ajuda a criar uma nova classe chamada 'Word', que herda da classe 'str', o que pode contornar verificações de segurança e dar acesso a atributos sensíveis como 'code'.

Em seguida, 'type' é chamado em si mesmo para contornar as verificações de avaliação segura em relação às restrições de contagem de argumentos, permitindo que o atacante abuse da função original e interna 'type' para criar novas classes e objetos.

Isso leva à construção de uma função maliciosa a partir do bytecode de uma função compilada que, quando executada, pode executar uma ação arbitrária.

No exemplo do pesquisador, ela chama um comando do sistema operacional para criar um arquivo chamado 'exploited' no diretório "/tmp/".

O pesquisador observa que todo o código do exploit deve ser executado com eval em uma única expressão, portanto, ele usa o truque 'list comprehension' para estruturá-lo dessa forma.

O pesquisador Cure53, Elyas Damej, alerta em seu texto que a exploração do CVE-2023-33733 é tão simples quanto incorporar código malicioso em um arquivo HTML que será convertido em PDF em software que usa a biblioteca ReportLab.

O amplo uso da biblioteca e um exploit público colocam muitos usuários em risco.

Os fornecedores de software que usam a biblioteca podem lidar com o risco resultante da cadeia de suprimentos aplicando a atualização de segurança disponível.

Damej disse ao BleepingComputer que o problema foi relatado aos desenvolvedores do ReportLab após a descoberta e uma correção veio com a versão 3.6.13, lançada em 27 de abril de 2023.

O pesquisador esclareceu que a vulnerabilidade afeta todas as versões anteriores da biblioteca.

Publicidade

Pentest do Zero ao Profissional

O mais completo curso de Pentest e Hacking existente no Brasil, ministrado por instrutores de referência no mercado. Oferece embasamento sólido em computação, redes, Linux e programação. Passe por todas as fases de um Pentest utilizando ambientes realísticos. Se prepare para o mercado através da certificação SYCP. Saiba mais...