7-Zipにおける境界外読み取りに関する脆弱性
| Title |
7-Zipにおける境界外読み取りに関する脆弱性
|
| Summary |
7-Zipは高い圧縮率を持つファイルアーカイバです。バージョン9.11から26.00までには、UDFディスクイメージハンドラのファイル識別子ディスクリプタパーサーにおいて最大3バイトのヒープ境界外読み取りが含まれていました。CFileId::Parse(CPP/7zip/Archive/Udf/UdfIn.cpp)では、size 38 + idLen + impLenを検証し、processedを38 + impLen + idLenに進めた後、アライメントパディングのループがp[processed]を読み取りながら最大3回インクリメントして4バイト境界に到達します。しかし、processed = sizeの境界チェックはループ後にしか行われません。(38 + impLen + idLen) % 4 != 0かつ38 + impLen + idLen == sizeの場合、このループによりbuf.Alloc((size_t)item.Size)で確保された正確なサイズのヒープバッファの末尾を1から3バイト越えて読み取ってしまいます。UDFハンドラは.isoおよび.udfファイルに対して登録され、シグネチャにより自動検出されます。細工されたUDFイメージのOpen()処理中にリスト表示または抽出時にこのOOB読み取りが発生します。影響は情報漏えい(OOBバイトごとに1ビットのオラクルをオープン/失敗動作を通じて発生)およびサービス妨害(ハード化されたアロケータ下でのクラッシュ)に限定されており、書き込みプリミティブは存在しません。この問題はバージョン26.01で修正されました。
|
| Possible impacts |
・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアは停止しません。 |
| Solution |
ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date |
June 5, 2026, midnight |
| Registration Date |
June 9, 2026, 2:13 p.m. |
| Last Update |
June 9, 2026, 2:13 p.m. |
|
CVSS3.0 : 警告
|
| Score |
4.3
|
| Vector |
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N |
Affected System
| 7-Zip |
|
7-Zip 9.11 から 26.01
|
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
Change Log
| No |
Changed Details |
Date of change |
| 1 |
[2026年06月09日] 掲載 |
June 9, 2026, 2:13 p.m. |
NVD Vulnerability Information
CVE-2026-48102
| Summary |
7-Zip is a file archiver with a high compression ratio. Versions 9.11 through 26.00 contain a heap out-of-bounds read of up to 3 bytes in the UDF disc image handler's File Identifier Descriptor parser. In CFileId::Parse (CPP/7zip/Archive/Udf/UdfIn.cpp), after validating size < 38 + idLen + impLen and advancing processed to 38 + impLen + idLen, the alignment-padding loop reads p[processed] while incrementing up to 3 times to reach a 4-byte boundary, and the processed <= size bounds check only runs after the loop. When (38 + impLen + idLen) % 4 != 0 and 38 + impLen + idLen == size, the loop reads 1 to 3 bytes past the end of the exact-size heap buffer allocated via buf.Alloc((size_t)item.Size). The UDF handler is registered for .iso and .udf files and auto-detected by signature, and the OOB read triggers during Open() when listing or extracting a crafted UDF image. Impact is limited to information disclosure (a 1-bit oracle per OOB byte via open/fail behavior) and denial of service (crash under hardened allocators); there is no write primitive. Version 26.01 fixes the issue.
|
| Publication Date |
June 6, 2026, 1:16 a.m. |
| Registration Date |
June 6, 2026, 4:17 a.m. |
| Last Update |
June 8, 2026, 10:43 p.m. |
Affected software configurations
| Configuration1 |
or higher |
or less |
more than |
less than |
| cpe:2.3:a:7-zip:7-zip:*:*:*:*:*:*:*:* |
9.11 |
26.01 |
|
|
Related information, measures and tools
Common Vulnerabilities List