公開日:2020/03/05 最終更新日:2021/02/17

JVNVU#99700555
pppd におけるバッファオーバーフローの脆弱性

概要

pppd (Point to Point Protocol Daemon) には、バッファオーバーフローの脆弱性が存在します。

影響を受けるシステム

  • pppd 2.4.2 から 2.4.8 まで

詳細情報

PPP はダイヤルアップでのインターネット接続に用いられるプロトコルであり、認証プロトコルとして Extensible Authentication Protocol (EAP) サポートしています。Paul's PPP Package の pppd には、EAP パケットの処理時に入力データのサイズを適切に検証していないことに起因してバッファオーバーフロー (CWE-120) が発生する脆弱性が存在します。

本脆弱性は EAP パケットのパース処理を行う eap.c 中の eap_request()eap_response() 関数に存在します。これらの関数には入力データに含まれるデータ長の値を検証する処理が含まれますが、pppd にはこの検証処理に不備があり、任意の長さのデータをスタックにコピーさせることによりスタックバッファオーバーフローを発生させることが可能です。

想定される影響

細工された EAP パケットを処理することで、任意のコードを実行されたり、サービス運用妨害 (DoS) 攻撃を受けたりする可能性があります。

また、pppd は eap_input() 関数内の処理にも不備があり、Link Control Protocol (LCP) により本来ならば EAP を用いることができないような場合にも EAP パケットを受け付けてしまうことがあります。そのため、EAP の設定を無効にしている場合も本脆弱性の影響を受ける可能性があります。

pppd はオープンソースのTCP/IPプロトコルスタック Lightweight IP (lwIP) でも採用されています。デフォルトの状態では EAP が有効ではありませんが、コンパイル時に EAP を有効にしている場合は本脆弱性の影響を受ける可能性があります。

対策方法

パッチを適用する
pppd 開発者により本脆弱性に対する以下の修正パッチが提供されています。
https://github.com/paulusmack/ppp/commit/8d7970b8f3db727fe798b65f3377fe6787575426

EAP を有効にした lwIP に対しては、下記の修正パッチが提供されています。
https://git.savannah.nongnu.org/cgit/lwip.git/commit/src/netif/ppp/eap.c?id=2ee3cbe69c6d2805e64e7cac2a1c1706e49ffd86

ベンダ情報

ベンダ ステータス ステータス
最終更新日
ベンダの告知ページ
NTT-CERT 該当製品無し 2020/09/30
オムロン株式会社 脆弱性情報提供済み 2020/03/05
サイバートラスト株式会社 該当製品あり 2020/03/09
ジェイティ エンジニアリング株式会社 該当製品無し 2020/04/10
センチュリー・システムズ株式会社 該当製品無し 2020/03/12
ソニー株式会社 脆弱性情報提供済み 2020/03/05
ビー・ユー・ジーDMG森精機株式会社 該当製品無し 2020/03/05
古河電気工業株式会社 該当製品無し 2020/03/05
富士通株式会社 該当製品あり 2020/06/15
日本電気株式会社 該当製品あり 2020/05/25
東芝デベロップメントエンジニアリング株式会社 該当製品無し 2020/03/06
株式会社インターネットイニシアティブ 該当製品あり 2020/03/10 株式会社インターネットイニシアティブ の告知ページ
株式会社バッファロー 脆弱性情報提供済み 2020/03/05
株式会社リコー 該当製品無し 2021/02/17
ベンダ リンク
paulusmack/ppp pppd: Fix bounds check in EAP code
lwIP PPP, EAP: fix bounds check in EAP code
Debian Project CVE-2020-8597
RedHat CVE-2020-8597

参考情報

  1. CERT/CC Vulnerability Note VU#782301
    pppd vulnerable to buffer overflow due to a flaw in EAP packet processing
  2. CERT/CC PoC-Exploits
    cve-2020-8597-pptpd
  3. IOActive Security Advisory
    pppd Vulnerable to Buffer Overflow Due to a Flaw in EAP Packet Processing (CVE-2020-8597)
  4. GitHub Security Lab
    CERT partners with GitHub Security Lab for automated remediation of CVE-2020-8597
  5. CERT/CC Blog
    Security Automation Begins at the Source Code

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

CVSS v3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
基本値: 9.8
攻撃元区分(AV) 物理 (P) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 低 (L)
必要な特権レベル(PR) 高 (H) 低 (L) 不要 (N)
ユーザ関与レベル(UI) 要 (R) 不要 (N)
スコープ(S) 変更なし (U) 変更あり (C)
機密性への影響(C) なし (N) 低 (L) 高 (H)
完全性への影響(I) なし (N) 低 (L) 高 (H)
可用性への影響(A) なし (N) 低 (L) 高 (H)
CVSS v2 AV:N/AC:M/Au:N/C:C/I:C/A:C
基本値: 9.3
攻撃元区分(AV) ローカル (L) 隣接 (A) ネットワーク (N)
攻撃条件の複雑さ(AC) 高 (H) 中 (M) 低 (L)
攻撃前の認証要否(Au) 複数 (M) 単一 (S) 不要 (N)
機密性への影響(C) なし (N) 部分的 (P) 全面的 (C)
完全性への影響(I) なし (N) 部分的 (P) 全面的 (C)
可用性への影響(A) なし (N) 部分的 (P) 全面的 (C)

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE CVE-2020-8597
JVN iPedia

更新履歴

2020/03/06
東芝デベロップメントエンジニアリング株式会社のベンダステータスが更新されました
2020/03/09
サイバートラスト株式会社のベンダステータスが更新されました
2020/03/10
株式会社インターネットイニシアティブのベンダステータスが更新されました
2020/03/11
富士通株式会社のベンダステータスが更新されました
2020/03/12
センチュリー・システムズ株式会社のベンダステータスが更新されました
2020/03/25
参考情報を追加しました
2020/04/10
ジェイティ エンジニアリング株式会社のベンダステータスが更新されました
2020/05/25
日本電気株式会社のベンダステータスが更新されました
2020/06/15
富士通株式会社のベンダステータスが更新されました
2020/06/15
【想定される影響】の誤植を修正しました
2020/09/30
NTT-CERT のベンダステータスが更新されました
2021/02/17
株式会社リコーのベンダステータスが更新されました