| Title | 7-Zipにおける境界外読み取りに関する脆弱性 |
|---|---|
| Summary | 7-Zipは高い圧縮率を持つファイルアーカイバです。バージョン9.34から26.00にかけて、WIM(Windows Imaging)アーカイブハンドラのセキュリティディスクリプタルックアップにおいて、ヒープベースのオフバイワンの境界外読み取り脆弱性が含まれていました。CHandler::GetSecurity(CPP/7zip/Archive/Wim/WimHandler.cpp)では、各イメージのSecurOffsetsテーブルはnumEntries + 1個の累積オフセットを保持していますが、チェックのsecurityId = SecurOffsets.Size()はsecurityId == numEntriesを許容します。そのため、関数はSecurOffsets[securityId + 1]を読み取り、ヒープ割り当てされたCRecordVectorの末端の1つ先のUInt32を取得します。operator[]では境界チェックが行われません。securityIdはWIMメタデータ内の任意のディレクトリエントリのオフセット+0xCで攻撃者に制御されており、ハンドラは.wim、.swm、.esd、および.ppkgに登録され、標準の7z.dllでデフォルトで有効です。この境界外読み取りはGUIのゼロクリックでトリガーされます。7zFM.exeのListViewはリスト表示時に全アイテムに対してGetRawProp(kpidNtSecure)を呼び出すため(ASan確認済み)、CLIの7zz l -sltコマンドによるリスト表示でも実行されます。影響は強化されたアロケータ下でのサービス妨害に限定されます。境界外の値は算術的に長さとしてのみ使用され、攻撃者に直接示されないため、軽微な情報漏洩も発生しますが、書き込みプリミティブは存在しません。 |
| 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 | 7.1 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H |
| 7-Zip |
| 7-Zip 9.34 以上 26.01 未満 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年06月09日] 掲載 |
June 9, 2026, 2:13 p.m. |
| Summary | 7-Zip is a file archiver with a high compression ratio. Versions 9.34 through 26.00 contain an off-by-one heap out-of-bounds read in the WIM (Windows Imaging) archive handler's security descriptor lookup. In CHandler::GetSecurity (CPP/7zip/Archive/Wim/WimHandler.cpp), the per-image SecurOffsets table holds numEntries + 1 cumulative offsets, but the check securityId >= SecurOffsets.Size() admits securityId == numEntries, and the function then reads SecurOffsets[securityId + 1], fetching one UInt32 past the end of the heap-allocated CRecordVector (which performs no bounds checking on operator[]). The securityId is attacker-controlled at offset +0xC of any directory entry in WIM metadata, and the handler is registered for .wim, .swm, .esd, and .ppkg and enabled by default in stock 7z.dll; the OOB triggers zero-click in the GUI because 7zFM.exe's ListView calls GetRawProp(kpidNtSecure) for every item during listing (ASan-confirmed), and is also reachable via CLI listing with 7zz l -slt. Impact is limited to denial of service under hardened allocators and minor information disclosure, since the OOB value is only consumed arithmetically as a length and is not surfaced to the attacker; there is no write primitive. |
|---|---|
| Publication Date | June 6, 2026, 2:16 a.m. |
| Registration Date | June 6, 2026, 4:17 a.m. |
| Last Update | June 9, 2026, 2:54 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:7-zip:7-zip:*:*:*:*:*:*:*:* | 9.34 | 26.01 | |||