To access material, start machines and answer questions login.
On 5 November 2026, OpenSSH shipped an emergency release. A researcher had found that OpenSSH running on Alpine , and on anything else built with musl libc, could be tricked into accepting a locked account's password with nothing more than a very long string of the same character. No exploit chain, no custom tooling, just a standard ssh client, a password a few hundred bytes long, and one extra try when the first attempt fails. The bug now has a CVE, CVE-2026-123158, rated 8.1 on CVSS 3.1.
The bug does not live in OpenSSH. It lives in musl's crypt() function, the same function Linux has used to check passwords for decades. musl changed how that function behaves when it fails, and nobody noticed that the new failure behaviour happened to look exactly like a locked account's own password field. Put those two things next to each other and a login check that should always say no starts saying yes.
This room walks you through the whole chain. You will start by looking at how /etc/shadow and crypt() actually decide whether a password is correct, since that foundation is what makes the rest of the room make sense. From there you will see exactly where musl's version of crypt() diverges from everyone else's, and why that divergence only matters on systems that are not using PAM. Then you will carry out the bypass yourself against a deliberately vulnerable Alpine Linux lab machine, repeat it independently against a second account, and finish by applying the fix.
Learning objectives:
- Explain how
/etc/shadowandcrypt()gate a Linux password login, and what a locked-account marker like*means - Explain the difference between PAM-mediated and direct
crypt()-based password authentication in OpenSSH - Describe why musl's
crypt()returning"*"on failure creates a collision with the locked-account marker - Carry out the bypass against a vulnerable Alpine Linux lab machine using nothing but a standard client
- Apply the immediate mitigation and understand the permanent fix
Prerequisites:
- Linux Fundamentals Part 1, basic terminal navigation and file permissions
- Hashing - Crypto 101, what a hash is and why passwords are stored hashed rather than in plaintext
No prior Alpine Linux or musl experience is assumed. By the end of this room you will understand a real, still-unpatched-in-the-wild authentication bypass well enough to find it, exploit it, and explain exactly why it works.
Ready to learn Cyber Security?
The OpenSSH: CVE-2026-123158 room is only available for Premium or Max subscribers. Signup now to access more than 500 free rooms and learn cyber security through a fun, interactive learning environment.
Already have an account? Log in
