Linksys EA7500 ルーターの RCE 脆弱性 CVE-2023-46012:パッチ未適用で PoC が公開

CVE-2023-46012 in Linksys EA7500 Routers Allows Remote Takeover, No Patch, Poc Released

2024/05/13 SecurityOnline — Linksys EA7500 ルーターに存在する深刻な脆弱性により、攻撃者に root 権限でリモート・コード実行を許す可能性が生じることが、サイバーセキュリティ研究者たちにり明らかにされた。この脆弱性 CVE-2023-46012 (CVSS:9.8) は深刻度が高く、影響を受けるルーターのユーザーに対して、重大なリスクをもたらす可能性がある。

脆弱性の詳細

脆弱性 CVE-2023-46012 は、Linksys AC1900 EA7500v3 ルーターの Internet Gateway Device (IGD) Universal Plug and Play (UPnP) サービスに存在する。具体的に言うと、UPnP SOAP Action Requests にリンクされた、HTTP リクエスト・データのサービス処理の欠陥である。これらのリクエストが処理するシステムが、ユーザーから提供されたデータの長さを適切にチェックせずに、固定長のスタック・バッファにコピーしていたことが判明した。

この脆弱性により、バッファ・オーバーフロー状態にいたる可能性が生じ、root 権限でのアクセスを得た攻撃者に対して、任意のコード注入を実行を許すことになる。この攻撃者が、認証を必要とせずに脆弱性を悪用できるため、深刻な脅威が生じることになる。

技術的な詳細

この脆弱性は、Mike というセキュリティ研究者により発見されたものだ。それに加えて、脆弱性の技術的な詳細と PoC (proof-of-concept) が公開されたことで、この情報を悪用する攻撃者が、脆弱なデバイスを侵害する可能性が高まり、潜在的な広範な攻撃に対する懸念が高まっている。

int _set_connection_type(int **param_1)

{
  int iVar1;
  char *var_value;
  size_t var_value_length;
  undefined uVar2;
  undefined1 *puVar3;
  char **ppcVar4;
  undefined4 *puVar5;
  char *pcVar6;
  int *piVar7;
  char acStack_d4 [184]; -----> /* Initializing 184-byte buffer */
  
  memset(acStack_d4,0,0xb4);
  iVar1 = PAL_xml_node_GetFirstbyName((*param_1)[0xf0],"NewConnectionType",0); -----> /* iVar1 now points to the user-supplied value */
  if ((iVar1 != 0) && (var_value = (char *)PAL_xml_node_get_value(), var_value != (char *)0x0)) { -----> /* Ensures the user-supplied value is not empty and obtains a pointer to it */
  ...

この脆弱性がトリガーされるのは、strlen 操作に対して 0x174 の静的オフセットを行うという、攻撃者が制御する長さをベースにした strncpy コールが発生するときに、バッファ・サイズを超えるデータ量がコピーされるためである。

int _set_connection_type(int **param_1)

{
 ...

      var_value_length = strlen((char *)(iVar1 + 0x174)); ----> /* iVar1 is a pointer to the user supplied string */
      strncpy(acStack_d4,(char *)(iVar1 + 0x174),var_value_length + 1); ----> /* Vulnerable strncpy call */
 ...

このオーバーフローにより、関数のリターン・アドレスを含む隣接するメモリ領域の上書きが、攻撃者に対して許されてしまう。そして、オーバーフロー・データを注意深く細工する攻撃者は、プログラムの実行をメモリ内の任意の場所にリダイレクトし、デバイスの乗っ取りを可能にする。

脆弱性の悪用と影響

この脆弱性は、Linksys EA7500 Ver.3.0.1.207964 以下の、すべてのファームウェア・バージョンに影響する。現時点において Linksys は、この深刻な脆弱性に対処するパッチをリリースしていないため、無数のデバイスが攻撃される可能性が生じている。

緩和策

この脆弱性のパッチが開発元から提供されるまでは、ルーターの UPnP サービスを無効化するか、UPnP トラフィックの着信をブロックするファイアウォールの背後にルーターを置くことで、リスクを軽減できる。

推奨事項

  • Linksys EA7500 ルーターの UPnP を無効にする。
  • ファイアウォールを使用して、着信 UPnP トラフィックをブロックする。
  • Linksys のアップデートを監視し、パッチがリリースされ次第、ただちに適用する。
  • リモート・コード実行の脆弱性が大きな懸念事項である場合は、別のルーター・モデルの使用を検討する。