{"id":"CVE-2026-92087","published":"2026-09-16T15:18:59.653","lastModified":"2026-09-17T20:18:55.393","description":"@fastify/auth is a Fastify plugin that composes multiple authentication and authorization strategies into a single route guard. In versions 5.0.0 through 5.1.0, when strategies are composed with the relation \"or\" option together with the run \"all\" option and one entry is a nested array acting as an AND group, the group is evaluated in an order-dependent way: an earlier failing check is silently dropped and the group's result becomes the outcome of its last check. As a result, a request that satisfies only the last member of an AND group, for example an attacker who holds a valid API key but is not an administrator, is authorized instead of rejected, and a related order-dependent bypass affects the mirror configuration where the top-level relation is \"and\" and a nested group uses \"or\". The issue is fixed in @fastify/auth 5.1.1, and users should upgrade to 5.1.1 or later. As a workaround, omit the run \"all\" option where it is not required, order each AND group so its stricter check is evaluated last, or replace nested AND groups with an explicit top-level \"and\" composition.","cvssScore":8.1,"cvssSeverity":"HIGH","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","cwes":["CWE-285","CWE-697"],"vendors":[],"products":[],"references":[{"url":"https://cna.openjsf.org/security-advisories.html","tags":[]},{"url":"https://github.com/fastify/fastify-auth/security/advisories/GHSA-7h52-2rwr-m76r","tags":[]}],"exploitRefs":[{"url":"https://github.com/fastify/fastify-auth/security/advisories/GHSA-7h52-2rwr-m76r","tags":[]}],"hasPoc":true,"ai":null}