| 項目 | 値 |
|---|
| CVE | CVE-2026-55781 |
| アドバイザリ | GHSA-m34h-jf84-m74h |
| ベンダー | M2Team / NanaZip |
| 影響を受けるバージョン | NanaZip <= 6.5 Preview (6.5.1742.0) |
| 修正済み | 6.5.1749.0 |
| 分類 | サービス拒否 (CWE-789: 過大なサイズ値によるメモリ割り当て) |
| プラットフォーム | Windows |
| 作者 | g17hubH4ck |
| 公開日 | 2026-07-17 |
NanaZip.Codecs.Archive.Ufs.cpp は UFS スーパーブロックを読み取り、
fs_bsize を下限 (MINBSIZE) のみに対して検証します。この値が
割り当てサイズの決定に使用される前に、上限は適用されません。
ルート inode (#2) が間接ブロックを必要とするほど大きな di_size を
宣言すると、パーサーは fs_bsize を使用して間接レベルの数だけ
バッファを割り当てます。fs_bsize = 0x40000000 (1 GiB) および
di_size = 0x10000000000 (1 TiB) を設定すると、境界チェックが
実行される前に 3 つの 1 GiB 割り当て (Ufs.cpp:435-437) —
およそ 3 GiB の連続メモリ — が強制されます。
結果: メモリ枯渇およびプロセス終了。コード実行は発生しません。
| 領域 | オフセット | 備考 |
|---|---|---|
ルート inode #2 | 512 | ufs2_dinode、256 バイト、di_mode = IFDIR、di_size = 1 TiB |
| UFS2 スーパーブロック | 65536 (SBLOCK_UFS2) | struct fs、リトルエンディアン、fs_bsize = 0x40000000 |
| 合計サイズ | 66912 バイト | SBLOCK_UFS2 + sizeof(struct fs) |
主要なスーパーブロックフィールド (FreeBSD fs.h の offsetof(struct fs, ...) からのオフセット):
| オフセット | フィールド | 値 |
|---|---|---|
+16 | fs_iblkno | 0 |
+44 | fs_ncg | 1 |
+48 | fs_bsize | 0x40000000 ← 悪意あり |
+52 | fs_fsize | 1 |
+56 | fs_frag | 1 |
+104 | fs_sbsize | 1376 |
+1000 | fs_sblockloc | 65536 |
+1372 | fs_magic | 0x19540119 (FS_UFS2_MAGIC) |
ルート inode アドレス: GetInodeOffset(2) = fs_iblkno * fs_fsize + 2 * 256 = 512。
python3 poc.py poc.img
このスクリプトは不正なイメージを書き込み、再パースして、すべての フィールドが脆弱なパーサーの期待する位置に配置されたことを確認します。 ネットワークアクセス、サブプロセス、武器化されたペイロードはありません — キャリアファイル単体は無害です。
検証
生成されたイメージは NanaZip なしで検査できます:
xxd -s 65536 -l 64 poc.img # superblock header
xxd -s 512 -l 32 poc.img # root inode header
クラッシュを観察するには、Windows 上で脆弱なビルドを使用して poc.img を 開いてください。6.5.1749.0 以降では入力を正しく処理します。
注: この PoC は NanaZip.Codecs パーサーの静的解析によって構築されました。 アドバイザリに記載された正確な脆弱行に到達しますが、実行中の NanaZip ビルドに対して実行されたものではありません。
緩和策
· NanaZip >= 6.5.1749.0 にアップグレードしてください。 · アップグレードが不可能な場合は、信頼できないソースからの UFS イメージを開かないでください。
参考文献
· NanaZip: https://github.com/M2Team/NanaZip · アドバイザリ: GHSA-m34h-jf84-m74h · CWE-789: https://cwe.mitre.org/data/definitions/789.html
免責事項
この資料は、防御的研究および制御された環境での脆弱性再現のみを目的として 提供されています。所有していない、または明示的なテスト許可を得ていない システムに対して使用しないでください。