关键信息 漏洞ID: usd-2022-0054 产品: Cash Point & Transport Online (CPTO) 受影响版本: 6.3.8.6 (#718) 01/09/2023 漏洞类型: CSV-Injection (CWE 1236) 安全风险: Medium 厂商URL: https://www.sesame-group.de 厂商确认漏洞: Yes 厂商状态: Fixed CVE编号: CVE-2023-31296 CVE链接: Pending 描述 在导出的用户CSV文件中,用户名称可以包含一个电子表格公式,当在电子表格软件中打开CSV文件时,可能导致执行。 CPTO版本6.3.8.6中,过滤器未正确地 sanitation user name 字段以及陪伴每个字段时无法导入CSV文件中的账号。 修复措施 用户应将CPTO升级到最新版本。 验证并sanitizazion用户名称字段,以确保没有单元格以以下任何字符开始: - Equals to (=) - Plus (+) - Minus (-) - At (@) - Tab (0x09) - Carriage return (0x0D) 防护建议 考虑到未被信任的user input不仅仅可能出现在单元格的开头,还需要考虑潜在的字符: - 字段分隔符 (eg: ',', ';') - 引号 (eg: ''', '"') 可以通过以下方法对CSV内容进行sanitization,以确保内容被以文本形式读取: - 将每个单元格字段用双引号包裹 - 字段前添加单引号 - 每个双引号前添加一个额外的双引号 参考 https://owasp.org/www-community/attacks/CSV_Injection 时间线 2022-11-03: 漏洞被Marcus Nilsson发现 2022-11-28: 首次尝试与厂商建立联系 2023-04-27: 提交CVE ID请求并保留 2023-05-12: 试图通过电话及邮件建立联系但不成功,客户通知团队漏洞应在秋季修复 2023-11-23: Marcus Nilsson与厂商取得联系,咨询文将于十二月发布无漏洞测试概念 2022-12-21: 本咨询文发布 致谢 此漏洞由usd AG的Marcus Nilsson发现