当社のAIエンジンNeutronが、UCバークレーのCyberGymベンチマークで97.1%のスコアを記録しました。 詳細を見る

ディープダイブ

ディープダイブ

rConfig:Redisジョブキュー経由のRCE(CVE-2026-124079)

rConfig Core 8.0.0から8.2.18とPro 8.4.1未満では、Redisジョブキューを介して攻撃者がコードを実行できます。8.2.19と8.4.1で修正されました。

要点

  • rConfig Core 8.0.0から8.2.18、およびPro 8.4.1未満は、RedisでバックエンドされたHorizonキューのジョブをデシリアライズするため、細工したジョブがワーカーとしてコードを実行できます。VulnCheckは2026-11-09にCVE-2026-124079を公開しました。
  • 直接攻撃には、パスワードなしで到達できるRedisが必要です。ログイン済みのユーザーは、デバイスをrConfigサーバーのループバックアドレスに向けて同じキューに書き込むこともできます。これはベンダーのアドバイザリが説明している経路です。
  • VulnCheckはCVSS v3.1 9.8 Critical、CVSS v4.0 9.3 Criticalと評価しています。悪用は確認されておらず、2026-11-09時点でCISA KEVには登録されていません。
  • Coreを8.2.19以降に、Proを8.4.1以降にアップグレードしてください。アップグレード後に保存済みのシークレットをローテーションしてください。「修正方法」では暫定対策も説明します。

影響を受けますか?

次のすべてを満たす場合に影響を受けます。

  • rConfig Core 8.0.0から8.2.18、またはrConfig Pro 8.4.1未満を実行している。
  • デプロイがLaravel Horizonを伴うRedisキュードライバーを使用している。これはこれらのバージョンの既定値です。
  • Redisが信頼できないネットワークからパスワードなしで到達できる、または攻撃者がログインしてデバイスを追加・編集できる。

ベンダーはCore 8.2.18を影響を受けるバージョンに含めています。8.2.18ではTaskDownloadRunジョブに許可リストが追加されましたが、キュー自体は認証なしのままで、デバイスは引き続きサーバーのループバックアドレスを指せました。Core 8.2.19が、ベンダーが修正済みとする最初のリリースです。

ブランチ 影響を受けるバージョン 修正バージョン
Core 8.x 8.0.0から8.2.18 8.2.19(8.2.20が最新)
Pro 8.4.1未満 8.4.1(8.4.2は近日公開予定)

インストール済みバージョンを確認します。

cat /var/www/html/rconfig/VERSION
# Docker:
docker exec rconfig_app cat /var/www/html/rconfig/VERSION

Redisがパスワードを要求するか確認します。rConfigホストで次を実行します。

grep -E '^REDIS_(HOST|PORT|PASSWORD)=' /var/www/html/rconfig/.env
redis-cli -h 127.0.0.1 -p 6379 ping

PONGはRedisがパスワードなしで要求を受け付けたことを意味します。NOAUTHはパスワードが必要なことを意味します。応答がPONGで、ポート6379が信頼できないネットワークから到達できる場合、直接経路は開いています。

サーバー自体を指すデバイスを探します。

mysql -u rconfig_user -p rconfig -e "
SELECT id, device_name, device_ip, device_port_override
FROM devices
WHERE device_ip IN ('127.0.0.1','localhost','::1','0.0.0.0')
   OR device_ip LIKE '127.%'
   OR device_ip LIKE '::ffff:127.%';"

修正方法

Coreを8.2.19以降にアップグレードしてください。バージョン8.2.20が最新で、テーブルエクスポートによる認証情報の漏えい、rCFG-SA-2026-10も修正します。Proユーザーは8.4.1以降にアップグレードしてください。ベンダーは8.4.2が近日公開予定だと述べています。

  1. 8.2.18以前からアップグレードするCoreインストールでは、ベンダーの初回アップグレード手順を実行します。
cd /var/www/html/rconfig
git pull
sudo ./update.sh --no-pull
  1. 最初のアップグレード後は、次の単一コマンドでアップグレードします。
sudo ./update.sh
  1. Dockerでは、.envでイメージバージョンを固定し、イメージを取得してコンテナを再作成します。
sed -i 's/^RCONFIG_VERSION=.*/RCONFIG_VERSION=8.2.20/' .env
docker compose pull
docker compose up -d

8.2.19以降のイメージは、アプリケーションコンテナ内でRedisを実行し、初回起動時にパスワードを生成します。

  1. Proでは、ベンダーのProアップグレード手順に従って8.4.1以降にしてください。

すぐにアップグレードできない場合は、8.2.18で再現できる2つの制御を適用します。まず、Redisにパスワードを設定します。8.2.19のコマンドはphp artisan rconfig:redis-secureですが、8.2.18には存在しません。8.2.18では、ベンダーのRedisSecurityServiceを参考に同じ制御を手動で適用します。

SECRET=$(openssl rand -hex 32)
redis-cli -h 127.0.0.1 -p 6379 CONFIG SET requirepass "$SECRET"
redis-cli -h 127.0.0.1 -p 6379 -a "$SECRET" --no-auth-warning CONFIG REWRITE
sed -i "s/^REDIS_PASSWORD=.*/REDIS_PASSWORD=$SECRET/" /var/www/html/rconfig/.env
cd /var/www/html/rconfig
php artisan config:clear
php artisan horizon:terminate

horizon:terminateシグナルにより、Supervisorが新しいパスワードでHorizonを再起動します。スケジューラーを別に実行している場合は、それも再起動してください。

次に、アップグレードするまでデバイスの編集を信頼できる管理者に限定します。8.2.18のUIは引き続き127.0.0.1やlocalhostのデバイスIPを受け付けるため、デバイスを追加・編集できるアカウントにはループバック経路が開いたままです。Redisをループバックまたはプライベートネットワークにバインドし、ポート6379をファイアウォールで制限してください。これにより直接経路は減りますが、ループバック経路は閉じません。

アップグレード後、ワーカーが読めたシークレットをローテーションします。ベンダーのアドバイザリは、REST APIトークン、デバイスとenableのパスワード、SMTP、LDAP、RADIUSのシークレットを挙げています。認識できないアカウントがないかユーザー一覧も確認してください。

根本原因は何ですか?

キューはLaravel Horizonを介してRedisでバックエンドされ、Redisには既定でパスワードがありませんでした。LaravelのCallQueuedHandlerはクラスの許可リストなしでジョブのペイロードをデシリアライズするため、危険なhandle()メソッドを持つクラスを指定したジョブはそのメソッドを実行します。同梱のTaskDownloadRunジョブはそのようなクラスの1つでした。8.2.18より前は、シリアライズされたtask_commandとidフィールドをそのままArtisan::call()に渡していました。

8.2.18タグのconfig/database.php121行目から126行目は、REDIS_PASSWORDからRedisパスワードを設定し、既定値はnullです。

'default' => [
    'host' => env('REDIS_HOST', '127.0.0.1'),
    'password' => env('REDIS_PASSWORD', null),
    'port' => env('REDIS_PORT', 6379),
    'database' => env('REDIS_DB', 0),
],

.env.exampleファイルはREDIS_PASSWORD=nullを同梱しています。そのため、既定のインストールは認証なしでRedisに接続します。

8.2.17タグのapp/Jobs/TaskDownloadRun.php32行目は、シリアライズされたタスクフィールドをArtisanに渡していました。

Artisan::call($this->task['task_command'] . ' ' . $this->task['id']);

ジョブのプロパティはキューのペイロード内を移動します。キューに書き込める攻撃者はtask_commandとidを制御するため、ワーカーはtinkerを含む任意のArtisanコマンドを実行します。8.2.18の変更履歴は修正を次のように記録しています。TaskDownloadRunが自身のシリアライズされたプロパティからコマンドとIDを直接Artisan::call()に渡していたため、細工したキューのペイロードが任意のArtisanコマンドを実行できた、と述べています。

バージョン8.2.18はapp/Jobs/TaskDownloadRun.php58行目から78行目に許可リストを追加しました。

$command = is_string($this->task['task_command'] ?? null) ? $this->task['task_command'] : '';

if (! in_array($command, self::ALLOWED_TASK_COMMANDS, true)) {
    Log::warning('TaskDownloadRun rejected an unexpected task command.', [
        'task_command' => $command,
    ]);

    return;
}

if (! is_numeric($this->task['id'] ?? null)) {
    Log::warning('TaskDownloadRun rejected a non-numeric task id.', [
        'id' => $this->task['id'] ?? null,
    ]);

    return;
}

$taskId = (int) $this->task['id'];

Artisan::call(self::RUN_COMMAND, ['taskid' => [$taskId]]);

この許可リストは、このジョブでの直接のArtisan引数インジェクションを閉じました。キュー自体は閉じず、デバイスがサーバーを指すことも防ぎませんでした。ベンダーは8.2.18を影響を受けるバージョンに含め、残りの経路を8.2.19で修正しました。

2つ目の経路はデバイスのターゲットです。8.2.19タグのapp/Rules/DeviceIpIsValid.php29行目から36行目は、サーバーを指すデバイスを拒否します。

if ($this->pointsAtThisServer($value)) {
    $fail('The :attribute cannot point at this rConfig server (loopback, localhost or its Redis host).');
}

/**
 * A device is something rConfig connects out to from its own server, so a device on
 * loopback lets device editors make rConfig write into its own Redis. See RCO-1813.
 */

このルールは、app/Http/Requests/StoreDeviceRequest.php56行目と71行目で、デバイスの作成時と更新時の両方でdevice_ipに適用されます。Telnet接続はfsockopen($this->hostname, $this->port)で生のTCPソケットを開き、Send::sendString()が$command . "\r\n"を書き込みます。したがって、127.0.0.1のポート6379を指すデバイスは、デバイスのダウンロードをRedisへの生のTCP書き込みに変えます。

ベンダーの修正コードはapp/Services/Utilities/RedisSecurityService.phpでリスクを述べています。CoreはキューをデシリアライズするHorizonワーカーを実行するため、ローカルプロセスが書き込める認証なしのRedisはコード実行経路になる、と述べています。

ネイティブインストールでは、キューワーカーがrootで実行されていたため影響が大きくなりました。8.2.18タグのhorizon_supervisor.iniはuser=rootを設定しています。

[program:horizon]
process_name=%(program_name)s
command=php /var/www/html/rconfig/artisan horizon
autostart=true
autorestart=true
user=root

8.2.19リリースはこれをuser=RCONFIG_WEB_USERに変更するため、将来のキューの欠陥が完全なシステム権限で実行されることはありません。

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

  1. キューに到達します。Redisがパスワードなしで到達できる場合、攻撃者はポート6379に直接接続します。
  2. Redisがループバックのみの場合はデバイス経路を使います。攻撃者はログインし、device_ipを127.0.0.1、localhost、::1、または0.0.0.0に、device_port_overrideを6379に設定したデバイスを作成または編集します。
  3. ジョブを書き込みます。デバイス接続はターゲットへのTCPソケットを開き、コマンド文字列を書き込みます。Redisを指す同じソケットは、シリアライズされたLaravelジョブをHorizonキューにプッシュするRedisコマンドを受け付けます。
  4. ワーカーがデシリアライズします。HorizonのCallQueuedHandlerがペイロードをデシリアライズし、ジョブのhandle()メソッドを呼び出します。ペイロードはTaskDownloadRunまたは危険なハンドラーを持つ別のクラスを指定できます。
  5. ジョブが実行されます。8.2.18より前のリリースでは、TaskDownloadRunが攻撃者のArtisanコマンドを実行します。8.2.18では、このジョブの許可リストが直接コマンドをブロックしますが、キューは他のクラスを引き続きデシリアライズし、ループバック経路も残ります。同梱のlaravel/tinkerパッケージがArtisanコマンドを任意のPHPおよびOSコマンドに変えます。
  6. 攻撃者が永続化します。CVEの説明は、storage/app/publicのWebシェル、データベースの認証情報、保存されたデバイスの認証情報、APIトークンを記録しています。

2026-11-09時点で、アドバイザリやCVEレコードからリンクされた公開の概念実証はありません。これらの手順は情報源が記録した仕組みを説明するものであり、動作するエクスプロイトではありません。

攻撃の流れは?

Redisキューに直接またはループバックデバイスを介して到達できる攻撃者が、Horizonがデシリアライズしてワーカーとして実行するシリアライズ済みジョブを書き込みます。

flowchart LR A["攻撃者"] --> B["Redisに到達
パスワード確認なし"] B --> C["シリアライズ済みジョブを
Horizonキューにプッシュ"] C --> D["CallQueuedHandler
クラスの許可リストなし"] D --> E["TaskDownloadRunまたはtinker
Artisanコマンドを実行"] E --> F["ワーカーとして
コード実行"] F --> G["Webシェルと保存された
デバイス認証情報"]

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

攻撃者はワーカーとしてコードを実行します。8.2.18のSupervisorスタブを使用していたネイティブインストールでは、そのユーザーはrootでした。Dockerイメージでは、ワーカーはwww-dataとして実行されます。

影響の条件は次のとおりです。

  • Redisへの直接アクセスには、攻撃者のネットワークからRedisポートに到達でき、パスワードがないことが必要です。
  • ループバック経路には、デバイスを作成または編集できるログイン済みのrConfigアカウントが必要です。
  • キューワーカーがHorizonを実行している必要があります。これは影響を受けるリリースの既定値です。

コード実行により、CVEの説明は次の能力を記録しています。

  • Webで配信されるstorage/app/publicディレクトリに永続的なWebシェルを書き込む。
  • データベースの認証情報とAPIトークンを読む。
  • rConfigが管理するネットワークデバイスの保存済み認証情報を読む。

実際の環境での悪用は確認されておらず、2026-11-09時点でCVEはCISA KEVに登録されていません。

修正が機能する理由

修正はキューへの2つの経路を閉じ、将来のキューの欠陥の影響を減らします。ベンダーのアドバイザリはCore 8.2.19とPro 8.4.1を修正済みリリースとして挙げています。

最初の変更は、サーバーのループバックまたはRedisホストを指すデバイスターゲットを拒否します。8.2.19のdiffは、既存のDeviceIpIsValidルールにpointsAtThisServer()を追加します。

@@ -22,7 +22,48 @@
         // Check if it's a valid IP address or hostname/FQDN
         if (! $this->isValidIpAddress($value) && ! $this->isValidHostname($value)) {
             $fail('The :attribute must be a valid IP address or FQDN/Hostname.');
+
+            return;
+        }
+
+        if ($this->pointsAtThisServer($value)) {
+            $fail('The :attribute cannot point at this rConfig server (loopback, localhost or its Redis host).');
+        }
+    }
+
+    /**
+     * A device is something rConfig connects out to from its own server, so a device on
+     * loopback lets device editors make rConfig write into its own Redis. See RCO-1813.
+     */
+    private function pointsAtThisServer(string $value): bool
+    {
+        $host = strtolower(rtrim($value, '.'));
+
+        if ($host === 'localhost' || str_ends_with($host, '.localhost')) {
+            return true;
+        }
+
+        if ($host === strtolower((string) config('database.redis.default.host'))) {
+            return true;
+        }
+
+        $packed = @inet_pton($host);
+
+        if ($packed === false) {
+            return false;
+        }
+
+        // IPv4-mapped IPv6 (::ffff:127.0.0.1) reaches the same IPv4 address.
+        if (strlen($packed) === 16 && str_starts_with($packed, str_repeat("\0", 10) . "\xff\xff")) {
+            $packed = substr($packed, 12);
+        }
+
+        if (strlen($packed) === 4) {
+            // 127.0.0.0/8 is loopback, and Linux routes a connect to 0.0.0.0 to the local host.
+            return $packed[0] === "\x7f" || $packed === "\0\0\0\0";
+        }
+
+        return $packed === inet_pton('::1') || $packed === inet_pton('::');
     }

このルールはlocalhost、設定されたRedisホスト、127.0.0.0/8のすべてのアドレス、0.0.0.0、::1、::、およびIPv4マップIPv6形式を拒否します。認証済みのループバック経路は閉じられます。

2つ目の変更はRedisにパスワードを設定します。新しいrconfig:redis-secureコマンドはRedisSecurityService::secure()を呼び、32バイトのシークレットを生成して.envにREDIS_PASSWORDを書き込み、稼働中のサーバーにそれを要求します。

$this->makeClient($current)->executeRaw(['CONFIG', 'SET', 'requirepass', $secret]);

その後CONFIG REWRITEを実行してパスワードを再起動後も保持し、キューのコンシューマーを再起動します。インストーラーとDockerエントリポイントは、新規インストールで同じパスワードを生成します。認証なしの直接経路は閉じられます。

3つ目の変更はHorizonとスケジューラーをWebユーザーとして実行します。8.2.19のhorizon_supervisor.iniはuser=rootをuser=RCONFIG_WEB_USERに置き換え、リリースノートはサービスがrootで実行されなくなったと述べています。別のキューの欠陥が現れても、ワーカーは完全なシステム権限を持ちません。

ベンダーのアドバイザリは、このCVEの修正済みリリースとして8.2.19と8.4.1を挙げています。

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

CVE-2026-124079の公開された侵害指標はありません。次の確認は、2つのアクセス経路とCVEの説明が記録する永続化を探します。

Redisが開いているか、キューに何があるかを確認します。

redis-cli -h 127.0.0.1 -p 6379 ping
redis-cli -h 127.0.0.1 -p 6379 --scan --pattern '*horizon*'
redis-cli -h 127.0.0.1 -p 6379 --scan --pattern '*queues*'

Redisがパスワードを要求する場合は、各コマンドに-a "$REDIS_PASSWORD" --no-auth-warningを追加します。スキャンはキューキーを一覧表示します。返されたリストキーをlrange <key> 0 -1で調べます。空のキューは正常です。予期しないクラスを指定するシリアライズ済みペイロードは、調査すべき手がかりです。

サーバーを指すデバイスを探します。

mysql -u rconfig_user -p rconfig -e "
SELECT id, device_name, device_ip, device_port_override, created_at
FROM devices
WHERE device_ip IN ('127.0.0.1','localhost','::1','0.0.0.0')
   OR device_ip LIKE '127.%'
   OR device_ip LIKE '::ffff:127.%';"

公開ストレージディレクトリにPHPのWebシェルがないか探します。

find /var/www/html/rconfig/storage/app/public -type f -name '*.php' -printf '%TY-%Tm-%Td %TH:%TM %p\n'
grep -rIl '<?php' /var/www/html/rconfig/storage/app/public

正当なrConfigのアップロードにstorage/app/publicのPHPファイルは必要ありません。そこにあるPHPファイルは疑わしいものとして扱い、信頼できるバックアップと比較してください。

拒否されたジョブや予期しないArtisanコマンドがないか、アプリケーションログとキューログを確認します。

grep -i 'TaskDownloadRun rejected' /var/www/html/rconfig/storage/logs/laravel.log
grep -iE 'tinker|artisan' /var/www/html/rconfig/storage/logs/laravel.log /var/www/html/rconfig/storage/logs/horizon.log

拒否されたジョブは、誰かが予期しないコマンドを送ったことを意味します。検出結果は侵害ではなく失敗した試行である可能性があります。公開された指標がないため、失敗した試行は痕跡を残さないことがあります。

年表

  • 2026-10-08:rConfig Core 8.2.18がリリースされ、TaskDownloadRunに許可リストが追加されました。Artisan引数インジェクションの部分的な修正です。
  • 2026-10-27:rConfig Core 8.2.19がリリースされ、Redis認証、root以外のキューワーカー、ループバックデバイスのブロックが導入されました。
  • 2026-11-06:rConfigがこのCVEのアドバイザリrCFG-SA-2026-09を公開し、テーブルエクスポートの認証情報漏えいであるrCFG-SA-2026-10も修正するCore 8.2.20をリリースしました。
  • 2026-11-09:VulnCheckがCVE-2026-124079を公開し、komi Sergio Hognaglo(manasse)を発見者としてクレジットしています。

8.2.18の部分修正からCVE公開までの期間は32日でした。

2026年10月8日の8.2.18部分修正から2026年11月9日のCVE公開までの年表
8.2.18の部分修正からCVE-2026-124079まで32日。出典:rConfigの変更履歴、ベンダーのアドバイザリ、CVEレコード、2026年11月9日確認

よくある質問

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

悪用は確認されていません。ベンダーのアドバイザリもVulnCheckのアドバイザリも攻撃を報告しておらず、2026-11-09時点でCVEはCISA KEVに登録されていません。

この欠陥はrConfig Proに影響しますか?

はい。rConfig Pro 8.4.1未満が影響を受け、ベンダーは8.4.1で修正しました。ベンダーは8.4.2が追加の修正を含めて近日公開予定だと述べています。

Core 8.2.18は修正済みですか?

いいえ。Core 8.2.18はTaskDownloadRunジョブに許可リストを追加しましたが、ベンダーは8.2.18を影響を受けるバージョンに含めています。Core 8.2.19が、ベンダーが修正済みとする最初のリリースです。

Redisがループバックのみの場合、インスタンスは露出していますか?

露出している可能性があります。デバイスを追加または編集できるログイン済みユーザーは、そのデバイスを127.0.0.1のポート6379に向けることができ、rConfigはデバイスのターゲットに接続します。デバイス編集が信頼できる管理者に限定され、Redisにパスワードがある場合、露出は低くなりますが、アップグレードが修正です。

どのシークレットをローテーションすべきですか?

REST APIトークン、保存されたデバイスとenableのパスワード、SMTP、LDAP、RADIUSのシークレットをローテーションしてください。ベンダーのアドバイザリは、認識できないアカウントがないかユーザー一覧を確認することも求めています。

ファイアウォールでアップグレードを置き換えられますか?

いいえ。ファイアウォールやRedisをループバックのみにバインドする設定は直接経路を減らしますが、デバイスのループバック経路は閉じません。アップグレードするまでRedisのパスワードを適用し、デバイス編集を制限してください。

Ostorlabで露出したrConfigサーバーを特定する

Ostorlabのアタックサーフェス検出は、インターネットに露出したホストを棚卸しし、到達できるべきでないrConfigインスタンスを見つけて優先的に修正できるようにします。ostorlab.co/product/attacksurface_discoveryから始めてください。

参考資料

  • VulnCheck、「rConfig Core 8.0.0 before 8.2.19 and rConfig Pro before 8.4.1 RCE via Unauthenticated Redis Queue Poisoning」、https://www.vulncheck.com/advisories/rconfig-core-before-and-rconfig-pro-before-rce-via-unauthenticated-redis-queue-poisoning(2026年11月9日確認)。
  • CVE Program、「CVE-2026-124079」、https://www.cve.org/CVERecord?id=CVE-2026-124079(2026年11月9日確認)。
  • rConfig、「Security Advisories & Vulnerability Disclosures」、https://www.rconfig.com/security-advisories(2026年11月9日確認)。
  • rConfig、「rConfig V8 Core 8.2.19」、https://github.com/rconfig/rconfig/releases/tag/core-8.2.19(2026年11月9日確認)。
  • rConfig、「rConfig V8 Core 8.2.20」、https://github.com/rconfig/rconfig/releases/tag/core-8.2.20(2026年11月9日確認)。
  • rConfig、「CHANGELOG.md at core-8.2.19」、https://github.com/rconfig/rconfig/blob/core-8.2.19/CHANGELOG.md(2026年11月9日確認)。
  • rConfig、「app/Jobs/TaskDownloadRun.php at core-8.2.17」、https://github.com/rconfig/rconfig/blob/core-8.2.17/app/Jobs/TaskDownloadRun.php(2026年11月9日確認)。
  • rConfig、「app/Jobs/TaskDownloadRun.php at core-8.2.18」、https://github.com/rconfig/rconfig/blob/core-8.2.18/app/Jobs/TaskDownloadRun.php(2026年11月9日確認)。
  • rConfig、「app/Rules/DeviceIpIsValid.php at core-8.2.19」、https://github.com/rconfig/rconfig/blob/core-8.2.19/app/Rules/DeviceIpIsValid.php(2026年11月9日確認)。
  • rConfig、「app/Http/Requests/StoreDeviceRequest.php at core-8.2.19」、https://github.com/rconfig/rconfig/blob/core-8.2.19/app/Http/Requests/StoreDeviceRequest.php(2026年11月9日確認)。
  • rConfig、「config/database.php at core-8.2.18」、https://github.com/rconfig/rconfig/blob/core-8.2.18/config/database.php(2026年11月9日確認)。
  • rConfig、「app/Services/Utilities/RedisSecurityService.php at core-8.2.19」、https://github.com/rconfig/rconfig/blob/core-8.2.19/app/Services/Utilities/RedisSecurityService.php(2026年11月9日確認)。
  • rConfig、「horizon_supervisor.ini at core-8.2.18」、https://github.com/rconfig/rconfig/blob/core-8.2.18/horizon_supervisor.ini(2026年11月9日確認)。
  • rConfig、「horizon_supervisor.ini at core-8.2.19」、https://github.com/rconfig/rconfig/blob/core-8.2.19/horizon_supervisor.ini(2026年11月9日確認)。
  • rConfig、「app/Http/Controllers/Connections/Telnet/Connect.php at core-8.2.18」、https://github.com/rconfig/rconfig/blob/core-8.2.18/app/Http/Controllers/Connections/Telnet/Connect.php(2026年11月9日確認)。
  • rConfig、「app/Http/Controllers/Connections/Telnet/Send.php at core-8.2.18」、https://github.com/rconfig/rconfig/blob/core-8.2.18/app/Http/Controllers/Connections/Telnet/Send.php(2026年11月9日確認)。
  • CISA、「Known Exploited Vulnerabilities Catalog」、https://www.cisa.gov/known-exploited-vulnerabilities-catalog(2026年11月9日確認)。
  • rConfig、「rconfig/rconfig on GitHub」、https://github.com/rconfig/rconfig(2026年11月9日確認)。
  • Docker Hub、「rconfig/rconfig」、https://hub.docker.com/r/rconfig/rconfig(2026年11月9日確認)。