GHSA-FWCM-RQVW-J3P7
Vulnerability from github – Published: 2026-05-26 23:41 – Updated: 2026-05-26 23:41
VLAI
Summary
FUXA has an unauthenticated arbitrary tag value disclosure via /api/getTagValue
Details
Summary
An authorization bypass in the /api/getTagValue endpoint allows unauthenticated access to tag values when the referenced script does not exist.
### Details The issue is caused by the combination of these code paths:
server/api/apikeys/verify-api-or-token.js:45sends requests withoutx-api-keytoauthJwt.verifyToken(req, res, next).server/api/jwt-helper.js:46-64creates a signed guest token when nox-access-tokenis provided:if (!token) { token = getGuestToken(); }and then populatesreq.userId/req.userGroupsfrom that guest token.server/api/command/index.js:76-105exposes/api/getTagValue.server/runtime/scripts/index.js:106-111returnstruewhen the referenced script does not exist:if (!script) { return true; }
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.
### PoC
Requests to /api/getTagValue without authentication could succeed when the authorization logic evaluated a non-existent sourceScriptName as authorized.
Severity
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "fuxa-server"
},
"ranges": [
{
"events": [
{
"introduced": "1.3.0"
},
{
"fixed": "1.3.1"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.3.0"
]
}
],
"aliases": [
"CVE-2026-43946"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": true,
"github_reviewed_at": "2026-05-26T23:41:45Z",
"nvd_published_at": null,
"severity": "HIGH"
},
"details": "### 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.",
"id": "GHSA-fwcm-rqvw-j3p7",
"modified": "2026-05-26T23:41:45Z",
"published": "2026-05-26T23:41:45Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/frangoteam/FUXA/security/advisories/GHSA-fwcm-rqvw-j3p7"
},
{
"type": "WEB",
"url": "https://github.com/frangoteam/FUXA/pull/2260"
},
{
"type": "WEB",
"url": "https://github.com/frangoteam/FUXA/commit/78534da61a91613712b44bb63c8d7da8c5df5ca4"
},
{
"type": "PACKAGE",
"url": "https://github.com/frangoteam/FUXA"
},
{
"type": "WEB",
"url": "https://github.com/frangoteam/FUXA/releases/tag/v1.3.1"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "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",
"type": "CVSS_V4"
}
],
"summary": "FUXA has an unauthenticated arbitrary tag value disclosure via /api/getTagValue"
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…