GHSA-RXRH-4J9H-XGG9
Vulnerability from github – Published: 2026-07-02 20:32 – Updated: 2026-07-02 20:32Summary
When MySQL or PostgreSQL service bindings from VCAP_SERVICES include TLS client credentials, the Connectors library writes those credentials to temporary files in Path.GetTempPath() using File.CreateText. On Linux, File.CreateText creates files with mode 0644 (world-readable) under the process umask, and the files are never deleted. The same key material is protected at mode 0400 in /proc/<pid>/environ.
Impact
Any process co-located in the container that runs as a different UID can read the TLS client private key from /tmp and use it to impersonate the application when connecting to the backing database over mutual TLS.
Affected configuration
- Application is deployed on Cloud Foundry or another environment that populates
VCAP_SERVICESwith a MySQL or PostgreSQL service binding that includessslKeycredentials. - A process running as a different UID shares the container's filesystem.
Mitigations
If an immediate upgrade is not possible, prevent other processes from running in the container under a different UID with access to /tmp.
{
"affected": [
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 4.1.0"
},
"package": {
"ecosystem": "NuGet",
"name": "Steeltoe.Configuration.Abstractions"
},
"ranges": [
{
"events": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.2.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-50267"
],
"database_specific": {
"cwe_ids": [
"CWE-312",
"CWE-732"
],
"github_reviewed": true,
"github_reviewed_at": "2026-07-02T20:32:09Z",
"nvd_published_at": "2026-06-17T23:17:04Z",
"severity": "MODERATE"
},
"details": "### Summary\n\nWhen MySQL or PostgreSQL service bindings from `VCAP_SERVICES` include TLS client credentials, the Connectors library writes those credentials to temporary files in `Path.GetTempPath()` using `File.CreateText`. On Linux, `File.CreateText` creates files with mode `0644` (world-readable) under the process umask, and the files are never deleted. The same key material is protected at mode `0400` in `/proc/\u003cpid\u003e/environ`.\n\n### Impact\n\nAny process co-located in the container that runs as a different UID can read the TLS client private key from `/tmp` and use it to impersonate the application when connecting to the backing database over mutual TLS.\n\n### Affected configuration\n\n- Application is deployed on Cloud Foundry or another environment that populates `VCAP_SERVICES` with a MySQL or PostgreSQL service binding that includes `sslKey` credentials.\n- A process running as a different UID shares the container\u0027s filesystem.\n\n### Mitigations\n\nIf an immediate upgrade is not possible, prevent other processes from running in the container under a different UID with access to `/tmp`.",
"id": "GHSA-rxrh-4j9h-xgg9",
"modified": "2026-07-02T20:32:09Z",
"published": "2026-07-02T20:32:09Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/SteeltoeOSS/security-advisories/security/advisories/GHSA-rxrh-4j9h-xgg9"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-50267"
},
{
"type": "WEB",
"url": "https://github.com/SteeltoeOSS/Steeltoe/commit/8dd97cc6c4b184121a4bd1f92f9ac16918433471"
},
{
"type": "PACKAGE",
"url": "https://github.com/SteeltoeOSS/security-advisories"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
}
],
"summary": "Steeltoe: TLS private keys written to /tmp with default permissions, never deleted"
}
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.