文章总结: 文档披露开源点餐系统SimpleFoodOrderSystemv1.0存在高危SQL注入漏洞CVE-2026-26713,CVSS评分9.8。漏洞位于cancel-order.php,因未过滤用户输入导致未授权远程攻击,PoC已公开。攻击者可窃取敏感数据或接管系统,官方暂无补丁。建议立即采用参数化查询修复代码,部署WAF拦截,并排查同类路由文件风险。 综合评分: 90 文章分类: 漏洞预警,漏洞分析,WEB安全,安全建设
高危预警 | 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 SELECT、SLEEP()等特征的请求进行拦截 - 在 PHP 配置中关闭错误信息显示(
display_errors = Off),避免数据库报错内容泄露给攻击者 - 确保数据库连接账号仅拥有业务必需的最低权限,不赋予 FILE、DROP 等高危权限
检测建议
运维人员可在 Web 服务器访问日志中检索以下特征,判断系统是否已遭攻击尝试:
- 请求路径:
/food/routers/cancel-order.php - 参数中出现:
'、%27、--、UNION、SELECT、SLEEP(、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》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论