MikroTikがひっそりと公開したRouterOSリリースは、詳細なリバースエンジニアリングの対象となった。あるセキュリティ研究者は、同社が根本的な詳細を明らかにしないまま、複数の重大な欠陥を修正したと主張している。

投稿によると、MikroTikは2026年9月3日、長期サポートブランチ向けにRouterOS 7.23.4、安定版向けに7.24.2、v6向けに6.49.21を公開した。いずれにも、重要なセキュリティアップデートであり、大半の構成は危険にさらされていないという同じ警告が付いていた。MikroTikは、顧客が先にアップグレードする時間を確保できるよう、技術的な詳細の公開を遅らせていると説明した。研究者の主張は、修正済みバイナリが入手可能になった時点で、パッチ自体が手掛かりになったというものだ。

分析記事によると、筆者は新旧のパッケージを比較し、RouterOSのイメージを展開して、バイナリ全体の変更を追跡した。その作業から、注目すべき2つの変更群が特定された。1つはSSH関連の経路で、研究者によると、ダッシュで始まる、または制御文字を含むログインパラメーターを防ぐための入力検証が追加された。もう1つはmtgetコンポーネントにおける別の変更で、投稿では、snprintfと、ファイル名が長すぎることを示すエラー文字列が出現したことから、ネイティブプロセスのメモリ破損状態に関連付けている。

この記事は、パッチと、公開された完全な悪用手順を慎重に区別している。SSH経路は信頼済み引数のインジェクション問題を解消するとしているものの、筆者は、標準構成で認証情報なしにSSHへ「-2」という文字どおりのユーザー名を受け入れさせる方法を再現できなかった。その代わり、投稿は、従来型のファイルディスクリプター転送経路に到達した場合、認証済みの読み取り専用セッションに、より広範なコマンド実行を許し得る条件付きの連鎖を説明している。筆者は、この境界は重要であり、明示し続けるべきだとしている。

より具体的な発見は、パッチが1つだけでなく複数のバイナリに変更を加えているように見えることだ。分析記事によると、sshdの各ビルドを単純にバイナリ比較するとノイズが多い。コードのわずかな位置ずれによって、ファイル全体が変更されたように見えることがあるためだ。筆者は、シンボル単位の比較のほうが多くを明らかにすると論じ、SSH領域でvalidLoginParamInputという新しい関数と、変更されたparseHashFromDerEncodedを指摘し、さらにRouterOS内の別の場所にあるmtgetの変更を挙げている。

投稿はまた、同じセキュリティ情報がサポート対象の3つのブランチを網羅していたと指摘している。筆者はこれを、通常のメンテナンスではなく、単一の協調的な修正の兆候と捉えている。それだけで根本原因が1つだったと証明できるわけではないが、欠陥の名称を公表する前に顧客にアップデートしてもらいたい場合に、ベンダーがパッチを扱う方法とは一致する。

運用担当者にとって最も重要な教訓は、悪用の詳細ではなく、運用上の警告かもしれない。広く導入されているネットワーク機器のひそかなパッチは、誰かが差分を再構築するまで、深刻な危険を隠し得る。修正済みバイナリが入手可能になれば、防御側も攻撃側も同じように調査できる。このため、迅速なパッチ適用、バージョン追跡、全車両ならぬ全機器群のインベントリー管理は、ベンダーが当初、技術資料の公開に消極的だったこと以上に重要になる。

研究者の説明は技術的かつ具体的だが、依然として一部は条件付きだ。MikroTikのアップデートが少なくとも1件のSSHログイン強化問題と、それとは別のメモリ安全性問題に対処していることを示唆する一方、完全に公開された未認証の攻撃手段があるとまでは主張していない。防御側にとっては、それでも緊急のパッチ適用と、外部に公開されているRouterOSシステムの慎重な点検を正当化するのに十分だ。