nginx の Chunked Transfer Coding 処理におけるスタックバッファーオーバーフローの脆弱性(Scan Tech Report) | ScanNetSecurity
2024.05.16(木)

nginx の Chunked Transfer Coding 処理におけるスタックバッファーオーバーフローの脆弱性(Scan Tech Report)

nginx の Chunked Transfer Coding 処理には、chunk_size の取り扱いに起因したスタックバッファオーバーフローの脆弱性が存在します。

脆弱性と脅威 エクスプロイト
1.概要
nginx の Chunked Transfer Coding 処理には、chunk_size の取り扱いに起因したスタックバッファオーバーフローの脆弱性が存在します。
リモートの第三者に利用されると、Web サーバを DoS 状態とされる可能性、最悪の場合には任意のコードを実行される可能性があります。
nginx の Web サイトで配布されている Ubuntu/Debian 向けのバイナリパッケージを対象に任意のコードを実行する実証コードも公開されていることから、影響を受けるバージョンの nginx を利用する環境では、可能な限り以下に記載する対策を実施することを推奨します。


2.深刻度(CVSS)
6.4
http://nvd.nist.gov/cvss.cfm?name=&vector=(AV:N/AC:L/Au:N/C:N/I:P/A:P)&version=2


3.影響を受けるソフトウェア ※
nginx 1.3.9-1.4.0

※ 一部の Linux ディストリビューションもこの脆弱性の影響を受けます。


4.解説
nginx は ウェブサーバ・ソフトウェアです。この nginx の ngx_http_parse.cには、HTTP におけるデータ分割送信方式 Chunked Transfer Coding(*1) 処理に関連する ngx_http_parse_chunked() 関数があります。
この ngx_http_parse_chunked() 関数には、Chunked Transfer Coding における分割したデータサイズ chunk_size の取り扱いに起因したスタックバッファオーバーフローの脆弱性が存在します。

VNSECURITY の情報(*2)によると、64 bit 符号あり整数型(off_t)に格納された chunk_size が 32 bit 符号なし整数型(size_t)にキャスト処理され、最終的に 4096 バイトの buffer への書き込みサイズに指定されます。
64 bit 符号あり整数型における負数を chunk_size に指定しておくと、符号なしへのキャスト処理(signed から unsigned)により 4096 以上の整数となります。以上のことから、64 bit 符号あり整数型の負数を chunk_size に指定することで、バッファオーバーフローが発生します。

この脆弱性をリモートの第三者に利用されると、nginx の CPU 使用率を異常に高めることで Web サーバを DoS 状態とされる可能性、最悪の場合には任意のコードを実行される可能性があります。実際 Metasploit Framework のリボジトリにて、Ubuntu/Debian 向けバイナリパッケージ(バージョン 1.4.0)(*3)で任意のコード実行に成功した実証コードが公開されています(*4)。

(*1): http://tools.ietf.org/html/rfc2616#section-3.6.1
(*2): http://www.vnsecurity.net/2013/05/analysis-of-nginx-cve-2013-2028/
(*3): nginx の Web サイトで配布されていましたが、現在は 1.4.0 は配布されていません(1.4.1 が配布されています)。
(*4): https://community.rapid7.com/community/metasploit/blog/2013/05/30/weekly-update


5.対策
以下の Web サイトを参考に nginx 1.4.1/1.5.0 以降を入手しアップデートする、あるいは修正パッチを入手し適用することで、この脆弱性を解消することが可能です。

nginx: download
http://nginx.org/en/download.html
nginx security advisories: The patch
http://nginx.org/download/patch.2013.chunked.txt

また、Linux ディストリビューションにおいては、ディストリビューションごとに影響の有無が変わります。それぞれのディストリビューションに関連する情報を確認してください。

・Red Hat(Fedora)
Red Hat Bugzilla Bug 960605
https://bugzilla.redhat.com/show_bug.cgi?id=960605
影響を受けない。

・Ubuntu
CVE-2013-2028
http://people.canonical.com/~ubuntu-security/cve/2013/CVE-2013-2028.html
影響を受けない。

・Debian
CVE-2013-2028
https://security-tracker.debian.org/tracker/CVE-2013-2028
影響を受けない。

・Gentoo
Gentoo's Bugzilla Bug 468870
https://bugs.gentoo.org/show_bug.cgi?id=CVE-2013-2028
影響を受ける。


6.ソースコード
(Web非公開)

(執筆:株式会社ラック サイバー脅威分析センター

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html

《吉澤 亨史( Kouji Yoshizawa )》

関連記事

特集

PageTop

アクセスランキング

  1. 範を示す ~ MITRE がサイバー攻撃被害公表

    範を示す ~ MITRE がサイバー攻撃被害公表

  2. 脆弱な DMARC セキュリティ・ポリシーを悪用、北朝鮮スピアフィッシング詐欺

    脆弱な DMARC セキュリティ・ポリシーを悪用、北朝鮮スピアフィッシング詐欺

  3. 東急のネットワークに不正アクセス、連結子会社のファイルサーバでデータ読み出される

    東急のネットワークに不正アクセス、連結子会社のファイルサーバでデータ読み出される

  4. 東京メトロ社員が遺失者になりすまし、現金総額 235,458円 ほか遺失物着服

    東京メトロ社員が遺失者になりすまし、現金総額 235,458円 ほか遺失物着服

  5. 「マルカワみそ公式サイト」に不正アクセス、カード情報に加えログイン用パスワードも漏えい

    「マルカワみそ公式サイト」に不正アクセス、カード情報に加えログイン用パスワードも漏えい

  6. ランサムウェア被害の原因はスターティア社の UTM テストアカウント削除忘れ

    ランサムウェア被害の原因はスターティア社の UTM テストアカウント削除忘れ

  7. TwoFive メールセキュリティ Blog 第14回「いよいよ6月、メルマガが届かなくなる…!? ~ メルマガ配信している皆さん ワンクリック購読解除の List Unsubscribe対応は済んでますか?」

    TwoFive メールセキュリティ Blog 第14回「いよいよ6月、メルマガが届かなくなる…!? ~ メルマガ配信している皆さん ワンクリック購読解除の List Unsubscribe対応は済んでますか?」

  8. テレ東「ヤギと大悟」公式 X アカウントが乗っ取り被害、意図しないポストが数件行われる

    テレ東「ヤギと大悟」公式 X アカウントが乗っ取り被害、意図しないポストが数件行われる

  9. ランサムウェア「LockBit」被疑者の資産を凍結し起訴

    ランサムウェア「LockBit」被疑者の資産を凍結し起訴

  10. 豊島のサーバにランサムウェア攻撃、復旧済みで業務に影響なし

    豊島のサーバにランサムウェア攻撃、復旧済みで業務に影響なし

ランキングをもっと見る