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

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. 護衛艦いなづまの艦長、資格のない隊員を特定秘密取扱職員に指名し懲戒処分

    護衛艦いなづまの艦長、資格のない隊員を特定秘密取扱職員に指名し懲戒処分

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

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

  3. 「意識を高揚させよう」と思い特定秘密の情報を知るべき立場にない隊員に特定秘密の情報を漏らす、懲戒処分に

    「意識を高揚させよう」と思い特定秘密の情報を知るべき立場にない隊員に特定秘密の情報を漏らす、懲戒処分に

  4. 社内不正 1位 情報持ち出し・2位 横領・3位 労働問題 ~ 被害企業 230 社調査

    社内不正 1位 情報持ち出し・2位 横領・3位 労働問題 ~ 被害企業 230 社調査

  5. メディキットホームページに不正アクセス、閲覧障害に

    メディキットホームページに不正アクセス、閲覧障害に

  6. デジサートのEV証明書の記載フォーマットに誤り、再発行とサーバへの入れ替え呼びかけ

    デジサートのEV証明書の記載フォーマットに誤り、再発行とサーバへの入れ替え呼びかけ

  7. 今日もどこかで情報漏えい 第23回「2024年3月の情報漏えい」なめるなという決意 ここまでやるという矜恃

    今日もどこかで情報漏えい 第23回「2024年3月の情報漏えい」なめるなという決意 ここまでやるという矜恃

  8. Proofpoint Blog 36回「身代金を払わない結果 日本のランサムウェア感染率減少? 感染率と身代金支払率 15 ヶ国調査 2024」

    Proofpoint Blog 36回「身代金を払わない結果 日本のランサムウェア感染率減少? 感染率と身代金支払率 15 ヶ国調査 2024」

  9. 日本は悪意ある内部犯行による漏えいが 12 ヶ国中最小、プルーフポイント「Data Loss Landscape 2024(情報漏えいの全容)」日本語版

    日本は悪意ある内部犯行による漏えいが 12 ヶ国中最小、プルーフポイント「Data Loss Landscape 2024(情報漏えいの全容)」日本語版

  10. 経団連、個人情報保護法に基づく漏えい報告や本人通知にリソースを割く現状を問題視

    経団連、個人情報保護法に基づく漏えい報告や本人通知にリソースを割く現状を問題視

ランキングをもっと見る