Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted activity+json POST to inbox
-
ExploitMalformed \u0000 escape hits JSON lexer
-
ExecutionOverflow heap before signature check
-
ImpactCrash 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
EUVD-2026-103474
GHSA-6hv3-2r7g-774j
NVD
CVE.org
Exploit-DB