Zbtlink製ルーターにバックドア(VulnCheck社調査)

 Zbtlink(深圳智博通電子)製ルーター上のバックドア(ENDLESSDOORS)が見つかったというショッキングな話が、2026/08/05にVulnCheck社の調査により判明しました。こちらのニュースが世界的にも話題になっています。さらにZbtlink社も公式にこちらのバックドアについて否定をする見解を出しています。

以下では、このZbtlink社製ルーターのバックドアの話について簡単にまとめます。

VulnCheck社による解析

 以下ではVulnCheck社のブログを元に、解析などの情報をまとめます。

偽物のkworker

 VulnCheck社のブログによると、同社はZbtlink AX3000上でマルウェアインプラントを見つけました。

 マルウェアインプラントとは、攻撃者がシステムへの侵入後も永続的なアクセスを確保できるように配置される悪意のあるコードのことです。一度限りのエクスプロイトとは異なり、インプラントはデバイス上に常駐して攻撃者と通信したり後続アクションをサポートします。

 今回の場合には、kworkerを装ったプロセスとして動いていた模様です。

 Linuxでは非同期に実行したい処理をためる仕組み(仕事の待ち行列)としてworkqueueがあり、その待ち行列から仕事を取り出して実際にカーネルスレッド(kworker)が処理を実行するようになっています。

 kworkerはカーネルスレッドのため、psコマンドなどで確認すると[kworker]というように[]付きで表示されます。これは、psコマンドが/proc/[PID]/statusをみて、Kthread:1であれば(つまりKernelスレッドであれば)表示に付け足すようになっています。

例えば以下は筆者のLinux(Debian)上でのkworkerプロセスです。

画像は筆者の環境(Debian: trixie)上でのkworkerの見え方。[]で囲まれているのがわかる

また、/proc/4/statusをみるとKthread:1になっていることがわかります。

画像は筆者の環境(Debian: trixie)上。先のPID:4の情報を/proc/4/statusで見たところKthread:1になっているのがわかる

 一方で下記の画像はVulnCheck社のブログから引用したものですが、kworkerが[]で囲まれているもの(PID: 6, 17, 651)と、[]で囲まれていないもの(PID: 6811, 6826)があるのがわかります。

画像はVulnCheck: ENDLESSDOORS Is Phoning Home. Pick Upより引用。[]で囲まれていないものが見える

 つまり、PID:6811, 6826は、名前はkworkerというプロセスですが、実際には本物のkworkerではなく、ユーザー空間でroot権限で動いているプロセスであることがわかります。VulnCheck社のゼロデイ調査チームは、これをENDLESSDOORSと名付けました。

ENDLESSDOORSとrctl

 VulnCheck社の解析によると、ENDLESSDOORSのベースはrctl(Remote Linux Control)と呼ばれるシンプルなクライアント/サーバーツールです。サーバーはポート7000でクライアントからの接続を待ち受け、個別のシェルコマンドの送信や、リバースシェルの起動をクライアントに指示できます。

Github上でのrctl(remote control linux)

 今回問題になったAX3000のkworkerはこのrctlをカスタマイズしたもので、47.107.224[.]89 と rbdg4nzqadui[.]wikaba[.]com に電話するように構成されていました。

画像はVulnCheck: ENDLESSDOORS Is Phoning Home. Pick Upより引用。tcpdumpによるパケットキャプチャ

実際の攻撃実証

 VulnCheck社では、rctlサーバープロトコルをgo-exploit(同社が公開している実証用exploitコード開発フレームワーク)に変換してAX3000クライアントからの送信rctl通信をハイジャックし、対話型シェルを提供するように指示したところ、実際に提供されたそうです。

画像はVulnCheck: ENDLESSDOORS Is Phoning Home. Pick Upより引用。実際に攻撃に成功し、root権限でシェルが開けているのがわかる。

CVEアサイン(CVE-2026-66747)とVulnCheck社の対応

 VulnCheck社はCNAでもあるため、今回の件を脆弱性としてとらえ、CVE-2026-66747をアサインしています。

 なお、VulnCheck社は今回、ベンダーとの情報開示の調整(VulnCheck社を含む一般的な情報開示調整に関しては、こちらの記事を参照してください)を行なっていません。その理由としては以下が挙げられています。

  • 今回の問題が、ベンダー自身のinitスクリプトにより起動時に開始されていること。
  • 20機種、数年にわたるイメージで行われていること
  • ベンダーにこれを伝えたとしても、ベンダー自身の手によって行われているため、デバイスの所有者にはメリットがなく、元々この仕組みを作った者を警戒させてしまうこと

そのためVulnCheck社では、2026/08/05の時点で情報を公開し、防御側のために検出に関するコンテンツも公開して効果的に保護できるようにしたとのことです。

影響を受けるモデル

 VulnCheck社の調査によると、以下の約20種類のモデルが同じ方法でハイジャック可能とのことです。

CPE2801、WE1026-5G-WD、WE1326、WE2007、WE2008-DSIM、WE2416、WE3326、WE5927、WE5931、WE5931AC、WE826-T3-DSIM、WG108、WG1602、WG1608-DSIM、 WG209、WG2105、WG2107、WG259、WG3526、Z8102AX-2DSIM

IoC/検知ルール

 VulnCheck社では今回の件でファイルのハッシュ値やIPアドレスといったIoCを公開しています。

また同時に、通信を検知できる

  • Suricataルール
  • Snortルール
  • YARAルール

も公開しています。詳しくはVulnCheck社の記事を参照してください

ZBTlink社の声明

 ZBTlink社は今回の件を受けて公式の声明を2026/08/06に発表しています。それによると

  • レポートで言及されているリモート管理コンポーネントは、アフターサービス技術サポートツールであり、トラブルシューティング用であるとのこと
  • このコンポーネントが不正アクセスに使用されたことは一度もないこと
  • 影響を受けるモデルの販売は直ちに停止したとのこと
  • 関連するファームウェアのダウンロードは公式サイトから削除したとのこと
  • rctlコンポーネントの問題を完全に解決するためのファームウェアアップデートを開発およびリリースしているとのこと

が出されています。今回の件に関しては「これはあくまでもサポートツールであり、すぐに問題は削除し、新しいファームウェアを開発/リリースした」というスタンスのようです。

筆者の個人的な考え

 筆者も様々なベンダーを渡り歩いてきており、機器類で「障害時などにサポートするためにリモートから制御できる」ようになっているものも様々見てきました。ZBTlink社の言い分の通り、これも障害時を考えてのリモートからの制御ツールである、という考えもできるかもしれません。しかしその類のものは

  • 本来はマニュアル等で顧客に開示されているべきである
  • 専用のプロセス名をつけるべきであり、kworkerという風にシステムプロセスの名前を騙って隠そうとするのはおかしい

という2点から、ZBTlink社の言い分は結構苦しいのではないかと感じています。

参考リンク