/

CVE-2026-79079

Severity:

HIGH RISK

(7.8)

OS Command Injection (CWE-78) in Xiphos Source Components

CVE-2026-79079

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Arbitrary Code Execution

Severity:

HIGH RISK

(7.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A command injection vulnerability in CrossWire Xiphos can allow a local attacker to execute arbitrary code through processing handled by the src/main/url.cc and src/gtk/menu_popup.c components.

The issue becomes risky when attacker-controlled data reaches an operating-system command execution path without adequate separation between data and commands.

Affected context

The vulnerability affects CrossWire Xiphos versions up to and including 4.3.2, particularly code associated with URL handling and popup-menu behavior in src/main/url.cc and src/gtk/menu_popup.c. Exploitation generally depends on a local user being able to supply or influence input that is processed by these components.

Exploit preconditions

  • Attack surface: Local desktop application components involved in URL or popup-menu processing
  • Required access: Local access sufficient to provide or influence application input
  • Trigger point: Processing of attacker-controlled data by the affected source components
  • Why exploitation is possible: Input may reach an operating-system command execution interface without reliable command and argument separation

Why this happens

The underlying bug is an OS command injection condition mapped to CWE-78: Improper Neutralization of Special Elements used in an OS Command. The insecure pattern occurs when externally influenced data is concatenated into a shell or system-command invocation rather than passed through a non-shell API with fixed program arguments and strict validation.

Potential impact

  • A local attacker may execute arbitrary code with the privileges of the Xiphos process
  • The attacker could read, modify, or delete user-accessible files
  • The vulnerability may enable theft of application data or credentials available to the process
  • A compromised user session could be used for further local system activity

General mitigation guidance

Mitigation generally focuses on removing shell interpretation from application-controlled operations and reducing trust in externally influenced input.

Common defensive patterns include:

  • Prefer direct process-execution APIs that pass executable names and arguments separately
  • Avoid constructing commands through string concatenation or invoking a shell unnecessarily
  • Apply allowlist validation to URLs, paths, and menu-related values before use
  • Treat data from local files, desktop integrations, and interprocess inputs as untrusted
  • Run the application with least-privilege user and filesystem permissions
  • Centralize command execution behind narrowly scoped interfaces with explicit policy checks

How teams detect issues like this

Organizations can look for command injection risks through:

  • Static analysis rules identifying shell calls, command-construction functions, and string concatenation near process execution
  • Code review checks for URL, path, or menu values flowing into system-command APIs
  • Runtime monitoring of unexpected child-process creation by the application
  • Policy enforcement that prohibits shell invocation for operations that can use direct execution APIs
  • Automated security review tools that track tainted input into process-launching functions

Sources

SourceLink
gist.github.comgist.github.com/lggcs/c1f98ce55ced44472651b9590d9f199a
github.comgithub.com/crosswire/xiphos/pull/1314/commits/68bbe3063b601537d1e505dd1a4560d51811a9e0

Frequently asked

questions

Exploitation is described as local rather than directly remote. A remote attack would generally require a separate mechanism that delivers or causes attacker-controlled input to be processed on the affected system.

The attacker typically needs local access or another trusted integration that can influence data handled by the affected URL or popup-menu components.

Avoid shell-based command construction and use direct process-execution interfaces with fixed executables, separated arguments, and strict allowlist validation.

Review all data flows into process-launching APIs, enforce secure coding rules against unnecessary shell use, apply least privilege, and include taint analysis and runtime child-process monitoring in the development lifecycle.

Find out what's already
exploitable in your codebase.