79%対51%:独立系ネオバンクはアプリセキュリティで後れ。 レポートを読む

ディープダイブ

ディープダイブ

UnrealIRCd:実環境で悪用されるコマンドインジェクション(CVE-2026-114713)

labelタグのエスケープ不備により、UnrealIRCdの一般ユーザーがリンクされたネットワークでサーバーコマンドを実行できます。6.2.7.1で修正され、実環境で悪用されています。

要点

  • UnrealIRCdのlabeled-responseモジュールのエスケープ不備により、一般ユーザーがサーバー権限で実行されるサーバー間コマンドを注入できます。UnrealIRCdは2026年11月7日に6.2.7.1とホットパッチを公開しました。
  • モジュールを読み込むUnrealIRCd 6.0.0から6.2.7のすべてのサーバーが、2台以上のサーバーがリンクされたネットワークで影響を受けます。既定の設定はこのモジュールを読み込みます。
  • CVEレコードはCVSS v3.1 8.6 Highと評価しています。CISAのKnown Exploited Vulnerabilities(KEV)カタログは2026年11月13日に追加し、Stakeholder-Specific Vulnerability Categorization(SSVC)レコードは悪用が進行中と記しています。
  • 6.2.7.1へ更新するか、ベンダーのホットパッチを適用し、モジュールのバージョンを確認してください。SPAMFILTERによる回避策は「修正方法」を参照してください。

影響を受けますか?

次の条件がすべて当てはまる場合に影響を受けます。

  • サーバーがUnrealIRCd 6.0.0から6.2.7、または保守終了した5.xを実行している。
  • labeled-responseモジュールが読み込まれている。既定のmodules.default.confはこれを読み込みます。
  • ネットワークに2台以上のサーバーがリンクされている。CVEはこの構成でサーバー権限によるコマンド実行を説明しています。
  • 一般ユーザーが接続し、IRCv3メッセージタグを送信できる。

単一のリンクされていないサーバーは、注入された行をピアへ中継しないため、CVEが示すサーバー権限の経路は当てはまりません。それでも更新してください。6.2.7.1はIPアドレスの漏えい2件を含む他の8件の問題も修正します。

ブランチ 影響を受けるバージョン 修正バージョン
6.x 6.0.0から6.2.7 6.2.7.1
5.x すべてのリリース(2023-07-01に保守終了) なし。6.2.7.1へ更新

実行中のバージョンとモジュールの状態を確認します。

# Version of the running server
./unrealircd version

# Is the module loaded, and at which version?
./unrealircd module-status | grep labeled-response

モジュールの行がパッチの状態を示します。labeled-response 5.0は未修正です。labeled-response 5.0-hot-patch-bundle-20261107またはlabeled-response 6.2.7.1は修正済みです。

修正方法

6.2.7.1へ更新するか、再起動せずにホットパッチを適用し、モジュールの行を確認します。

  1. ベンダーの一時的なSPAMFILTERをネットワークに適用します。各サーバーでIRCOpとして実行します:SPAMFILTER add -regex T block - Invalid_label ^label=(?![^\r\n;\x20]*\z)。復帰文字、改行、セミコロン、空白を含むlabelをブロックします。すべてのサーバーが6.0.4以降の場合にのみ機能します。
  2. 各サーバーで./unrealircd hot-patch bundle-20261107を実行します。最後の行が、パッチがインストールされサーバーが正しくリハッシュされたことを示す必要があります。
  3. または./unrealircd upgradeで更新して再起動します。Windowsのユーザーはベンダーサイトから6.2.7.1をダウンロードします。
  4. ./unrealircd module-status | grep labeled-responseで確認します。出力はホットパッチのバンドルまたは6.2.7.1を示す必要があります。
  5. すべてのサーバーを修正したらSPAMFILTERを削除します。

保守終了した5.xでは、各サーバーの設定にblacklist-module "labeled-response";を追加し、リハッシュではなく再起動します。UnrealIRCd 5は2023-07-01に保守終了しており、修正は提供されません。

ホットパッチはリリースの9件の問題すべてを対象にします。失敗した場合、ベンダーのホットパッチFAQがディストリビューション更新とビルドのケースを説明しています。6.2.7.1への更新が代替手段です。

根本原因は何ですか?

サーバーはIRCv3のlabelメッセージタグを固定長バッファーにコピーし、その後、タグ、パラメーター、行を区切るデリミターをエスケープせずに応答へ整形していました。

UnrealIRCd 6.2.7では、lr_pre_command()がstrlcpyでタグの値をcurrentcmd.labelへコピーします。検証はlabeled_response_mtag_is_ok()だけです。値が空でないこと、クライアントがlabeled-responseとbatchの機能に対応していること、値が64バイト以下であることを確認します。

int lr_pre_command(Client *from, MessageTag *mtags, const char *buf)
{
    lr_clear();

    if (IsServer(from))
        return 0;

    for (; mtags; mtags = mtags->next)
    {
        if (!strcmp(mtags->name, "label") && mtags->value)
        {
            strlcpy(currentcmd.label, mtags->value, sizeof(currentcmd.label));
            currentcmd.client = from;
            break;
        }
    }

    return 0;
}

gen_start_batch()はsnprintfで@label=%s :%s BATCH +%s labeled-responseへlabelを書き込みます。lr_post_command()も単一応答の経路で同じことをします。

snprintf(packet, sizeof(packet) - 3,
         "@label=%s%s%s",
         currentcmd.label,
         more_tags ? ";" : " ",
         more_tags ? currentcmd.firstbuf + 1 : currentcmd.firstbuf);

IRCのメッセージは、タグのセクション、ソース、コマンド、パラメーターで構成されます。デリミターは次のように働きます。

  • セミコロンはタグを区切ります。
  • 空白はタグのセクションを終了します。
  • 復帰文字または改行はメッセージを終了します。

したがって、これらのバイトを含むlabelは、UnrealIRCdが構築する応答の構造を変えます。labelはメッセージタグライブラリを通じてACK応答にもコピーされます。このライブラリも同じ未エスケープの値を使います。

どのように悪用されますか?

  1. 攻撃者はIRCv3タグを送信できるクライアントで、ネットワーク上の任意のサーバーへ一般ユーザーとして接続します。
  2. 攻撃者は、タグの区切り、空白、改行のいずれかを含むlabelタグを付けたコマンドを送信します。検証は長さとクライアント機能だけを見るため、サーバーは受け入れます。
  3. UnrealIRCdはそのlabelをBATCHの開始、ACK応答、またはそのコマンド用にバッファーした単一応答へコピーします。
  4. デリミターが生成されたテキストを追加のタグ、パラメーター、または2つ目のIRCメッセージに分割します。
  5. 応答がサーバーリンクを通過します。ピアは追加のメッセージを信頼されたリンクからのサーバー間コマンドとして解析し、サーバー権限で実行します。

脆弱性を説明するのに公開エクスプロイトコードは不要で、ここではリンクしていません。ベンダーは、一般ユーザーがKILLやGLINEなど多くの操作を行えると述べています。CISAのレコードは悪用が進行中と記しているため、この手法は使用されています。

攻撃の流れは?

一般ユーザーがlabelにタグと行のデリミターを入れ、UnrealIRCdがエスケープせずに応答へコピーし、ピアサーバーが注入されたコマンドを信頼されたサーバーとして実行します。

flowchart LR A["一般ユーザーが細工したlabelタグ付きの
コマンドを送信"] --> B["モジュールがデリミターを
確認せずlabelをコピー"] B --> C["応答が@label=<値> ...
として構築される"] C --> D["デリミターが応答を追加タグや
2行目に分割する"] D --> E["応答がサーバーリンクを通過"] E --> F["ピアが注入された行を
サーバー権限で実行"] F --> G["KILL、GLINEなどの
サーバーコマンドが実行される"]

攻撃者に何ができますか?

一般ユーザーが、サーバーまたはIRCOpだけが実行すべきコマンドを実行できます。他のユーザーやチャンネルに対するKILLやGLINEも含まれます。

影響には次の条件がすべて必要です。

  • サーバーが影響を受けるバージョンを実行し、labeled-responseを読み込んでいる。
  • ネットワークに2台以上のサーバーがリンクされ、ピアが注入された行をサーバーコマンドとして解析する。
  • 攻撃者が一般ユーザーとして接続できる。サーバーのアカウントもオペレーター権限も不要です。
  • 攻撃者がIRCv3タグを送信できる。生のソケットやスクリプトのクライアントで十分です。

ベンダーはこの問題をUnrealIRCdで15年間で最も深刻と説明しています。CISAのSSVCレコードは技術的影響をtotal、自動化可能性をyesとしています。CVEレコードは整合性への影響のみを評価しています(C:N/I:H/A:N)。可用性と機密性への影響は、攻撃者が実行するコマンドによります。

修正が機能する理由

修正は、空白、セミコロン、バックスラッシュ、復帰文字、改行のいずれかを含むlabelを拒否します。値が応答の構造を変えることはなくなりました。

修正コミット05b5f5fdc8bbはlabeled_response_mtag_is_ok()に検査を1つ追加します。

 int labeled_response_mtag_is_ok(Client *client, const char *name, const char *value)
 {
    if (BadPtr(value))
        return 0;

+   if (strpbrk(value, " ;\\\r\n"))
+       return 0;
+
    if (IsServer(client))
        return 1;

検査はサーバーの分岐より前に実行されるため、リンクされたサーバーから届くタグにも適用されます。currentcmd.labelを使うすべての応答経路は、タグ区切り、パラメーター区切り、改行を含まない値を受け取ります。これによりバッチの開始、ACK応答、単一応答バッファーが対象になります。

ベンダーは同じ変更を6.2.7.1とホットパッチのバンドルに含めました。このCVEに対する修正は完全です。リリースの他の8件は別の変更です。

侵害されたかどうかを確認するには?

侵害の指標は公開されていません。CISAは悪用が進行中としていますが、ベンダーもCISAも、このCVEのリクエストパターン、被害者数、ログ署名を公開していません。

まずパッチの状態を確認します。未修正のサーバーが露出そのものです。

./unrealircd module-status | grep labeled-response
./unrealircd version

次に、ベンダーが挙げる影響をサーバーログで確認します。

  • IRCOpや既知のサーバーリンクが発行していないKILL、GLINE、SVS*などのサーバーコマンド。
  • 同じ時刻のサーバーリンクの切断やプロトコルエラー。
  • オペレーターが行っていない設定やバンリストの変更。

UnrealIRCdのログはビルドとログレベルによって異なり、ブロックされた試行は痕跡を残さない場合があります。SPAMFILTERはlabelをブロックしたときに対応を記録します。フィルターが有効だった場合は、そのブロックメッセージを検索してください。

年表

  • 2026-11-04:修正コミット05b5f5fdc8bbが作成される。
  • 2026-11-07:UnrealIRCdが6.2.7.1とホットパッチbundle-20261107を15:00 UTCに公開する。
  • 2026-11-08:CVEレコードが公開され、ベンダーがoss-securityメーリングリストへ勧告を投稿する。
  • 2026-11-12:CISAのSSVCレコードが悪用の進行中を示す。
  • 2026-11-13:CISAがCVE-2026-114713をKEVカタログへ追加する。期限は2026-11-16。

修正からCISA KEVまで9日
図1:修正は2026年11月4日に作成され、リリースは11月7日に続きました。CISAは11月12日に悪用の進行中を示し、11月13日にCVEをKEVへ追加しました。出典:UnrealIRCdの勧告、CVEレコード、CISA KEV、2026年11月14日確認

よくある質問

CVE-2026-114713は実環境で悪用されていますか?

はい。CISAは2026年11月13日にKEVカタログへ追加し、SSVCレコードは11月12日時点で悪用が進行中としています。ベンダーの勧告は影響を説明していますが、キャンペーンや被害者は挙げていません。

SPAMFILTERの回避策は問題を完全に修正しますか?

いいえ。ネットワーク上のすべてのサーバーが6.0.4以降の場合にのみ、重大なlabelインジェクションをブロックします。6.2.7.1の他の8件は修正せず、一時的なフィルターであってパッチではありません。

UnrealIRCd 5を実行しています。どうすればよいですか?

UnrealIRCd 5は2023-07-01に保守終了しており、重大な問題の影響を受けます。各サーバーにblacklist-module "labeled-response";を追加して再起動し、その後6.2.7.1へ移行してください。ベンダーは他の保守終了バージョンを確認しておらず、影響を受ける可能性が高いと述べています。

単一のサーバーは影響を受けますか?

CVEは2台以上のサーバーがリンクされたネットワークでのサーバー権限によるコマンド実行を説明しています。単一のリンクされていないサーバーは注入された行をピアへ中継しないため、その経路は当てはまりません。それでも更新してください。6.2.7.1は他の8件も修正します。

ホットパッチを確認するには?

./unrealircd module-status | grep labeled-responseを実行します。行はlabeled-response 5.0-hot-patch-bundle-20261107またはlabeled-response 6.2.7.1である必要があります。単なるlabeled-response 5.0はパッチ未適用を意味します。

参考資料

  • CVE-2026-114713レコード、MITRE CNA、2026-11-08公開、CVSS v3.1 8.6、CWE-140、CISA ADPのSSVCブロック:https://www.cve.org/CVERecord?id=CVE-2026-114713(2026年11月14日確認)
  • UnrealIRCd「UnrealIRCd 6.2.7.1 released and hot-patch to fix 9 security issues」、2026年11月7日、勧告本文と問題一覧:https://www.openwall.com/lists/oss-security/2026/11/08/1(2026年11月14日確認)
  • UnrealIRCdニュース一覧、リリース日、38%の市場シェア、ホットパッチの手順:https://www.unrealircd.org/index/news(2026年11月14日確認)
  • 修正コミット05b5f5fdc8bb「Fix CRITICAL issue where anyone could execute commands as server/IRCOp」、2026年11月4日:https://github.com/unrealircd/unrealircd/commit/05b5f5fdc8bb(2026年11月14日確認)
  • UnrealIRCd 6.2.7のソース、src/modules/labeled-response.cの未検証のlabelコピーと応答構築:https://github.com/unrealircd/unrealircd/blob/59546a20f6c9b0dae1646727acf74b4b744e9b09/src/modules/labeled-response.c(2026年11月14日確認)
  • UnrealIRCdの既定モジュール一覧、labeled-responseが既定で読み込まれる:https://github.com/unrealircd/unrealircd/blob/unreal60_dev/doc/conf/modules.default.conf(2026年11月14日確認)
  • CISA Known Exploited Vulnerabilitiesカタログ、CVE-2026-114713は2026-11-13追加、期限2026-11-16:https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json(2026年11月14日確認)