Skip to main content

CrossWire Xiphos CVE-2026-79079

| EUVDEUVD-2026-84185 HIGH
OS Command Injection (CWE-78)
2026-09-21 mitre GHSA-m3hm-f9qq-cmg5
7.8
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Deliver maliciously named Xiphos module/image
  2. Delivery
    Victim renames module or views image
  3. Exploit
    Metacharacters injected into popen() shell string
  4. Execution
    Arbitrary command executes as user
  5. Impact
    Local code execution and data compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques 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

Requires local access to a system running CrossWire Xiphos <= 4.3.2 (GTK desktop app on Linux/Unix). Exploitation is reached through two specific features: the personal-commentary 'rename' action (on_rename_perscomm_activate in src/gtk/menu_popup.c), where the module section name info->text1 is interpolated into a cd/sed shell pipeline, and the separate-image viewer (show_separate_image in src/main/url.cc), where an image filename is interpolated into the external display program's command line - both passed to popen() unsanitized. Realistic exploitation depends on a victim performing one of these actions on attacker-supplied data (a crafted module or image whose name embeds shell metacharacters); code runs only with that user's privileges (no privilege escalation), which along with the local vector and niche product footprint limits practical risk.

Impact

Signals converge on a genuine-but-low-urgency local RCE. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 7.8) correctly captures a local, low-complexity command-injection with full CIA impact, and the source diff confirms the root cause: two sinks (menu_popup.c on_rename_perscomm_activate and url.cc show_separate_image) build shell command strings via g_string_printf and pass them to popen(), embedding attacker-influenced values (the personal-commentary module section name info->text1 and an image filename) directly into a shell context. SSVC agrees - Exploitation:poc, Automatable:no, Technical Impact:total - matching a POC that exists (public gist) but requires local, non-automatable, user-driven triggering. EPSS is 0.15% (5th percentile) and there is NO CISA KEV listing, consistent with a niche desktop application unlikely to see mass exploitation. Net: a real, patch-worthy code-execution bug, but a low real-world priority driven by the local attack vector, niche footprint, and lack of active-exploitation evidence rather than a widespread threat. Note a defensible disagreement with UI:N - realistic exploitation depends on a victim performing an action (renaming a module or viewing an image) on attacker-supplied data, so UI:R is arguable; this does not change the base severity band materially.

Exploit ScenarioDerived

An attacker distributes a malicious Xiphos personal-commentary module (or image resource) whose section name or filename contains shell metacharacters such as $(...) or backticks. When the local user renames that module or opens the separate-image viewer, Xiphos assembles a shell string and calls popen(), executing the attacker's injected command with the victim's privileges. A public proof-of-concept gist exists, but exploitation requires local access and a victim action, so it is not remotely or automatically weaponizable.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 22, 2026

Command injection in CrossWire Xiphos 4.3.2 and earlier lets a local attacker execute arbitrary shell commands with the privileges of the user running the application by placing shell metacharacters in data that Xiphos later interpolates into unsanitized popen() shell pipelines. Two code paths are involved: the personal-commentary rename action (on_rename_perscomm_activate in src/gtk/menu_popup.c), where the module section name is spliced into a cd/sed command, and the separate-image viewer (show_separate_image in src/main/url.cc), where an image filename is spliced into an external viewer's command line. Exploitation requires the victim to trigger one of those actions on attacker-supplied data (a crafted module or image file), the impact is confined to the victim's own account because no privilege escalation is demonstrated, and publicly available exploit code exists (SSVC records exploitation as 'poc'), although the issue is not in CISA KEV and EPSS is low at 0.15% (5th percentile).

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - the correction lives in crosswire/xiphos PR #1314, commit 68bbe3063b601537d1e505dd1a4560d51811a9e0, which replaces every vulnerable popen() call with argv-based g_spawn_sync/g_spawn_async invocations (menu_popup.c) and g_spawn_async (url.cc), so building Xiphos from a revision at or after that commit removes the shell from the execution path; users on packaged distributions should track their vendor for a backported 4.3.x build and treat any version up to 4.3.2 as vulnerable until then. Because the flaw requires the victim to act on attacker-supplied data, the most effective compensating control is data provenance: do not open, install, or rename personal commentary modules and do not view images received from untrusted sources inside Xiphos, since module section names and image filenames are the exact injection carriers. There is no configuration switch to disable the vulnerable code paths, so stronger containment means restricting the process itself - run Xiphos inside a sandbox or Flatpak-style confinement, or under an AppArmor/SELinux profile that denies exec of /bin/sh and blocks spawning external viewer programs - with the trade-off that legitimate 'open image in external viewer' functionality and any shell-dependent features will break, and such profiles must be tested against normal workflows. General system controls (limited user privileges, no reuse of Xiphos accounts in privileged contexts) reduce blast radius but do not eliminate the bug, since the injected command runs with the user's own rights. Consult https://nvd.nist.gov/vuln/detail/CVE-2026-79079 and the PR at https://github.com/crosswire/xiphos/pull/1314/commits/68bbe3063b601537d1e505dd1a4560d51811a9e0 for the authoritative code-level fix.

Affected VersionsENISA

n/a n/a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command), specifically the classic popen() anti-pattern in the GLib/GTK C and C++ code of Xiphos. popen() does not exec a program directly; it runs the string through /bin/sh -c, so any attacker-controlled substring containing shell metacharacters (;, &&, $(), backticks, unbalanced quotes) escapes the intended command and executes as the invoking user. In src/gtk/menu_popup.c the module section name held in info->text1 was formatted with g_string_printf into a '( cd "%s" && sed ... ) 2>&1' pipeline and handed to popen(); in src/main/url.cc the image filename was formatted into '%s "%s" < /dev/null > /dev/null 2>&1 &' along with the selected display program, again via popen(). The upstream fix in PR #1314 removes shell interpretation entirely: menu_popup.c now builds an argv array and calls g_spawn_sync(modsdir, argv, ...) with sed and the sed expression as discrete arguments, writing the result with g_file_set_contents, while url.cc uses g_spawn_async(NULL, argv, ...) with G_SPAWN_SEARCH_PATH and stdout/stderr redirected to /dev/null, passing the viewer and filename as separate argv elements. Although the CVE description describes a general 'local attacker', the assessed CVSS vector (AV:L/AC:L/PR:L/UI:N) indicates the attacker must already hold a local user context, and the injected code inherits only that user's rights.

Know when the next one hits your stack

  • 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 (mitre) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Local shell injection via popen() executes arbitrary commands at the invoking user's privilege (PR:L, AV:L, low complexity), yielding full C/I/A; UI:R is defensible since a victim action typically triggers it.

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

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Sep 22, 2026 - 14:22 NVD
7.8 (HIGH)
CVE Published
Sep 21, 2026 - 00:00 cve.org
HIGH 7.8
CVE Published
Sep 21, 2026 - 00:00 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

An issue in CrossWire Xiphos <= 4.3.2 allows a local attacker to execute arbitrary code via the src/main/url.cc and src/gtk/menu_popup.c components

Executive ViewAI

Why It Matters

CrossWire Xiphos 4.3.2 and earlier, a desktop Bible-study application used by individual staff and volunteers, contains a command-injection flaw that lets an attacker run shell commands with the privileges of the user who opens a crafted module or image file. Because exploitation requires the user to trigger a rename or image-view action and grants no elevated privileges, exposure is confined to individual user accounts rather than servers or administrative systems. Leadership should care because publicly available exploit code exists and no vendor patch is available, so users who routinely open third-party or shared content remain exposed and the risk must be managed through policy, configuration, and monitoring until a fix ships.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: allow Xiphos to open only trusted, pre-vetted modules and image files; avoid the personal-commentary rename action and separate-image viewer on untrusted content; run Xiphos in a sandboxed container or low-privilege account; block or quarantine untrusted module and image files at email and web ingress; and monitor endpoint logs for shell processes spawned by Xiphos while awaiting a vendor fix.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Low
Niche open-source CrossWire/SWORD GTK desktop Bible-study app, small user base
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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 No
EPSS 0.2%
Patch available No
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
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
Medium
Technical Impact
Total

Priority Score

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

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Vendor StatusVendor

SUSE

Severity: Important

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