{"id":"CVE-2026-48859","title":"Observable Timing Discrepancy vulnerability in Erlang/OTP ssh (ssh_auth, ssh_options modules) allows unauthenticated remote username enumeration via timing side-channel in password authentication.\n\nWhen the SSH daemon is configured with …","summary":"Observable Timing Discrepancy vulnerability in Erlang/OTP ssh (ssh_auth, ssh_options modules) allows unauthenticated remote username enumeration via timing side-channel in password authentication.\n\nWhen the SSH daemon is configured with …","severity":"medium","cvss":5.3,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","cwe":["CWE-208"],"vendor":"erlang","product":"erlang/otp","affected":["erlang/otp >= 29.0, < 29.0.2","erlang/ssh >= 6.0, < 6.0.1"],"patched":["erlang/otp 29.0.2","erlang/ssh 6.0.1"],"published":"2026-06-10","updated":"2026-09-08","sourceUpdated":"2026-09-08T01:17:31.137","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-48859","references":[{"url":"https://cna.erlef.org/cves/CVE-2026-48859.html","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"},{"url":"https://github.com/erlang/otp/commit/c342092ef4b369bb409d5b71ac8fd83bab74aedf","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"},{"url":"https://github.com/erlang/otp/security/advisories/GHSA-3w6p-vwhf-wvp4","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-48859","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"},{"url":"https://www.erlang.org/doc/system/versions.html#order-of-versions","label":"6b3ad84c-e1a6-4bf7-a703-f496b71e49db"}],"tags":["nvd","cve.org"],"ssvc":{"exploitation":"none","automatable":"yes","technicalImpact":"partial","timestamp":"2026-06-10T16:19:16.914933Z"},"epss":0.00354,"epssPercentile":0.29214,"ingestedAt":"2026-09-08T13:33:24.957Z","slug":"CVE-2026-48859","body":"## Overview\n\nObservable Timing Discrepancy vulnerability in Erlang/OTP ssh (ssh_auth, ssh_options modules) allows unauthenticated remote username enumeration via timing side-channel in password authentication.\n\nWhen the SSH daemon is configured with the user_passwords or password option, ssh_auth:check_password/3 performs a PBKDF2-SHA256 computation with 600,000 iterations (~300ms) for valid usernames, but returns immediately (~0ms) for invalid usernames via the ssh_options:get_password_option/2 path. This timing difference is detectable in a single authentication attempt and allows an unauthenticated attacker to distinguish valid from invalid usernames.\n\nThe user_passwords and password options are documented as intended for test purposes; the recommended alternative is pwdfun, which is not affected by this vulnerability.\n\nThis vulnerability is associated with program files lib/ssh/src/ssh_auth.erl and lib/ssh/src/ssh_options.erl.\n\nThis issue affects OTP from OTP 29.0 before OTP 29.0.2, corresponding to ssh from 6.0 before 6.0.1.\n\n## Affected\n\n- `erlang/otp >= 29.0, < 29.0.2`\n- `erlang/ssh >= 6.0, < 6.0.1`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `erlang/otp 29.0.2`\n- `erlang/ssh 6.0.1`","depth":"sunlit","depthScore":29,"depthScoreParts":{"impact":29.2,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}