OpenBSD PPP PAP Flaw Allowed Authentication Bypass Across All Releases
OpenBSD fixed a high-severity authentication bypass in its PPP stack after researchers disclosed that the bug had existed since the original sppp code import from FreeBSD in 1999. The flaw affects sppp_pap_input() and all OpenBSD releases through 7.6 when the system is configured as a PAP authenticator on the PPPoE data path. By trusting attacker-controlled name_len and passwd_len values in bcmp() comparisons, the code could accept zero-length credentials as valid because a zero-length bcmp() returns success, allowing remote attackers to authenticate without legitimate credentials.
The disclosure also described a secondary kernel heap over-read caused when a supplied username length exceeds the allocated size of the stored credential, a condition introduced after credential fields became dynamically allocated in 2009. Researchers said the bug could let an attacker intercept or read PPPoE traffic and could also allow a rogue PPPoE server to impersonate a legitimate server during mutual authentication. OpenBSD committed a fix to -current on 2026-06-14, and a proof of concept reportedly showed successful PAP authentication with empty credentials followed by establishment of a full network-layer link.

Get ahead of threats like this
Mallory correlates global threat intelligence with your attack surface — know if you’re exposed before adversaries strike.
How this story unfolded
4 events from the most recent confirmed update back to the earliest known activity.
OpenBSD commits fix for PAP authentication bypass
OpenBSD committed a fix to -current for the high-severity sppp_pap_input() authentication bypass on 2026-06-14. The flaw affected all versions through 7.6 and allowed zero-length credentials to authenticate successfully due to attacker-controlled length values being used in bcmp() comparisons.
Vulnerability disclosure details PAP bypass and PoC
The vulnerability was publicly disclosed with technical details describing the PAP null-auth weakness, affected OpenBSD versions, PPPoE reachability, and a Python proof of concept that successfully authenticated with empty credentials and established a network-layer link.
2009 change enables secondary kernel heap over-read
A 2009 change that moved credential fields to dynamic allocation enabled a secondary kernel heap over-read condition in the same code path when a supplied PAP name length exceeded the allocated stored credential size.
OpenBSD imports vulnerable sppp code from FreeBSD
The vulnerable comparison pattern in OpenBSD's PPP stack originated when sppp code was imported from FreeBSD in July 1999, introducing the PAP authentication bypass condition.
Related entities
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
Sources
6 references tracked. Mallory keeps watching after this page renders.
OpenBSD Authentication Bypass: PoC Exploit Disclosed
securityonline.info
Open source27-Year-Old OpenBSD Vulnerability Allows Attackers to Bypass PAP Authentication Entirely
cybersecuritynews.com
Open sourceA 27-Year-Old Authentication Bypass in OpenBSD's PPP Stack · Argus Blog
blog.argus-systems.ai
Open source27 Years in the Dark: OpenBSD Fixes Ancient Remote Kernel Auth Bypass : r/netsec
reddit.com
Open sourcesppp_pap_input(): do not compare credentials if the lengths of received · openbsd/src@076e2b1 · GitHub
github.com
Open sourceoss-sec: OpenBSD sppp_pap_input: PAP authentication bypass
seclists.org
Open sourceSee the full picture, correlated to your attack surface.
Map indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.


