{"id":"CVE-2023-45825","aliases":["GHSA-q24m-6h38-5xj8","GO-2023-2137"],"url":"https://o3.security/vulnerability/CVE-2023-45825","summary":"Token in custom credentials object can leak through logs in ydb-go-sdk","details":"### Impact\nSince [ydb-go-sdk/v3.48.6](https://github.com/ydb-platform/ydb-go-sdk/blob/v3.48.6/internal/balancer/balancer.go#L71) if you use a custom credentials object (implementation of interface [Credentials](https://github.com/ydb-platform/ydb-go-sdk/blob/master/credentials/credentials.go#L10)) it may leak into logs. This happens because this object could be serialized into an error message using `fmt.Errorf(\"something went wrong (credentials: %q)\", credentials)` during connection to the YDB server. Printf func use placeholder `%q` for string representation of argument with quotes. If an argument implements interface `fmt.Stringer`, it will used through `String()` func. In other cases used fallback - serialization with reflection.\n\nIf such logging occurred, a  malicious user with access to logs could read sensitive information (i.e. credentials) information and use it to get access to the database.\n\nWho is impacted: applications with custom credentials object with an explicit token field.\n\nA leak could have occurred if all of these conditions were met simultaneously:\n1) The credentials object does not implement the `fmt.Stringer` interface (does not have a `String()` method) - potentially these are custom credentials. Official credentials have a `String()` method.\n2) There was an error connecting to YDB during driver creation via `ydb.Open(...)`.\n3) Some logging system was configured (`ydb-go-sdk` does not log such errors by default).\n4) The connection error was logged into a system that a malicious user had access to.\n\n### Patches\n`ydb-go-sdk` contains this problem in versions from v3.48.6 to v3.53.2. The fix for this problem has been released in version v3.53.3 ([PR](https://github.com/ydb-platform/ydb-go-sdk/pull/859)).\n\n### Workarounds\nImplement the `fmt.Stringer` interface in your custom credentials type with explicit stringify of object state.","published":"2023-10-19T18:22:31.034Z","modified":"2026-08-12T03:51:23.274666412Z","cvss":{"score":5.5,"severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"Go","name":"github.com/ydb-platform/ydb-go-sdk/v3","fixedVersion":"3.53.3"}],"fix":{"url":"https://github.com/ydb-platform/ydb-go-sdk/pull/859","label":"ydb-platform/ydb-go-sdk#859"},"references":[{"type":"WEB","url":"https://github.com/ydb-platform/ydb-go-sdk/blob/master/credentials/credentials.go#L10"},{"type":"WEB","url":"https://github.com/ydb-platform/ydb-go-sdk/blob/v3.48.6/internal/balancer/balancer.go#L71"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/45xxx/CVE-2023-45825.json"},{"type":"ADVISORY","url":"https://github.com/ydb-platform/ydb-go-sdk/security/advisories/GHSA-q24m-6h38-5xj8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-45825"},{"type":"FIX","url":"https://github.com/ydb-platform/ydb-go-sdk/pull/859"},{"type":"WEB","url":"https://github.com/ydb-platform/ydb-go-sdk/commit/a0d92057c4e1bbdc5e85ae8d649edb0232b8fd4c"},{"type":"PACKAGE","url":"https://github.com/ydb-platform/ydb-go-sdk"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:23.274666412Z"}}