CVE-2025-69419
PKCS12_get_friendlyname() のUTF-8変換における領域外書き込み
- 公開済み
- 2026/01/27
- 更新済み
- 2026/05/12
- CNA の割り当て
- openssl
- 観察された証拠
- 2026/08/28
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N低 · 今後 30 日間
- パーセンタイル
- 46.0%
- モデルの日付
- 2026/09/21
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
Issue summary: 悪意を持って細工されたPKCS#12ファイルで、非ASCIIのBMPコードポイントを含むBMPString(UTF-16BE)フレンドリ名を持つファイルに対してPKCS12_get_friendlyname()関数を呼び出すと、割り当てられたバッファの前に1バイト書き込みが発生する可能性があります。Impact summary: この範囲外書き込みはメモリ破損を引き起こす可能性があり、サービス拒否を含む様々な結果をもたらす可能性があります。OPENSSL_uni2utf8()関数は、PKCS#12のBMPString(UTF-16BE)をUTF-8に変換する2パス変換を実行します。2パス目でUTF-8バイトを出力する際、ヘルパー関数bmp_to_utf8()は、残りのUTF-16ソースバイト数を宛先バッファ容量として誤ってUTF8_putc()に転送します。U+07FFより大きいBMPコードポイントの場合、UTF-8では3バイトが必要ですが、転送される容量はわずか2バイトになることがあります。その後UTF8_putc()は-1を返し、この負の値が検証なしで出力長に加算されるため、長さが負になります。続く末尾のNULバイトは負のオフセットで書き込まれ、ヒープ割り当てバッファの外への書き込みが発生します。この脆弱性は、攻撃者が制御するPKCS#12ファイルを解析する際に、公開APIであるPKCS12_get_friendlyname()を介して到達可能です。PKCS12_parse()はこの問題を回避する別のコードパスを使用しますが、PKCS12_get_friendlyname()は脆弱な関数を直接呼び出します。悪用には、攻撃者がアプリケーションに解析させる悪意のあるPKCS#12ファイルを提供する必要があり、攻撃者は割り当てられたバッファの前に1バイトのゼロ書き込みをトリガーするだけで済みます。そのため、この問題は当社のセキュリティポリシーに従って低重大度と評価されました。3.6、3.5、3.4、3.3、3.0のFIPSモジュールは、PKCS#12実装がOpenSSL FIPSモジュール境界の外にあるため、この問題の影響を受けません。OpenSSL 3.6、3.5、3.4、3.3、3.0および1.1.1はこの問題に対して脆弱です。OpenSSL 1.0.2はこの問題の影響を受けません。
ソース
1CVE-2025-69419の最小限の概念実証再現ツール。OpenSSLのPKCS12_get_friendlyname()のヒープバッファオーバーフローで、細工されたBMPStringによってトリガーされます。回帰テストとセキュリティ研究を目的としています。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。