CVE-2026-33730Open Source Point of Sale (opensourcepos) 是一款基于PHP的销售点应用。在3.4.2版本之前,系统存在不安全的直接对象引用(IDOR)漏洞。由于应用未严格验证对象所有权及执行授权检查,低权限攻击者能够通过操纵请求中的employee_id参数,直接访问并修改其他用户(含管理员)的密码功能。该漏洞可能导致敏感账户被接管及权限提升,严重威胁系统安全。
该漏洞的核心在于Open Source Point of Sale在处理用户密码更新请求时,未能实施严格的基于角色的访问控制(RBAC)和对象级别授权检查。在CodeIgniter框架的实现中,后端控制器直接信任了用户提交的`employee_id`参数,并将其用于构建数据库更新语句,而未将该参数与会话中当前登录用户的身份标识进行比对。攻击者首先以普通员工身份登录系统,随后利用浏览器开发者工具或代理工具(如Burp Suite)捕获发送至服务器的密码修改POST请求。通过将请求体中的`employee_id`参数值篡改为目标管理员的ID,攻击者成功绕过了前端界面的限制。服务器端后端逻辑在缺乏校验的情况下处理了该恶意请求,直接将管理员的密码更新为攻击者指定的新值。利用成功后,攻击者即可使用管理员凭证登录系统,完全控制应用程序数据。