Nango is an open-source platform for connecting agents and products to third-party APIs. Prior to 0.70.9, on accounts with RBAC enabled through a plan with has_rbac=true, two private flow-read routes, GET /api/v1/integrations/:providerConfigKey/flows and GET /api/v1/flow/:flowName, apply webAuth but omit can({ action: 'read', resource: 'flow', scopedBy: envScope }). A same-team user with the development_full_access role can therefore request env=prod and read production integration flow metadata or named flow configuration despite being denied by guarded production routes. Both controllers use res.locals.environment from the authenticated account, so the issue bypasses the production role boundary but does not cross tenant boundaries. This issue is fixed in version 0.70.9 and managed-1.5.11-0.70.8-aae30d044d7e229807d51a3957c212f3fb689e1a
PUBLISHED5.2CWE-862
Nango: Production flow RBAC bypass on private flow-read routes
Problem type
Affected products
NangoHQ
nango
< 0.70.9 - AFFECTED
References
https://github.com/NangoHQ/nango/security/advisories/GHSA-vc5r-hj76-f35p
https://github.com/NangoHQ/nango/security/advisories/GHSA-vc5r-hj76-f35p
https://github.com/NangoHQ/nango/pull/6603
https://github.com/NangoHQ/nango/pull/6603
https://github.com/NangoHQ/nango/commit/3896f6abf71408b8966da1ea4afb1885647403c9
https://github.com/NangoHQ/nango/commit/3896f6abf71408b8966da1ea4afb1885647403c9
https://github.com/NangoHQ/nango/releases/tag/managed-1.5.11-0.70.8-aae30d044d7e229807d51a3957c212f3fb689e1a
https://github.com/NangoHQ/nango/releases/tag/managed-1.5.11-0.70.8-aae30d044d7e229807d51a3957c212f3fb689e1a
https://github.com/NangoHQ/nango/releases/tag/v0.70.9
https://github.com/NangoHQ/nango/releases/tag/v0.70.9
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-102596Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-102596",
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"dateUpdated": "2026-10-12T21:58:26.250Z",
"dateReserved": "2026-09-29T14:18:02.920Z",
"datePublished": "2026-10-12T21:58:26.250Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M",
"dateUpdated": "2026-10-12T21:58:26.250Z"
},
"title": "Nango: Production flow RBAC bypass on private flow-read routes",
"descriptions": [
{
"lang": "en",
"value": "Nango is an open-source platform for connecting agents and products to third-party APIs. Prior to 0.70.9, on accounts with RBAC enabled through a plan with has_rbac=true, two private flow-read routes, GET /api/v1/integrations/:providerConfigKey/flows and GET /api/v1/flow/:flowName, apply webAuth but omit can({ action: 'read', resource: 'flow', scopedBy: envScope }). A same-team user with the development_full_access role can therefore request env=prod and read production integration flow metadata or named flow configuration despite being denied by guarded production routes. Both controllers use res.locals.environment from the authenticated account, so the issue bypasses the production role boundary but does not cross tenant boundaries. This issue is fixed in version 0.70.9 and managed-1.5.11-0.70.8-aae30d044d7e229807d51a3957c212f3fb689e1a"
}
],
"affected": [
{
"vendor": "NangoHQ",
"product": "nango",
"versions": [
{
"version": "< 0.70.9",
"status": "affected"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "CWE-862: Missing Authorization",
"cweId": "CWE-862",
"type": "CWE"
}
]
}
],
"references": [
{
"url": "https://github.com/NangoHQ/nango/security/advisories/GHSA-vc5r-hj76-f35p",
"name": "https://github.com/NangoHQ/nango/security/advisories/GHSA-vc5r-hj76-f35p",
"tags": [
"x_refsource_CONFIRM"
]
},
{
"url": "https://github.com/NangoHQ/nango/pull/6603",
"name": "https://github.com/NangoHQ/nango/pull/6603",
"tags": [
"x_refsource_MISC"
]
},
{
"url": "https://github.com/NangoHQ/nango/commit/3896f6abf71408b8966da1ea4afb1885647403c9",
"name": "https://github.com/NangoHQ/nango/commit/3896f6abf71408b8966da1ea4afb1885647403c9",
"tags": [
"x_refsource_MISC"
]
},
{
"url": "https://github.com/NangoHQ/nango/releases/tag/managed-1.5.11-0.70.8-aae30d044d7e229807d51a3957c212f3fb689e1a",
"name": "https://github.com/NangoHQ/nango/releases/tag/managed-1.5.11-0.70.8-aae30d044d7e229807d51a3957c212f3fb689e1a",
"tags": [
"x_refsource_MISC"
]
},
{
"url": "https://github.com/NangoHQ/nango/releases/tag/v0.70.9",
"name": "https://github.com/NangoHQ/nango/releases/tag/v0.70.9",
"tags": [
"x_refsource_MISC"
]
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "NONE",
"availabilityImpact": "NONE",
"baseScore": 4.3,
"baseSeverity": "MEDIUM"
}
}
]
}
}
}