高危预警|CVE-2026-26713:开源点餐系统存在未授权SQL注入漏洞,CVSS评分9.8

admin 2026-03-06 18:42:21 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档披露开源点餐系统SimpleFoodOrderSystemv1.0存在高危SQL注入漏洞CVE-2026-26713,CVSS评分9.8。漏洞位于cancel-order.php,因未过滤用户输入导致未授权远程攻击,PoC已公开。攻击者可窃取敏感数据或接管系统,官方暂无补丁。建议立即采用参数化查询修复代码,部署WAF拦截,并排查同类路由文件风险。 综合评分: 90 文章分类: 漏洞预警,漏洞分析,WEB安全,安全建设


cover_image

高危预警 | CVE-2026-26713:开源点餐系统存在未授权 SQL 注入漏洞,CVSS 评分 9.8

原创

CVE-SEC CVE-SEC

CVE-SEC

2026年3月6日 08:00 四川

高危预警 | CVE-2026-26713:开源点餐系统存在未授权 SQL 注入漏洞,CVSS 评分 9.8

漏洞速览

近日,安全研究员 Thirtypenny77 在 code-projects 发布的开源 PHP 点餐系统 Simple Food Order System v1.0 中发现一处严重 SQL 注入漏洞,漏洞编号 CVE-2026-26713,于 2026 年 3 月 2 日正式披露并收录至 NVD(美国国家漏洞数据库)。

该漏洞 CVSS 3.1 基础评分为 9.8,评级为 CRITICAL(严重),无需任何身份认证即可远程利用,PoC 已公开。

受影响产品

code-projects Simple Food Order System 是一款基于 PHP、MySQL 技术栈构建的开源 Web 点餐应用,包含用户端点餐界面与管理员后台两套模块,支持菜品管理、购物车、在线下单及订单状态管理等功能。该项目以教学示例为定位,源代码在 code-projects.org 平台公开发布,历史下载量已超过 40,000 次。

受影响版本:v1.0 受影响文件:/food/routers/cancel-order.php

漏洞原理

漏洞成因直接且经典:系统在处理”取消订单”请求时,将用户 HTTP 请求中传入的订单 ID 参数未经任何过滤或参数化处理,直接以字符串拼接方式嵌入 SQL 查询语句中执行。

// 漏洞代码模式(示意)
$order_id = $_POST['id'];
$sql = "UPDATE orders SET status='Canceled' WHERE order_id = '$order_id'";
mysqli_query($conn, $sql);

当攻击者传入包含单引号、注释符或 SQL 关键字的恶意字符串时,数据库引擎无法区分”数据”与”指令”,攻击者构造的 SQL 逻辑将被直接执行。

漏洞类型:CWE-89(SQL 命令中特殊元素的不当中和)

危害后果

该接口无需登录即可访问,攻击者从公网直接发起攻击,无任何门槛。成功利用后,攻击者可以:

  • 获取数据库中所有用户的账号、密码、联系方式等隐私信息
  • 读取管理员账号凭据,进而接管系统后台
  • 任意篡改或删除订单数据、菜品信息等业务数据
  • 在数据库用户权限较高时,读取服务器本地敏感文件

CVSS 3.1 向量完整表述:AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,机密性、完整性与可用性均为高影响。

为何值得警惕

这个漏洞本身的技术难度并不高,但有几点因素使其值得重点关注。

第一,暴露面不可忽视。该系统源代码公开,下载量超 4 万次,部分使用者会将其直接或改动极少后部署至公网服务器。攻击者可借助 FOFA、Shodan、ZoomEye 等网络空间测绘平台,以 title="Simple Food Order System" 等关键词快速定位暴露实例,批量扫描成本极低。

第二,PoC 已公开。研究员在 GitHub 上同步发布了详细的漏洞报告,利用细节对外透明,自动化利用工具(如 sqlmap)结合该报告可在极短时间内完成数据库数据提取。

第三,官方暂无补丁。截至本文发布时,code-projects 尚未针对该漏洞发布任何修复版本或安全公告,使用者需自行完成修复。

第四,这不是孤例。在 code-projects 系列同类 PHP 项目中,SQL 注入缺陷在多个路由文件(如 /routers/edit-orders.php/routers/router.php)中均有出现,反映出该系列项目在 SQL 查询处理上存在系统性安全问题,并非个别文件的偶发错误。

修复方案

根本修复方式是将字符串拼接改为参数化查询,这是防止 SQL 注入的行业标准方法,实现成本低,改动范围集中于单一文件。

使用 PHP MySQLi 参数化查询修复示例:

// 修复后代码模式(示意)
$order_id = $_POST['id'];
$conn = new mysqli($host, $user, $pass, $db);
$stmt = $conn->prepare("UPDATE orders SET status='Canceled' WHERE order_id = ?");
$stmt->bind_param("i", $order_id);
$stmt->execute();
$stmt->close();

对于订单 ID 这类纯整型参数,也可先行采用强制类型转换作为低成本临时措施:

$order_id = intval($_POST['id']);

此外,建议同步排查系统中其他路由文件的 SQL 查询写法,进行全面安全加固,而非仅针对单一文件修补。

临时缓解建议

在完成代码修复前,可采取以下措施降低风险:

  • 通过服务器防火墙或安全组规则,限制 /food/routers/cancel-order.php 的外网直接访问
  • 部署 WAF,启用 SQL 注入防护规则,对包含 '--UNION SELECTSLEEP() 等特征的请求进行拦截
  • 在 PHP 配置中关闭错误信息显示(display_errors = Off),避免数据库报错内容泄露给攻击者
  • 确保数据库连接账号仅拥有业务必需的最低权限,不赋予 FILE、DROP 等高危权限

检测建议

运维人员可在 Web 服务器访问日志中检索以下特征,判断系统是否已遭攻击尝试:

  • 请求路径:/food/routers/cancel-order.php
  • 参数中出现:'%27--UNIONSELECTSLEEP(OR 1=1 等字符串

若发现服务器响应时间出现异常延迟,也可能是时间盲注攻击的指征,建议结合数据库慢查询日志进行关联分析。

参考信息

  • NVD 漏洞详情:https://nvd.nist.gov/vuln/detail/CVE-2026-26713
  • MITRE CVE 记录:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-26713
  • CIRCL Vulnerability-Lookup:https://vulnerability.circl.lu/vuln/cve-2026-26713
  • 漏洞原始报告(GitHub):https://github.com/Thirtypenny77/bug_report/blob/main/code-projects/simple-food-order-system/SQL-4.md

结语

CVE-2026-26713 是一个技术门槛低、危害评级高、PoC 已公开且官方暂无补丁的高危漏洞。对于正在使用 code-projects Simple Food Order System 的个人开发者和小型部署方而言,建议优先完成代码层修复,同时对系统其余代码进行全面的 SQL 注入审查。

安全从代码写对开始。将用户输入参数化,是开发阶段最低成本、最有效的防线。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:CVE-SEC CVE-SEC CVE-SEC《高危预警 | CVE-2026-26713:开源点餐系统存在未授权 SQL 注入漏洞,CVSS 评分 9.8》

评论:0   参与:  0