Lỗi nằm trong đường xử lý xác thực mật khẩu của sshd khi OpenSSH chạy trên Linux dùng musl libc và tắt PAM. Khi không dùng PAM, sshd gọi crypt() để băm mật khẩu do người dùng gửi rồi so sánh kết quả với trường mật khẩu được lưu. Với tài khoản có trường mật khẩu quá ngắn để chứa salt, sshd có thể sử dụng salt của tài khoản khác. Trong musl, crypt() trả về chuỗi * như một dấu hiệu lỗi khi mật khẩu vượt quá giới hạn độ dài; chuỗi này cũng chính là giá trị thường dùng cho tài khoản không có mật khẩu trong /etc/shadow, nên phép so sánh có thể thành công. Điều kiện khai thác còn phụ thuộc vào cấu hình tài khoản: cần một tài khoản có trường mật khẩu *, ít nhất một tài khoản khác có hash bắt đầu bằng $5$ hoặc $6$, và xác thực mật khẩu phải được bật. Bản sửa trong đường dẫn xác thực của sshd bổ sung kiểm tra độ dài tối thiểu của chuỗi được xem là password hash, đồng thời xử lý bộ nhớ và giá trị mật khẩu an toàn hơn. OpenSSH mô tả nguyên nhân gốc nằm ngoài sshd, nhưng cung cấp workaround trong sshd để ngăn đường khai thác này.