Skip to main content

snac2 CVE-2026-112021

| EUVDEUVD-2026-103474 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-10-18 VulnCheck GHSA-6hv3-2r7g-774j
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send crafted activity+json POST to inbox
  2. Exploit
    Malformed \u0000 escape hits JSON lexer
  3. Execution
    Overflow heap before signature check
  4. Impact
    Crash snac2 server (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

No special conditions beyond normal operation - any snac2 instance before version 2.93 that is reachable for federation (the default and intended deployment mode of an ActivityPub server) is exploitable by a remote unauthenticated attacker. The only requirement is that the attacker can reach the ActivityPub inbox endpoint with an application/activity+json POST; crucially, HTTP signature verification does NOT limit exploitation because activitypub_post_handler() invokes the vulnerable _xs_json_load_lexer() parser before the signature check. Limiting factors: the target must be running snac2 < 2.93 with its federation endpoint exposed, and the demonstrated impact is a server crash (denial of service) rather than confirmed code execution or data exposure.

Impact

All signals point to a reliable but availability-limited threat. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) scores 8.7 HIGH and is credible: the flaw is reachable by any remote, unauthenticated attacker because activitypub_post_handler() parses the attacker-controlled application/activity+json body BEFORE signature verification, so federation authentication provides no protection. However, the vendor's own impact metrics are confined to availability (VC:N/VI:N/VA:H) - this is a heap corruption that crashes the server (denial of service), NOT confirmed remote code execution, so the 8.7 overstates practical consequence relative to an RCE-class 8.7. A public POC exists (exploit gist from the reporter nullenvk, corroborated by VulnCheck), confirming the bug is trivially triggerable, but there is NO EPSS score provided and the CVE is NOT in CISA KEV, so there is no evidence of active in-the-wild exploitation at time of analysis. CWE-122 heap overflow carries theoretical RCE potential that the vendor metrics do not claim; whether this is exploitable beyond a crash is unverified - treat RCE as unconfirmed. Net: a genuine priority for anyone exposing a snac2 instance to federation (patch promptly, DoS is trivial), but tempered by availability-only impact, niche deployment footprint, and no observed active exploitation.

Exploit ScenarioDerived

An attacker sends a single crafted application/activity+json POST to a federated snac2 instance's ActivityPub inbox containing a JSON string with a \u0000 escape. Because the body is parsed by _xs_json_load_lexer() before any HTTP signature check, no account or federation trust is needed, and the malformed escape overflows a heap allocation and crashes the server. A public proof-of-concept is available from the reporter, making reliable reproduction straightforward.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 18, 2026

Heap-based buffer overflow in snac2 before 2.93 enables unauthenticated remote attackers to crash the ActivityPub server by sending a single crafted application/activity+json POST whose JSON string contains a \u0000 escape; the vulnerable parser runs before HTTP signature verification, so federation endpoints are exposed. Publicly available exploit code exists, and the assessed impact is availability-only (server crash/denial of service), with no confirmed code execution or data exposure.

RemediationAI

Upgrade to snac2 2.93 or later (vendor-released patch: 2.93), available from https://codeberg.org/grunfink/snac2/releases/tag/2.93, which includes commit ec2c5c2046e0381bc942ec5d0d05ec861fe377e7. If immediate upgrade is not possible, reduce exposure by restricting the ActivityPub inbox endpoint to trusted federated peers via reverse-proxy ACLs or firewall rules; this breaks open federation and must be weighed against availability needs. Because parsing happens before HTTP signature checks, signature verification alone is not a mitigation. A reverse proxy/WAF rule rejecting application/activity+json POST bodies containing the literal \u0000 escape can block the known trigger, but it is a stopgap that may be bypassed by alternate encodings and should not replace patching. Monitor for snac2 crashes and review advisory https://www.vulncheck.com/advisories/snac2-before-2.93-heap-based-buffer-overflow-via-json-parser-xs-json-load-lexer and https://nullenvk.pl/posts/02-snac2-json for details.

Affected VersionsENISA

snac2 0 <2.93

Affected Packages

euvd snac2 fix: 2.93

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

snac2 is a lightweight ActivityPub server; its bundled xs_json parser's _xs_json_load_lexer() handles JSON escape sequences. In versions before 2.93, the lexer mishandles the \u0000 escape, leading to a heap-based buffer overflow (CWE-122) when parsing attacker-controlled JSON. The attack path is a POST to activitypub_post_handler() with Content-Type application/activity+json; parsing occurs before HTTP signature validation, so no authentication or signed request is needed. The CVSS:4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N) and independent CVSS:3.1 assessment (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) both characterize this as remote, unauthenticated, no-user-interaction, availability-only. CPE cpe:2.3:a:grunfink:snac2:*:*:*:*:*:*:*:* covers all versions before the fix; the vulnerable source is visible in the 2.92 tag's xs_json.h lines 283-285, and the upstream fix commit is ec2c5c2046e0381bc942ec5d0d05ec861fe377e7.

Know when Snac2 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated single-request trigger parsed before signature checks gives AV:N/AC:L/PR:N/UI:N; demonstrated impact is a server crash, so A:H with C:N/I:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

snac2 before 2.93 contains a heap-based buffer overflow vulnerability in _xs_json_load_lexer() that allows unauthenticated remote attackers to corrupt heap memory by sending JSON strings containing a \u0000 escape. Attackers can send a single crafted application/activity+json POST to activitypub_post_handler(), which parses it before signature checks, overflowing heap allocations and crashing the server.

Technical POC Analysis

CWE-122, heap-based buffer overflow, in xsjsonloadlexer(), the JSON tokenizer/decoder used by snac2's activitypubposthandler().

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

snac2 ActivityPub servers running versions earlier than 2.93 are exposed to a remotely triggerable crash that can take the federated service offline, and publicly available exploit code exists. The issue is assessed as availability-only, so leadership should focus on service disruption and repeated outage risk rather than data loss or code execution. Prioritize patching internet-facing instances and monitoring for exploitation attempts to maintain federation availability.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Low
niche self-hosted ActivityPub/Fediverse server, no enterprise footprint
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy