Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pfsense-limiter-number — pfSense CE 2.9.0-DEVELOPMENT - 高 - リモート - RCE - limiter number dnctl | Kitploit
ツール/GitHubGitHub/abraxas/pfsense-limiter-number
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロールレッドチーミングラボと実践
GitHubabraxas/pfsense-limiter-number

pfsense-limiter-number

pfSense CE 2.9.0-DEVELOPMENT - 高 - リモート - RCE - limiter number dnctl

リポジトリを見る
11148日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - pfsense-limiter-number

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-limiter-number

解説記事: https://abraxaslabs.tech/research/pfsense-limiter-number

pfsense-limiter-number

クラス: RCE 到達範囲: リモート

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

Traffic Shaper の Limiter は、編集時に隠しフィールド number を出力する。作成時はその番号を dnpipe_find_nextnumber() で上書きする。編集時は上書きしない。validate_input は number を一切検証しない。GetNumber() はクォートされずに dnctl pipe|sched|queue delete へ連結される。PHP の mwexec は /bin/sh -c である。必要な権限は page-firewall-trafficshaper-limiter であり、Diagnostics: Command ではない。

IDCVE 未割当
クラスRCE
到達範囲リモート(認証済み WebGUI)
CWECWE-78
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
製品pfSense CE
影響対象2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) の limiter number
認証page-firewall-trafficshaper-limiter を持つ WebGUI セッション
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

公開 master の 9363ac5 に固定した。ラボは固定した ReadConfig / SetNumber / delete_queue による PHP ガジェットである。ループバック 127.0.0.1:18840。

攻撃者が実行できること

手法シンク権限
limiter を作成し、攻撃者の number を付けて save を POST し、その後その limiter を削除するmwexec("/sbin/dnctl pipe delete " . $this->GetNumber()) (shaper.inc:3820)完全性(ラボ実証済み): root シェル。ラボでは edit-delete が証跡を書き込んだ(edit-delete-exec=yes)。作成時の上書きと apply-file 経路は何も書き込まなかった。
同じ root シェルホストのファイルシステム偵察(推定): config.xml、鍵。
root シェル、または攻撃者の番号による dnctldummynet可用性(推定): limiter / dummynet の妨害。

ラボ実証済みと推定の区別: 作成時の上書き(証跡なし)、apply-file 経路(ファイルに対する dnctl、証跡なし)、edit-delete の実行(証跡あり)はラボで実証済みである。ファイルシステムの偵察は root 権限の PHP-FPM から推定したものである。

必要条件: page-firewall-trafficshaper-limiter を持つ WebGUI セッション。save の POST には CSRF が必要。削除は GET の action=delete である。

閉じたままの隣接面

面ラボ
作成経路dnpipe_find_nextnumber() が上書き、create-overwrites=yes
適用経路/tmp/rules.limiter に対する dnctl、ファイル名はユーザー制御不可、apply-file=yes
limiter 名の文字集合^[a-zA-Z0-9_-]+$
未認証閉じている
Diagnostics: Command別途付与されない限り閉じたまま

/tmp/rules.limiter に入る AQM パラメータは追加の dummynet 言語であり、この残存問題とは別である。

ラボ

cd lab
./run.sh

ループバック 127.0.0.1:18840。Compose プロジェクト pfsense-limiter-number。イメージタグ pfsense-limiter-number:2.9.0-dev。ウィットネス PFSENSE-LIMITER-NUMBER-WITNESS。最終行:

SUCCESS PFSENSE-LIMITER-NUMBER create-overwrites=yes apply-file=yes edit-delete-exec=yes PFSENSE-LIMITER-NUMBER-WITNESS

修正

すべての dnctl の前に GetNumber() を int キャストする。編集時の POST number を無視するか、稼働中の dummynet id に対して範囲チェックする。作成はすでに上書きするため、編集も同様にする。

参考資料

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • shaper.inc delete_queue / GetNumber
  • firewall_shaper_vinterface.php
  • CWE-78
ツールをダウンロード