Fedora has published a security update for the stb package on Fedora 45 addressing CVE-2026-79516, a local denial-of-service (DoS) vulnerability in stb_sprintf — the popular single-header, public-domain string formatting library written by Sean Barrett and embedded in a large number of C/C++ applications. The advisory (FEDORA-2026-63e7be05c3, tracked via LinuxSecurity and the Fedora update system) ships a patched build of the library and should be treated as a routine-but-mandatory maintenance action on all Fedora 45 systems.
On its face, a local DoS in a string-formatting helper sounds low-stakes. It isn't, for two reasons. First, stb_sprintf is frequently compiled into services, daemons, and tooling that handle untrusted input — log processors, game engines, telemetry agents, rendering pipelines, and CLI utilities. A crash primitive in a formatting routine is a reliability and availability bug in every binary that carries it. Second, the bigger exposure is almost never the distro package itself: it's the vendored copies of stb_sprintf.h sitting inside your own source trees and third-party tarballs, which a dnf update will not touch.
Severity Assessment
- CVE: CVE-2026-79516
- Type: Local denial of service (application crash / availability impact)
- Affected component:
stb_sprintf(shipped as thestbpackage on Fedora) - Platform: Fedora 45 (other distributions and vendored copies should be reviewed independently)
- CVSS: A formal score had not been published at the time of this writing; treat availability impact as moderate for multi-tenant and service-bearing hosts
- Exploitation status: No public proof-of-concept or confirmed in-the-wild exploitation has been reported; the flaw is not currently listed in CISA KEV. Attack prerequisites (local code execution or the ability to feed attacker-controlled format/input data into a vulnerable application) limit remote exposure.
Technical Analysis
What Is stb_sprintf and Why Does It Matter?
stb_sprintf is a drop-in replacement for the C standard library's sprintf/snprintf family. Developers choose it for performance, portability, and independence from locale and libc quirks. Because it is distributed as a single header file (stb_sprintf.h), it is almost always compiled directly into the consuming binary rather than dynamically linked. Fedora packages the stb headers as the stb package so dependent packages can build against a maintained copy — but any project that copied the header into its own repository is carrying its own private instance of the bug.
How the Vulnerability Works (Defender's View)
Based on the advisory classification, CVE-2026-79516 is a local denial-of-service condition reachable through stb_sprintf's formatting/parsing logic. The exploitation model for this class of defect is consistent:
- A local attacker — or an unprivileged process, script, or user-controlled data stream — supplies input that is eventually passed through an
stb_sprintfformatting call in a vulnerable application. - The vulnerable code path mishandles the crafted input, causing a crash (invalid memory access, assertion-style abort, or unbounded behavior that terminates the process).
- The host application dies. If the application is a long-running service, a worker in a supervisor loop, or a shared build/render node, this produces repeated crashes, service interruption, and potentially resource exhaustion from restart storms and core dump generation.
Practical impact scenarios to care about:
- Multi-user systems and CI/build hosts: any unprivileged user who can drive input into an affected binary can crash it.
- Services parsing untrusted text: log shippers, exporters, and agents that format attacker-influenced strings (HTTP headers, file names, metadata) through stb-based code.
- Container images built on Fedora 45: the vulnerable header may have been compiled in at image build time — updating the host does nothing for the container.
Affected and Patched Versions
The Fedora update targets the stb package on Fedora 45. The advisory does not ship a new upstream stb release; it backports the specific security fix for CVE-2026-79516 into the Fedora package. Rather than hard-coding a version string you should verify blindly, confirm your system's status directly against the Fedora update metadata (commands in the remediation section below). For anything not built against the system package — vendored headers, statically built third-party binaries, container images — you must identify and rebuild those artifacts yourself.
Detection & Response
A local DoS in a formatting library does not produce a classic "attacker artifact" like a dropped payload or a suspicious parent process. The reliable telemetry here is crash telemetry: repeated segfaults and core dumps of the same binary, crash-looping supervised services, and — on the inventory side — identification of vulnerable package builds and vendored header copies. The detections below are tuned to fire on crash patterns consistent with exploitation or accidental triggering of this flaw, and on the presence of unpatched components.
Sigma Rules
---
title: Repeated Application Crashes Indicating Local DoS Exploitation
id: 3f8a1c94-2b7d-4e51-9a63-5c7d9e2f1a08
status: experimental
description: Detects repeated segmentation fault or core dump messages for the same process on Linux hosts, consistent with local denial-of-service exploitation against applications embedding vulnerable stb_sprintf code (CVE-2026-79516).
references:
- https://linuxsecurity.com/advisories/fedora/fedora-45-stb-2026-63e7be05c3
- https://attack.mitre.org/techniques/T1499/
author: Security Arsenal
date: 2026/04/10
tags:
- attack.impact
- attack.t1499.004
logsource:
product: linux
service: syslog
detection:
selection:
Message|contains:
- 'segfault at'
- 'systemd-coredump'
- 'Process Core Dump'
condition: selection
falsepositives:
- Legitimate application bugs on development and QA systems
- Fuzzing infrastructure intentionally crashing binaries
level: medium
---
title: Crash Loop of Supervised Service on Linux Host
id: 91c4e7b2-6d3a-4f28-b105-8e6c2a4d7f93
status: experimental
description: Detects systemd repeatedly restarting a failed service, a pattern produced when a local DoS such as CVE-2026-79516 crashes a daemon that is under supervisor control. High crash-loop frequency degrades availability and floods disk with core dumps.
references:
- https://linuxsecurity.com/advisories/fedora/fedora-45-stb-2026-63e7be05c3
- https://attack.mitre.org/techniques/T1499/
author: Security Arsenal
date: 2026/04/10
tags:
- attack.impact
- attack.t1499
logsource:
product: linux
service: systemd
detection:
selection:
Message|contains:
- 'start request repeated too quickly'
- 'Failed with result'
- 'core-dump'
- 'Scheduled restart job'
condition: selection
falsepositives:
- Misconfigured services during deployments
- Dependency failures after package updates
level: medium
KQL — Microsoft Sentinel / Defender
If you ingest Fedora syslog via the Sentinel Syslog/CEF connectors (or AMA), the following query surfaces crash-loop behavior on hosts running binaries that may embed the vulnerable library. Tune the lookback and threshold to your environment's baseline.
// Hunt: repeated process crashes / core dumps on Linux hosts (possible local DoS triggering, e.g. CVE-2026-79516 in stb_sprintf)
let Lookback = 24h;
let CrashThreshold = 5;
Syslog
| where TimeGenerated >= Lookback
| where SyslogMessage has_any ("segfault at", "systemd-coredump", "Process Core Dump", "core-dump")
| extend CrashedProcess = extract(@"segmentation fault in ([^\s]+)", 1, SyslogMessage)
| extend CrashedProcess = iif(isempty(CrashedProcess), extract(@"Process \d+ \(([^\)]+)\)", 1, SyslogMessage), CrashedProcess)
| summarize CrashCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
by Computer, CrashedProcess
| where CrashCount >= CrashThreshold
| sort by CrashCount desc;
// Companion: verify Fedora hosts that have NOT logged the stb security update
// (assumes dnf transaction output is forwarded to syslog or collected via custom logs)
Syslog
| where TimeGenerated >= 7d
| where SyslogMessage has "stb" and SyslogMessage has_any ("Upgraded", "Updated")
| summarize LastStbUpdate = max(TimeGenerated) by Computer
| sort by LastStbUpdate asc;
Velociraptor VQL
Use this artifact to inventory the installed stb package version and enumerate recent core dumps across your Fedora 45 fleet. Core dumps of the same binary recurring over time are your strongest exploitation/tripwire signal; the package query tells you whether the system copy is patched.
-- Artifact: Inventory stb package version and recent core dumps (CVE-2026-79516 triage)
-- Target: Fedora 45 Linux endpoints
SELECT * FROM foreach(
row={ SELECT * FROM execve(argv=['/usr/bin/rpm', '-q', 'stb', '--qf', '%{NAME}-%{VERSION}-%{RELEASE}\n']) },
query={
SELECT Stdout AS InstalledStbPackage FROM scope()
})
-- Enumerate recent systemd core dumps to identify crash-looping binaries
SELECT * FROM foreach(
row={ SELECT * FROM execve(argv=['/usr/bin/coredumpctl', 'list', '--no-pager', '--since', '7 days ago']) },
query={
SELECT Stdout AS CoreDumpEntries FROM scope()
})
-- Fallback: raw core dump files if coredumpctl is unavailable
SELECT FullPath, Size, Mtime
FROM glob(globs='/var/lib/systemd/coredump/*')
WHERE Mtime > now() - 604800
ORDER BY Mtime DESC
Remediation and Verification Script
#!/usr/bin/env bash
# CVE-2026-79516 - Fedora 45 stb_sprintf local DoS remediation & verification
# Run with sudo on each Fedora 45 host.
set -euo pipefail
# 1) Confirm platform
source /etc/os-release
echo "[i] Detected: ${PRETTY_NAME}"
if [[ "${VERSION_ID}" != "45" ]]; then
echo "[!] This script targets Fedora 45. Adjust for your release."
fi
# 2) Show current stb package state
echo "[i] Currently installed stb package:"
rpm -q stb --qf '%{NAME}-%{VERSION}-%{RELEASE} %{BUILDTIME:date}\n' || echo "[!] stb package not installed"
# 3) Confirm the CVE is addressed by available updates
echo "[i] Querying Fedora update metadata for CVE-2026-79516:"
dnf updateinfo info --cve CVE-2026-79516 || echo "[!] No updateinfo entry found - check mirror sync status"
# 4) Apply the security update
echo "[i] Applying stb security update..."
dnf upgrade -y --advisory=FEDORA-2026-63e7be05c3 stb || dnf upgrade -y stb
# 5) Verify post-patch state
echo "[i] Post-update stb package:"
rpm -q stb --qf '%{NAME}-%{VERSION}-%{RELEASE} %{BUILDTIME:date}\n'
# 6) Identify packages that consumed stb at build time (rebuild candidates)
echo "[i] Packages requiring stb headers (may need rebuild/reinstall):"
dnf repoquery --whatrequires stb 2>/dev/null || true
# 7) Hunt for vendored stb_sprintf.h copies in application trees (NOT fixed by dnf)
echo "[i] Searching for vendored stb_sprintf.h copies outside the system package:"
grep -rsl --include='stb_sprintf.h' 'stb_sprintf' /opt /srv /usr/local /home 2>/dev/null || echo "[i] No vendored copies found in searched paths"
# 8) Review recent core dumps for crash-looping binaries
echo "[i] Recent core dumps (last 7 days) - investigate repeat offenders:"
coredumpctl list --no-pager --since '7 days ago' 2>/dev/null || ls -lt /var/lib/systemd/coredump/ 2>/dev/null || echo "[i] No core dumps found"
echo "[+] Done. Rebuild any application with a vendored stb_sprintf.h against the patched header and redeploy container images built from Fedora 45 base layers."
Remediation
- Patch Fedora 45 systems immediately. Apply advisory FEDORA-2026-63e7be05c3 via
dnf upgrade --advisory=FEDORA-2026-63e7be05c3 stb(or a fulldnf upgrade). Confirm the advisory is visible withdnf updateinfo info --cve CVE-2026-79516. Reference: https://linuxsecurity.com/advisories/fedora/fedora-45-stb-2026-63e7be05c3 - Rebuild dependent packages. Anything built against the system
stbheaders carries the fix only after a rebuild. Enumerate consumers withdnf repoquery --whatrequires stband track rebuilds to completion. - Hunt vendored copies — this is where the real residual risk lives.
stb_sprintf.his routinely copied into source repositories, third-party SDKs, game engines, and internal tooling. Search your repos, build trees, and deployed/opt//usr/localpaths for the header, inventory every hit, and rebuild those artifacts against the patched source. A distro patch does not reach a static, vendored copy. - Rebuild container images. Any image based on Fedora 45 (or any image that vendored the header) compiled the vulnerable code into the binary at build time. Rebuild from patched bases, rescan images, and redeploy.
- Monitor crash telemetry as a tripwire. Until patching and rebuilds are complete, alert on repeated segfaults and systemd crash loops (rules above). A sudden crash-loop pattern on a service that formats untrusted input is a reasonable indicator of someone exercising this flaw.
- Reduce blast radius. On multi-user and CI hosts, enforce coredump size limits (
/etc/systemd/coredump.conf,ulimit -c) to prevent disk exhaustion from restart storms, and confirm systemdRestart=policies have sane rate limits (StartLimitIntervalSec/StartLimitBurst). - Watch upstream and distribution channels. stb is maintained informally via its GitHub repository; monitor the upstream repo and your other distributions (RHEL/EPEL, Debian/Ubuntu do not package stb identically — vendored copies there are entirely your responsibility) for corresponding fixes.
No CISA KEV listing or vendor-imposed deadline exists for CVE-2026-79516 at publication time; apply your standard patch SLA for local DoS flaws — but do not let the "local" classification push this to the bottom of the queue on multi-tenant or service-bearing systems.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.