CVE-2026-31893
Tunnelblick is an open source graphic user interface for OpenVPN on macOS. In versions 3.3beta26 through 9.0beta01, any local user can read arbitrary root-owned files by exploiting a symlink following vulnerability in tunnelblick-helper, reachable through the world-accessible tunnelblickd Unix socket. The socket is configured with mode 0666, allowing any local user to connect. No authorization check is performed on the connecting client. The tunnelblick-helper process constructs a path to config.ovpn inside a user-controlled .tblk directory and reads it as root without symlink validation. An attacker can create a .tblk configuration with a symlinked config.ovpn pointing to any file and request tunnelblickd to read it. This issue has been fixed in versions 9.0beta02.
CVSS
- Versión: 4.0
- Vector: CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/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:X/R:X/V:X/RE:X/U:X
- Puntuación base: 6.8
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.19%
- Percentil entre todas las CVEs puntuadas: 8
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
CWE
- CWE-61
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-31893",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-31893",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-05-05T19:37:28.228929Z"
}
}
],
"cvssMetricV31": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 5.5,
"attackVector": "LOCAL",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "HIGH"
},
"impactScore": 3.6,
"exploitabilityScore": 1.8
}
],
"cvssMetricV40": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 6.8,
"Automatable": "NOT_DEFINED",
"attackVector": "LOCAL",
"baseSeverity": "MEDIUM",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/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:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "LOW",
"subIntegrityImpact": "NONE",
"vulnIntegrityImpact": "NONE",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "NONE",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "Tunnelblick",
"product": "Tunnelblick",
"versions": [
{
"status": "affected",
"version": ">= 3.3beta26, < 9.0beta02"
}
]
}
]
}
],
"published": "2026-05-05T20:16:35.373",
"references": [
{
"url": "https://github.com/Tunnelblick/Tunnelblick/releases/tag/v9.0beta02",
"tags": [
"Product",
"Release Notes"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/Tunnelblick/Tunnelblick/security/advisories/GHSA-927j-vcjf-hq69",
"tags": [
"Exploit",
"Vendor Advisory"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/Tunnelblick/Tunnelblick/security/advisories/GHSA-927j-vcjf-hq69",
"tags": [
"Exploit",
"Vendor Advisory"
],
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
],
"vulnStatus": "Analyzed",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-61"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Tunnelblick is an open source graphic user interface for OpenVPN on macOS. In versions 3.3beta26 through 9.0beta01, any local user can read arbitrary root-owned files by exploiting a symlink following vulnerability in tunnelblick-helper, reachable through the world-accessible tunnelblickd Unix socket. The socket is configured with mode 0666, allowing any local user to connect. No authorization check is performed on the connecting client. The tunnelblick-helper process constructs a path to config.ovpn inside a user-controlled .tblk directory and reads it as root without symlink validation. An attacker can create a .tblk configuration with a symlinked config.ovpn pointing to any file and request tunnelblickd to read it. This issue has been fixed in versions 9.0beta02."
},
{
"lang": "es",
"value": "Tunnelblick es una interfaz gráfica de usuario de código abierto para OpenVPN en macOS. En las versiones 3.3beta26 hasta la 9.0beta01, cualquier usuario local puede leer archivos arbitrarios propiedad de root explotando una vulnerabilidad de seguimiento de symlink en tunnelblick-helper, accesible a través del socket Unix tunnelblickd de acceso global. El socket está configurado con el modo 0666, permitiendo que cualquier usuario local se conecte. No se realiza ninguna comprobación de autorización en el cliente que se conecta. El proceso tunnelblick-helper construye una ruta a config.ovpn dentro de un directorio .tblk controlado por el usuario y lo lee como root sin validación de symlink. Un atacante puede crear una configuración .tblk con un config.ovpn con symlink apuntando a cualquier archivo y solicitar a tunnelblickd que lo lea. Este problema ha sido solucionado en las versiones 9.0beta02."
}
],
"lastModified": "2026-07-25T11:10:00.100",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:tunnelblick:tunnelblick:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "0091B93B-5FCA-4B34-8578-6D73399E5D7B",
"versionEndExcluding": "8.0.1",
"versionStartIncluding": "3.5.3"
},
{
"criteria": "cpe:2.3:a:tunnelblick:tunnelblick:3.3:beta26:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "DA65FDFE-43E0-4846-B674-4EF26613E294"
},
{
"criteria": "cpe:2.3:a:tunnelblick:tunnelblick:8.1:beta01:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "E86DA6F9-1B0E-496D-B000-3B53F32F46F9"
},
{
"criteria": "cpe:2.3:a:tunnelblick:tunnelblick:8.1:beta02:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "5EEBCC0A-309F-4BF1-8B8E-548588FD9418"
},
{
"criteria": "cpe:2.3:a:tunnelblick:tunnelblick:8.1:beta03:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "F94C886A-E185-4A58-B072-56B4D0FA7FAC"
},
{
"criteria": "cpe:2.3:a:tunnelblick:tunnelblick:9.0:beta01:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "3BBF415C-6088-4399-B99F-421E08CD79A1"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "security-advisories@github.com"
}