Severity by source
AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
Adjacent PPP-link reach (AV:A) and no auth (PR:N); a zero-length field is trivial to craft so AC:L versus NVD's AC:H; auth bypass yields authorized network access, giving scope change and high CIA.
Primary rating from Vendor (mitre).
CVSS VectorNVD
Lifecycle Timeline
9DescriptionNVD
sppp_pap_input in sys/net/if_spppsubr.c in OpenBSD before 076e2b1 allows authentication bypass via certain zero values for lengths.
AnalysisAI
Authentication bypass in OpenBSD's sppp PAP handler (sppp_pap_input in sys/net/if_spppsubr.c) lets an adjacent attacker on a PPP link authenticate without valid credentials by supplying zero-length name/password fields, which the kernel only bounds-checked against an upper limit (AUTHMAXLEN) instead of the exact expected credential length. All OpenBSD builds before commit 076e2b1 that terminate PPP sessions with PAP authentication are affected. Publicly available exploit code exists (an Argus Systems PoC script) and a vendor fix is available, though EPSS is low (0.21%, 12th percentile) and the flaw is not in CISA KEV, so this is proof-of-concept rather than confirmed active exploitation.
Technical ContextAI
The bug lives in OpenBSD's synchronous/asynchronous PPP subsystem (sppp), which implements PAP (Password Authentication Protocol, RFC 1334) inside the kernel network stack. When a peer sends a PAP Authenticate-Request, sppp_pap_input parses a name field and a password field, each preceded by a length byte. The vulnerable code validated only that name_len and passwd_len did not exceed AUTHMAXLEN, never that they matched the length of the locally configured expected credential (sp->hisauth.name / sp->hisauth.secret). This is a classic CWE-1284 (Improper Validation of Specified Quantity in Input): with a length of zero, the subsequent comparison against the configured secret degenerates and the credential check passes, granting a successful PAP authentication. The fix (commit 076e2b1c1fc4ac0883a72d3544131ad5cee7adf8, revision 1.202) replaces the '> AUTHMAXLEN' bounds checks with strict equality checks 'name_len != strlen(sp->hisauth.name)' and 'passwd_len != strlen(sp->hisauth.secret)', rejecting any request whose field lengths do not exactly match the expected credential. The affected CPE is cpe:2.3:a:openbsd:openbsd, and reporting notes the logic error persisted for roughly 27 years.
RemediationAI
Apply the vendor fix by updating sys/net/if_spppsubr.c to revision 1.202 or later (commit 076e2b1c1fc4ac0883a72d3544131ad5cee7adf8) and rebuilding the kernel, or install an OpenBSD errata/syspatch or release build that incorporates it - this is the primary and complete remediation, since the patch enforces exact-length credential validation (see https://github.com/openbsd/src/commit/076e2b1c1fc4ac0883a72d3544131ad5cee7adf8 and the disclosure at https://www.openwall.com/lists/oss-security/2026/06/16/9). Because the released tagged patched build should be confirmed against OpenBSD errata, treat the commit as the authoritative fix reference. If you cannot patch immediately, the most effective compensating control is to avoid PAP: switch affected PPP links to CHAP authentication, which does not traverse the vulnerable sppp_pap_input path (trade-off: requires peer support and reconfiguration of both ends). Where PAP cannot be removed, restrict the PPP link to trusted physical/adjacent peers and place the concentrator behind link-layer access controls so untrusted parties cannot present PAP requests (trade-off: does not help against a malicious or spoofed peer already on the link). Disabling or removing sppp/PPP interfaces entirely eliminates exposure but breaks any dependent connectivity.
OpenSSH server (sshd) 9.1 introduced a double-free vulnerability during options.kex_algorithms handling. Rated medium se
sshd in OpenSSH before 7.3, when SHA256 or SHA512 are used for user password hashing, uses BLOWFISH hashing on a static
The kbdint_next_device function in auth2-chall.c in sshd in OpenSSH through 6.9 does not properly restrict the processin
The auth_password function in auth-passwd.c in sshd in OpenSSH before 7.3 does not limit password lengths for password a
Remote code execution in OpenSSH's sshd server (regression of CVE-2006-5051) allows unauthenticated remote attackers to
httpd in OpenBSD allows remote attackers to cause a denial of service (memory consumption) via a series of requests for
A vulnerability was found in OpenSSH when the VerifyHostKeyDNS option is enabled. Rated medium severity (CVSS 6.8), this
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
The resend_bytes function in roaming_common.c in the client in OpenSSH 5.x, 6.x, and 7.x before 7.1p2 allows remote serv
Multiple CRLF injection vulnerabilities in session.c in sshd in OpenSSH before 7.2p2 allow remote authenticated users to
smtp_mailaddr in smtp_session.c in OpenSMTPD 6.6, as used in OpenBSD 6.6 and other products, allows remote attackers to
Use-after-free vulnerability in OpenSMTPD before 5.7.2 allows remote attackers to cause a denial of service (crash) or e
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37521