Skip to main content

libstrophe CVE-2026-112063

| EUVDEUVD-2026-103505 MEDIUM
Stack-based Buffer Overflow (CWE-121)
2026-10-18 VulnCheck GHSA-37wj-432m-6r6f
6.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Victim client connects to malicious XMPP server
  2. Exploit
    Server returns oversized SCRAM salt in s= attribute
  3. Execution
    Salt decodes to >124 bytes overflowing 128-byte stack buffer in SCRAM_Hi
  4. Impact
    Client aborts or stack memory corrupted (NDEBUG)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Stack 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

The victim must run a libstrophe-based client (version through 0.14.0) that performs SCRAM SASL authentication and must initiate a connection to an attacker-controlled or compromised XMPP server; the server then sends a server-first-message whose s= (salt) attribute base64-decodes to more than 124 bytes, overflowing the 128-byte stack buffer in SCRAM_Hi(). Limiting factors: exploitation is passive and requires the client to connect to the malicious server (AT:P/UI:P) rather than any action against an exposed service; SCRAM-based authentication must be in use; and memory-overwrite (versus a controlled abort) only occurs in NDEBUG builds where the guarding assertion is compiled out, so default assert-enabled builds yield a crash/DoS rather than memory corruption.

Impact

This is a client-side vulnerability in which a malicious or compromised XMPP server attacks a connecting libstrophe client - not a server-side flaw exploitable at scale. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:H) scores 6.0 (Medium) and the signals are internally consistent: network vector but gated by an attack requirement (AT:P, victim must connect to an attacker-controlled server) and passive user interaction (UI:P), with impact dominated by availability (VA:H, client abort) and only low integrity (VI:L, stack corruption in NDEBUG builds) and zero confidentiality. No EPSS score was provided and the CVE is NOT in CISA KEV, so there is no evidence of active exploitation; exploitation status is 'no public exploit identified at time of analysis,' though a detailed technical write-up exists on hackmd. The realistic worst case is denial of service (client crash/abort); reliable arbitrary code execution is uncertain and limited to NDEBUG builds where the guarding assertion is compiled out, and stack canaries/ASLR further constrain exploitability. Net: a genuine but lower-priority Medium issue - the attacker must control the server the victim chooses to authenticate to, so this favors targeted or malicious-service scenarios over widespread opportunistic attacks. Reported by VulnCheck but no independent vendor (strophe) patch advisory is referenced in the provided data - verify fix availability with the project.

Exploit ScenarioDerived

A libstrophe-based XMPP client (e.g., a chat application) initiates SCRAM SASL authentication to a server the attacker controls or has compromised. The server returns a server-first-message whose s= (salt) attribute base64-decodes to more than 124 bytes, overflowing the 128-byte stack buffer in SCRAM_Hi() and crashing the client, or corrupting stack memory in NDEBUG builds. A technical write-up is publicly available, but no weaponized exploit code is identified; exploitation is passive, requiring the victim to connect to the malicious server.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet

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

Alert me

AnalysisAIv1 – Oct 18, 2026

Stack-based buffer overflow in libstrophe through 0.14.0 allows a malicious or compromised XMPP server to crash or corrupt the stack of a connecting client during SCRAM SASL authentication: a server-first-message whose base64 s= (salt) attribute decodes to more than 124 bytes overruns the fixed 128-byte stack buffer in SCRAM_Hi(). Only clients that perform SCRAM authentication and connect out to an attacker-controlled or compromised server are exposed, so the flaw is client-side and requires the victim to initiate the connection rather than exposing an attack surface at scale. Impact is predominantly denial of service (process abort), with limited stack memory overwrite possible only in NDEBUG builds where the guarding assertion is compiled out; no public exploit code or confirmed active exploitation (CISA KEV) is identified at time of analysis, though a technical write-up of the flaw is publicly available.

RemediationAI

No vendor-released patch identified at time of analysis: the reported data covers libstrophe through 0.14.0 and provides no fixed release, so track https://github.com/strophe/libstrophe and the VulnCheck advisory (https://www.vulncheck.com/advisories/libstrophe-through-0.14.0-stack-based-buffer-overflow-via-scram-salt-in-scram-hi) for a patched version and rebuild all clients that link the library. Because a fix is not yet available, apply specific compensating controls: add a bounds check around the SCRAM_Hi() base64 decode so the s= salt is rejected when its decoded length exceeds the 128-byte buffer (a small local patch, but it must be carried forward on every upstream rebase); build with assertions enabled rather than -DNDEBUG so an oversized salt aborts the client cleanly instead of corrupting the stack, accepting a deliberate crash-on-attack trade-off; and restrict SASL to mechanisms that do not use this code path, such as EXTERNAL or PLAIN over a verified TLS channel, at the cost of compatibility with servers that only offer SCRAM and of exposing credentials to the TLS endpoint. Enforce strict TLS certificate validation and pinning of the XMPP server's certificate so an on-path attacker cannot impersonate a trusted server - this does not protect against a legitimately malicious or compromised server operator, since the hostile input arrives after a valid handshake.

Affected VersionsENISA

libstrophe 0 ≤0.14.0

Affected Packages

euvd libstrophe no fix

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

libstrophe is a small, portable C library implementing the XMPP (Jabber) client protocol, widely embedded in chat clients and bots; the affected code paths live in src/scram.c and src/sasl.c of the 0.14.0 tree. The weakness is CWE-121, a stack-based buffer overflow, arising in SCRAM_Hi() - the key-derivation routine used by the SCRAM-SHA-1/SCRAM-SHA-256 SASL mechanisms defined in RFC 5802. In the SCRAM exchange the server sends a server-first-message containing r= (nonce), s= (base64 salt) and i= (iteration count); libstrophe base64-decodes the s= value into a fixed 128-byte stack buffer without validating the decoded length against that buffer size. Any salt that decodes to 125 bytes or more therefore writes past the end of the buffer. In default assert-enabled builds an assertion fires and the process aborts (clean denial of service); in NDEBUG/release builds the assertion is compiled out, so the overflow proceeds and adjacent stack memory - return addresses, saved registers, locals - can be corrupted. Because the input is fully attacker-controlled and delivered as part of a normal authentication handshake, no special client-side privileges are needed, only that SCRAM be the negotiated mechanism.

Know when Libstrophe 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 6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Remote malicious server with no client privileges (PR:N) but the victim must connect to it (UI:R); primary impact is client abort (A:H) with possible stack corruption (I:L) only in NDEBUG builds and no data disclosure (C:N).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

libstrophe through 0.14.0 contains a stack-based buffer overflow vulnerability in SCRAM_Hi that allows malicious XMPP servers to overflow a 128-byte stack buffer by sending an oversized SCRAM salt. Attackers can send a server-first-message whose s= attribute decodes to more than 124 bytes, aborting the client or overwriting stack memory in NDEBUG builds.

Threat Intelligence Overview

Prevalence
Low
niche XMPP C client library (e.g., used by Profanity), limited footprint
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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
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 stack-based buffer overflow occurs when a program writes more data to a buffer located on the stack than it was allocated to hold.

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