| Title | 7-Zipにおける複数の脆弱性 |
|---|---|
| Summary | 7-Zipは高い圧縮率を持つファイルアーカイバです。バージョン9.18から26.00までの間で、まばらに配置されたインデックス配列が原因となり、SquashFSアーカイブハンドラに未初期化ヒープ読み取りの脆弱性が存在しました。SquashFSハンドラでは、_blockToNodeにすべてのメタデータブロック分の容量を割り当てていますが、inodeがブロック境界を越えた場合にのみ値が設定されます。そのため、多数のブロックにまたがるinodeを含む少数の細工されたイメージでは、ほとんどのスロットが未初期化のヒープ内容を保持してしまいます(基盤となるアロケータはPODストレージをゼロ初期化しません)。攻撃者が操作したblockIndex(RootInodeスーパーブロックフィールド由来)をOpenDirが参照すると、これらの未初期化スロット2つを読み取り、それらを二分探索の左/右境界として_nodesPosに渡します。_nodesPosは境界チェックを行わずに中央値を参照します。もしその結果の値が検索キーと一致すると、返されたインデックスは_nodesから完全なノード構造体を読み込み、そのフィールドがさらにディレクトリ解析に用いられます。これによりチェインされたOOB読み込みプリミティブが形成されますが、これはヒープレイアウトに依存しており、確実にトリガーされるわけではありません。SquashFSハンドラは標準の7z.dllでデフォルトで有効化されており、この問題はファイルを開くOpen()操作中に発生し、単にファイルを開くだけでトリガーされます。影響としては、ワイルドポインタ参照によるサービス拒否および潜在的なヒープ情報露出があり、書き込みのプリミティブは存在しません。この問題はバージョン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.2 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:L |
| 7-Zip |
| 7-Zip 9.18 以上 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.18 through 26.00 contain an uninitialized heap read in the SquashFS archive handler caused by a sparsely populated index array. In the SquashFS handler, _blockToNode is allocated with capacity for every metadata block but populated only when an inode crosses a block boundary, so a crafted image with few inodes spanning many blocks leaves most slots holding raw heap contents (the underlying allocator does not zero-initialize POD storage). When OpenDir looks up an attacker-influenced blockIndex (derived from the RootInode superblock field), it reads two of these uninitialized slots and passes them as the left/right bounds of a binary search over _nodesPos, which dereferences the midpoint without bounds checking; if the resulting value happens to match the search key, the returned index is used to read a full node struct from _nodes whose fields feed further directory parsing, forming a chained OOB read primitive that is heap-layout-dependent and not reliably triggerable. The SquashFS handler is enabled by default in stock 7z.dll and the issue triggers during Open() with no interaction beyond opening the file; impact is denial of service from wild-pointer dereference and potential heap information disclosure, with no write primitive. Version 26.01 fixes the issue. |
|---|---|
| Publication Date | June 6, 2026, 2:16 a.m. |
| Registration Date | June 6, 2026, 4:17 a.m. |
| Last Update | June 9, 2026, 3:03 a.m. |
| Configuration1 | or higher | or less | more than | less than | |
| cpe:2.3:a:7-zip:7-zip:*:*:*:*:*:*:*:* | 9.18 | 26.01 | |||