{"id":"GHSA-fwcm-rqvw-j3p7","revision":"871d0a70984b401ca08922c40301a0f9","records":[{"revision":"871d0a70984b401ca08922c40301a0f9","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"GHSA-fwcm-rqvw-j3p7","aliases":["CVE-2026-43946"],"title":"FUXA has an unauthenticated arbitrary tag value disclosure via /api/getTagValue","description":"### Summary\n An authorization bypass in the /api/getTagValue endpoint allows unauthenticated access to tag values when the referenced script does not exist.\n\n  ### Details\n  The issue is caused by the combination of these code paths:\n\n  - `server/api/apikeys/verify-api-or-token.js:45` sends requests without `x-api-key` to `authJwt.verifyToken(req, res, next)`.\n  - `server/api/jwt-helper.js:46-64` creates a signed guest token when no `x-access-token` is provided:\n    `if (!token) { token = getGuestToken(); }`\n    and then populates `req.userId` / `req.userGroups` from that guest token.\n  - `server/api/command/index.js:76-105` exposes `/api/getTagValue`.\n  - `server/runtime/scripts/index.js:106-111` returns `true` when the referenced script does not exist:\n    `if (!script) { return true; }`\n\n  As a result, an unauthenticated request reaches `/api/getTagValue` as `guest`, and the authorization check is bypassed because `isAuthorisedByScriptName()` returns `true` when `sourceScriptName` is omitted or does not match a real script. The endpoint then returns arbitrary tag values by ID.\n\n  ### PoC\n\nRequests to /api/getTagValue without authentication could succeed when the authorization logic evaluated a non-existent sourceScriptName as authorized.","state":0,"publishedAt":"2026-05-26T23:41:45+00:00","modifiedAt":"2026-05-26T23:56:24.98305+00:00","affected":[{"ecosystem":"npm","name":"fuxa-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.3.0"},{"kind":"fixed","version":"1.3.1"}]}],"versions":["1.3.0"],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V4","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:P","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"HIGH"}],"references":["https://github.com/frangoteam/FUXA/security/advisories/GHSA-fwcm-rqvw-j3p7","https://github.com/frangoteam/FUXA/pull/2260","https://github.com/frangoteam/FUXA/commit/78534da61a91613712b44bb63c8d7da8c5df5ca4","https://github.com/frangoteam/FUXA","https://github.com/frangoteam/FUXA/releases/tag/v1.3.1"],"sourceUrl":"https://github.com/advisories/GHSA-fwcm-rqvw-j3p7","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-fwcm-rqvw-j3p7","identifiers":["GHSA-fwcm-rqvw-j3p7","CVE-2026-43946"]},"retained":false,"historicalAffected":[]}],"coverage":[]}