Skip to content

Security Also reported elsewhere2 publishers 2 min read Published

Public exploit takes root on OpenBSD 7.9 through a bug that shipped as a reliability fix

Calif published a working exploit that gets root on OpenBSD 7.9 past KARL, SMAP and SMEP by chaining two flaws patched on September 14 and 30. Neither flaw has a CVE, and The Hacker News reports no evidence of attacks.

The Watch · Security desk

Send a correction

Illustration accompanying Public exploit takes root on OpenBSD 7.9 through a bug that shipped as a reliability fix
Generated illustration
Exploit pushes a 16-bit counter past its maximum OpenBSD's shm_nattch attachment counter, a signed 16-bit short in BSD sources dating to 1988, and what the exploit does to it.

Key figures: the exploit wraps the shm_nattch counter to -32,643; its maximum as a signed 16-bit short is 32,767; to get there the exploit forks 259 processes and maps 127 shared-memory segments.

Exploit pushes a 16-bit counter past its maximum
FigureValueNoteClaim
shm_nattch after the exploit wraps it−32,643 counter value9
Counter maximum (16-bit)32,767 counter value8
Processes forked259 processes9
Segments mapped127 segments9

What happened

  • The exploit maps 127 shared-memory segments and forks 259 processes, wrapping the shm_nattch counter from its 32,767 maximum to -32,643.
  • A race condition then triggers a use-after-free, because the corrupted reference count makes the kernel free memory that other processes still use.
  • A separate out-of-bounds write corrupts multicast-membership counters, and the decrements on socket close edit page-table entries to bypass SMAP and SMEP.
  • With that done, the exploit overwrites a function pointer at a predictable kernel address and runs its own code.
  • Both errata install through syspatch on all architectures, and OpenBSD 7.8 also received the integer-overflow fix.

Why it matters

  • Who's exposed exposure OpenBSD 7.9 hosts that give shell accounts to other users or run untrusted code, and lack errata 018 and 026, have a published local route to root.
  • Who has to decide decision A patch queue that applies only security-labeled errata would skip 018, the entry point for the chain.
  • What it limits constraint The errata fix two bugs. Calif's four hardening proposals, including kernel-allocator randomization, are separate changes to OpenBSD's kernel.

The KARL bypass comes from the allocators. "While OpenBSD's KARL relinks the kernel binary to randomize both function and data addresses, the kernel's memory allocators remain deterministic," researcher Andrew Griffiths wrote [13]. Neither the boot-time nor the best-fit allocator randomizes a base address [14]. On a given machine, structures set up early in boot sit at identical addresses every time it restarts, and that includes function pointers in the handlers for the lo0 and enc0 network interfaces [14]. So the exploit works without any information-leak bug [14].

OpenBSD shipped the use-after-free fix 16 days after the overflow fix [17]. Calif said it reported the flaws to OpenBSD "earlier this year" [16]. The source does not give a month. The proof-of-concept code is on GitHub [16].

This is a local privilege escalation [1]. The attacker needs code running on the machine first. In our view, a host where only administrators log in gains little new exposure. A host that hands shell accounts to other people, or runs code it does not control, now has a published path from an unprivileged user to root.

The oldest link is a type choice. The shm_nattch counter is a signed 16-bit short with a maximum of 32,767 in BSD sources dating to 1988 [8]. OpenBSD inherited the type and never widened it [8]. Calif's first hardening proposal, safe-unlinking for kernel linked lists, is already used by FreeBSD and NetBSD [15].

What to watch

  • Whether a CVE is assigned to either flaw; The Hacker News reports none as of publication.
  • Whether anyone reports exploitation now that Calif's proof-of-concept code is on GitHub.
  • Whether OpenBSD adopts any of Calif's four hardening proposals, such as allocator randomization.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence58
Adoption
Not scored
Hype gap−10
Incentives
Not scored
Confidence60
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    A local privilege escalation exploit gains root on OpenBSD 7.9 by chaining a roughly 37-year-old integer overflow with a separate kernel flaw, bypassing KARL kernel-address randomization and SMAP and SMEP hardware protections.

    Reported Supported Source: The Hacker NewsView cited source
  2. [2]

    Security firm Calif, which found and reported the flaws, published a detailed writeup and full proof-of-concept code after OpenBSD shipped patches for both issues in September.

    Reported Supported Source: The Hacker NewsView cited source
  3. [3]

    The integer overflow in the shmat(4) attach function was fixed in errata 018, shipped September 14 as a reliability fix.

    Reported Supported Source: The Hacker NewsView cited source

Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.

Add to ChatGPTAdd to Claude

Sources

2 independent publishers whose own reporting we read for this story.

  1. dev.to

    1 article · October 16, 2026

    Researchers show how two vulnerabilities in OpenBSD 7.9 could grant full administrator privileges
  2. thehackernews.com

    1 article · October 16, 2026

    Researchers Demonstrate OpenBSD Root Exploit Chaining 37-Year-Old Shared-Memory Bug

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Loading related stories