CVE-2026-121880
Full vulnerability record from the local CVENow database.
Description
Authorization bypass through user-controlled key in the localhost port-proxy (/p/<token>/) in Posit Software, PBC RStudio Server and Posit Workbench before 2026.08.0 allows remote authenticated users to reach web applications and other services bound to 127.0.0.1 under a different user's session, and to view their live rendered content and data, via a proxy URL constructed from the attacker's own port token for an arbitrary port number. The port token is a documented obfuscation measure and not an authorization boundary, and the proxy does not verify that the requested port belongs to the requesting user's session. NOTE: exploitation requires an authenticated account on the same multi-user server and a target service listening on localhost at the time of access. Impact may be greater on hosts that co-locate additional privileged localhost services, and the bypass is not prevented by allow-shell=false; no setting restricts the port-proxy without disabling all application proxying.
View original CVE JSON
{
"id": "CVE-2026-121880",
"sourceIdentifier": "8c484e69-127d-402b-9cdb-5f86ef43eb86",
"published": "2026-11-06T16:17:52.943",
"lastModified": "2026-11-06T20:38:53.570",
"vulnStatus": "Awaiting Analysis",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Authorization bypass through user-controlled key in the localhost port-proxy (/p/<token>/) in Posit Software, PBC RStudio Server and Posit Workbench before 2026.08.0 allows remote authenticated users to reach web applications and other services bound to 127.0.0.1 under a different user's session, and to view their live rendered content and data, via a proxy URL constructed from the attacker's own port token for an arbitrary port number. The port token is a documented obfuscation measure and not an authorization boundary, and the proxy does not verify that the requested port belongs to the requesting user's session.\n\n\n\nNOTE: exploitation requires an authenticated account on the same multi-user server and a target service listening on localhost at the time of access. Impact may be greater on hosts that co-locate additional privileged localhost services, and the bypass is not prevented by allow-shell=false; no setting restricts the port-proxy without disabling all application proxying."
}
],
"affected": [
{
"source": "8c484e69-127d-402b-9cdb-5f86ef43eb86",
"affectedData": [
{
"vendor": "Posit Software, PBC",
"product": "Posit Workbench",
"defaultStatus": "unaffected",
"collectionURL": "https://posit.co/download/rstudio-server-pro/",
"cpes": [
"cpe:2.3:a:posit:workbench:*:*:*:*:*:*:*:*"
],
"modules": [
"localhost port-proxy (/p/<token>/)"
],
"platforms": [
"Linux"
],
"programFiles": [
"src/cpp/core/http/UrlPorts.cpp"
],
"versions": [
{
"version": "0",
"lessThan": "2026.08.0",
"versionType": "custom",
"status": "affected"
}
]
},
{
"vendor": "Posit Software, PBC",
"product": "RStudio Server",
"defaultStatus": "unaffected",
"collectionURL": "https://posit.co/download/rstudio-server/",
"cpes": [
"cpe:2.3:a:posit:rstudio_server:*:*:*:*:*:*:*:*"
],
"modules": [
"localhost port-proxy (/p/<token>/)"
],
"platforms": [
"Linux"
],
"programFiles": [
"src/cpp/core/http/UrlPorts.cpp"
],
"versions": [
{
"version": "0",
"lessThan": "2026.08.0",
"versionType": "custom",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV40": [
{
"source": "8c484e69-127d-402b-9cdb-5f86ef43eb86",
"type": "Secondary",
"cvssData": {
"version": "4.0",
"vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:Y/R:A/V:D/RE:M/U:Amber",
"baseScore": 4.7,
"baseSeverity": "MEDIUM",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "NONE",
"vulnAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"subAvailabilityImpact": "NONE",
"exploitMaturity": "PROOF_OF_CONCEPT",
"confidentialityRequirement": "NOT_DEFINED",
"integrityRequirement": "NOT_DEFINED",
"availabilityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"Safety": "NOT_DEFINED",
"Automatable": "YES",
"Recovery": "AUTOMATIC",
"valueDensity": "DIFFUSE",
"vulnerabilityResponseEffort": "MODERATE",
"providerUrgency": "AMBER"
}
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-11-06T17:21:05.517519Z",
"id": "CVE-2026-121880",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "8c484e69-127d-402b-9cdb-5f86ef43eb86",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-639"
},
{
"lang": "en",
"value": "CWE-862"
}
]
}
],
"references": [
{
"url": "https://docs.posit.co/ide/news/#rstudio-2026.08.0",
"source": "8c484e69-127d-402b-9cdb-5f86ef43eb86"
},
{
"url": "https://trust.posit.co/updates",
"source": "8c484e69-127d-402b-9cdb-5f86ef43eb86"
}
]
}