CVE-2026-42202nova-toggle-5是一个用于在Laravel Nova索引页切换布尔值的组件。在1.3.0版本之前,其切换端点仅受web和auth中间件保护,缺乏Nova级别的细粒度权限验证。任何基于配置的认证守卫登录的用户均可调用该端点,修改任意Nova资源的布尔属性。这包括那些本无权访问Nova后台的用户(例如与后台共用web guard的前端客户)。此外,该端点接受任意属性参数,攻击者可切换底层模型中任何布尔列的值,而不仅仅是资源上通过Toggle字段暴露的属性,导致严重的数据完整性风险。
该漏洞的根源在于`nova-toggle-5`包在实现`/nova-vendor/nova-toggle/toggle/{resource}/{resourceId}`端点时,仅依赖Laravel标准的`web`和`auth`中间件进行身份验证,而未集成Laravel Nova的授权策略或Gate机制。这意味着系统只检查请求者是否已登录,而不检查其是否对目标资源拥有修改权限。攻击者只要拥有有效的会话凭证(如普通前端用户的Cookie),即可构造POST请求。由于接口允许自定义`attribute`参数,攻击者可以猜测并修改数据库模型中任何布尔类型的字段(例如将用户的`is_admin`字段从false改为true)。这种越权漏洞(IDOR)破坏了系统的访问控制模型,可能导致权限提升。