Linksys Router の脆弱性 CVE-2024-33788/33789:パッチ未適用で PoC が登場

Linksys Router Flaws Exposed, Poc Published, Patch Unavailable!

2024/05/05 SecurityOnline — Linksys E5600 ルーターに存在する2つの深刻なセキュリティ脆弱性が、CoreSecurity OT/ICS Research Team のサイバー・セキュリティ研究者たちにより公表された。それらの脆弱性は、ファームウェア・バージョン 1.1.0.26 で動作するルーターに影響を及ぼすものであり、侵害の可能性が懸念されている。

脆弱性に対する理解

これらの欠陥は、CVE-2024-33788CVE-2024-33789 としてカタログ化されており、どちらもルーターのファームウェア内の、不十分な入力検証メカニズムにより引き起こされる、コマンド・インジェクションの脆弱性である。

CVE-2024-33788:Wi-Fi プロテクト・セットアップの欠陥

1つ目の脆弱性 CVE-2024-33788 は、ルーターの Wi-Fi プロテクト設定に起因する。ユーザーが PIN 番号を使用してデバイスを登録する際に、入力が適切にフィルタリングされないため、コマンド・インジェクションを許してしまう。具体的な欠陥は、ルーターの Lua スクリプトの “squashfs-root/usr/share/lua/runtime.lua:1561 にあり、pt[”PinCode”] 値が処理される。

function runtime.wpsProcess(pt)
        local ret = '"OK"'

        print("wpsProcess")

    if pt["Mode"] == 'PBC' then
                os.execute("wps_action.sh PBC &")

        elseif pt["Mode"] == 'PIN' and pt["PinCode"] ~= nil then

[1]     cmd = 'wps_action.sh PIN '..pt["PinCode"]..' &'
[2]     os.execute(cmd)

    elseif pt["Mode"] == 'STOP' then
        print("wpsProcess STOP")

        cmd = 'ps | grep wps_action.sh | grep -v grep | awk \'{print $1}\' | xargs kill'
        os.execute(cmd)

        else
        print("wpsProcess Fail")
        end

       return ret
end

このルーターの OS が実行するコマンドを注入することで、脅威アクターによる悪用が可能となる。

cve-2024-33789:診断トラブル

2つ目の脆弱性 CVE-2024-33789 は、ルーターの診断メニューに、特に ping テスト機能に存在している。この機能における、IP/URL アドレスの入力が適切にサニタイズされていないため、コマンド・インジェクションを引き起こす可能性が生じている。この問題は、同じ Lua スクリプトに起因しているが、別のロケーション “squashfs-root/usr/share/lua/runtime.lua:491” に存在する。

function runtime.pingTest(pt)
        local ret = '"NOK"'
        local logpath = "/tmp/ping.log"
        if pt ~= nil then
                print("Stop pingTest")
                os.execute("killall -2 ping")
                ret = '"OK"'
                if pt["count"] ~= nil and pt["pkgsize"] ~= nil and pt["ipurl"] ~=nil then
                        --For x86 -c option is not work
                        local copt=' '
                        if pt["count"] ~= '0' then
                                copt = " -c "..pt["count"]..copt
                        end
[1]                     local cmd = "/bin/ping -W1"..copt.."-s "..pt["pkgsize"].." "..pt["ipurl"].." > "..logpath.." 2>&1 &"
                        print("Do ["..cmd.."]")
[2]                     os.execute(cmd)
                        runtime.savefileline(logpath, "w", "1")
                        ret = '"OK"'
                end
                return ret
        else
                print("Only get ping result")
                ret = runtime.showfilefromline("pingTest", logpath, 1)
        end

        return ret
end

pt[”ipurl”] フィールドが、悪意の入力で操作されると、不正なコマンドが実行され、攻撃者によるデバイスの制御にいたる可能性が生じる。

これらの脆弱性の影響

これらの脆弱性を悪用する攻撃者は、ルーター上で任意のコマンドを実行できるため、ユーザーは重大なリスクにさらされることになる。具体的には、ネットワークへの不正アクセスやデータの窃取が発生し、接続されたシステム内でマルウェアが拡散する可能性が生じる。これらの脆弱性の性質上、特に Linksys E5600 などのルーターが大量に導入されている環境や、機密性の高い環境では、きわめて致命的な結果にいたる。

心配な要素

これらの脆弱性は、ファームウェア・バージョン 1.1.0.26 を実行している、Linksys E5600 ルーターに影響を及ぼすと報告されている。残念なことに、現時点では公式のパッチは提供されていない。したがって、セキュリティ・アップデートの欠如により、多数のデバイスが、悪用の危険にさらされ続けることになる。さらに、CoreSecurity による PoC コード [12] の公開は、潜在的な攻撃の青写真を、脅威アクターたちに提供することを意味する。

自分自身を守るためにできること
  • ファームウェアのチェック: Linksys E5600 ルーターにインストールされているファームウェアのバージョンを確認する。影響を受けやすいバージョンの場合には、リスクを最小限に抑えるための対策を講じる必要がある。
  • 可能であれば WPS を無効化する: 便利ではあるが、Wi-Fi Protected Setup には既知の脆弱性が存在している。セットアップに不可欠でない場合には、ルーターの WPS を無効化すべきである。
  • 診断における細心の注意: 必要な場合を除き、ルーターのインターフェースから ping テストツールを使用することを避けるべきだ。使用する場合には、既知の信頼できる IP アドレスまたは Web サイトのみを入力する。
  • アップデートの監視: 公式ファームウェア・パッチのニュースを迅速に見つけ出すために、Linksys のサポート・チャネルを注視する。アップデートが利用可能になったら、ただちに適用すべきだ。
  • 買い替えの検討: 使用中のルーターが数年前のものであるなら、より強力なセキュリティ機能を備えた、積極的にサポートされている最新モデルへの、アップグレードを検討する時期かもしれない。