| タイトル | Excelizeにおける制限またはスロットリング無しのリソースの割り当てに関する脆弱性 |
|---|---|
| 概要 | Excelizeは、Microsoft Excelのスプレッドシートを読み書きするためのGo言語ライブラリです。バージョン2.11.0以前では、github.com/xuri/excelize/v2のcheckSheet()関数が攻撃者に制御される<row r="N">のXML属性値を、Excelの行数制限(TotalRows = 1,048,576)に対して検証せずに、そのままmake([]xlsxRow, row)関数の長さ引数として使用していました。この脆弱性により、特別に細工されたXLSXファイルで以下の2種類のサービス拒否攻撃が発生します。(A) r=2147483647のときに約16GBのメモリアロケーションを試みることでメモリ不足によりプロセスが強制終了する、(B) r=-1のときにスライスの範囲外アクセスによるランタイムパニックが発生します。攻撃者が作成したXLSXファイルを開きGetCellValueを呼び出すすべてのサービスが影響を受け、認証は不要です。この問題はバージョン2.11.0で修正されました。 |
| 想定される影響 | ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| 対策 | ベンダ情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年7月10日0:00 |
| 登録日 | 2026年7月21日10:43 |
| 最終更新日 | 2026年7月21日10:43 |
| CVSS3.0 : 重要 | |
| スコア | 7.5 |
|---|---|
| ベクター | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| Excelize |
| Excelize 2.11.0 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年07月21日] 掲載 |
2026年7月21日10:43 |
| 概要 | Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. Prior to 2.11.0, the checkSheet() function in github.com/xuri/excelize/v2 uses an attacker-controlled <row r="N"> XML attribute value directly as the length argument to make([]xlsxRow, row) without validating it against the Excel row limit (TotalRows = 1,048,576). A specially crafted XLSX file can trigger two denial-of-service variants: (A) an out-of-memory process kill when r=2147483647 forces a ~16 GB allocation attempt, and (B) a runtime panic via out-of-bounds slice indexing when r=-1. Any service that opens attacker-supplied XLSX files and calls GetCellValue is affected. No authentication is required. This issue is fixed in version 2.11.0. |
|---|---|
| 公表日 | 2026年7月11日2:16 |
| 登録日 | 2026年7月11日4:16 |
| 最終更新日 | 2026年7月16日23:11 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:excelize:excelize:*:*:*:*:*:go:*:* | 2.11.0 | ||||