/

CVE-2026-108546

Severity:

HIGH RISK

(7.5)

OS Command Injection (CWE-78) in Spotweb NZB Handler

CVE-2026-108546

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Remote Code Execution

Severity:

HIGH RISK

(7.5)

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

Spotweb through version 1.5.8 contains an OS command injection vulnerability in its runcommand NZB handler. A remote attacker who can publish a spot with a malicious title may cause shell commands to run when a user downloads that spot, using the privileges of the Spotweb PHP process.

Spotweb through version 1.5.8 contains an OS command injection vulnerability in its runcommand NZB handler. A remote attacker who can publish a spot with a malicious title may cause shell commands to run when a user downloads that spot, using the privileges of the Spotweb PHP process.

Affected context

The vulnerability occurs in Spotweb deployments that use the runcommand NZB handler to process downloaded spots and incorporate spot titles into operating system commands. Risk increases when untrusted or self-signed Usenet content can be published and later downloaded by users, and when the Spotweb PHP process has meaningful system permissions.

The vulnerability occurs in Spotweb deployments that use the runcommand NZB handler to process downloaded spots and incorporate spot titles into operating system commands. Risk increases when untrusted or self-signed Usenet content can be published and later downloaded by users, and when the Spotweb PHP process has meaningful system permissions.

Exploit preconditions

  • Attack surface: Spot publication and NZB download processing
  • Required access: Ability to publish or distribute a spot that can be processed by a Spotweb user
  • Trigger point: The runcommand NZB handler processing a downloaded spot title
  • Why exploitation is possible: User-controlled title data is substituted into a shell command without adequate escaping or structured argument handling
  • Attack surface: Spot publication and NZB download processing
  • Required access: Ability to publish or distribute a spot that can be processed by a Spotweb user
  • Trigger point: The runcommand NZB handler processing a downloaded spot title
  • Why exploitation is possible: User-controlled title data is substituted into a shell command without adequate escaping or structured argument handling

Why this happens

The underlying bug is the construction of an operating system command using attacker-influenced title data without treating that data as untrusted input. Shell metacharacters can alter command interpretation when interpolated values are passed to a command execution function such as exec(). This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, commonly known as OS command injection.

The underlying bug is the construction of an operating system command using attacker-influenced title data without treating that data as untrusted input. Shell metacharacters can alter command interpretation when interpolated values are passed to a command execution function such as exec(). This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, commonly known as OS command injection.

Potential impact

  • An attacker may execute arbitrary commands on the Spotweb host
  • The attacker could access, modify, or delete data available to the PHP process
  • The application could be used to compromise connected services or stored credentials
  • Malware, persistence, or further system tampering may occur
  • The severity of impact could increase if the service account has excessive privileges
  • An attacker may execute arbitrary commands on the Spotweb host
  • The attacker could access, modify, or delete data available to the PHP process
  • The application could be used to compromise connected services or stored credentials
  • Malware, persistence, or further system tampering may occur
  • The severity of impact could increase if the service account has excessive privileges

General mitigation guidance

Mitigation generally focuses on preventing untrusted content from becoming shell syntax and reducing the privileges available to the application.

Common defensive patterns include:

  • Prefer direct process APIs with fixed executables and separate, validated arguments
  • Avoid shell interpretation when invoking external tools
  • Apply strict allowlist validation to titles and other content-derived parameters
  • Treat published spot metadata as untrusted regardless of its source or signature status
  • Run the PHP and background processing services with least privilege
  • Restrict filesystem, network, and credential access available to the application
  • Use defense-in-depth controls such as sandboxing and application confinement where appropriate

Mitigation generally focuses on preventing untrusted content from becoming shell syntax and reducing the privileges available to the application.

Common defensive patterns include:

  • Prefer direct process APIs with fixed executables and separate, validated arguments
  • Avoid shell interpretation when invoking external tools
  • Apply strict allowlist validation to titles and other content-derived parameters
  • Treat published spot metadata as untrusted regardless of its source or signature status
  • Run the PHP and background processing services with least privilege
  • Restrict filesystem, network, and credential access available to the application
  • Use defense-in-depth controls such as sandboxing and application confinement where appropriate

How teams detect issues like this

Organizations can look for this weakness through:

  • Static analysis rules identifying shell command construction from request, content, or database-derived values
  • Code review checks for string interpolation or concatenation passed to command execution functions
  • Policies requiring fixed command paths and structured argument APIs
  • Runtime monitoring for unexpected child processes, shell interpreters, and unusual outbound connections from the PHP process
  • Logging and alerting on suspicious spot metadata and anomalous command execution behavior

Automated security review tools may help identify command sinks and untrusted data flows, but findings should be validated against actual deployment behavior.

Organizations can look for this weakness through:

  • Static analysis rules identifying shell command construction from request, content, or database-derived values
  • Code review checks for string interpolation or concatenation passed to command execution functions
  • Policies requiring fixed command paths and structured argument APIs
  • Runtime monitoring for unexpected child processes, shell interpreters, and unusual outbound connections from the PHP process
  • Logging and alerting on suspicious spot metadata and anomalous command execution behavior

Automated security review tools may help identify command sinks and untrusted data flows, but findings should be validated against actual deployment behavior.

Sources

SourceLink
github.comgithub.com/spotweb/spotweb
github.comgithub.com/spotweb/spotweb/blob/1.5.8/lib/services/NzbHandler/Services_NzbHandler_Runcommand.php#L41-L45
hackmd.iohackmd.io/@haind/spotweb-runcommand-title-injection
vulncheck.comvulncheck.com/advisories/spotweb-through-1.5.8-os-command-injection-via-spot-title-in-runcommand-integration

Frequently asked

questions

It can be remotely exploitable when an attacker can publish or distribute a spot that is later processed by a Spotweb user. The attacker does not necessarily need direct access to the Spotweb host.

The key condition is the ability to introduce attacker-controlled title content into the spot-processing workflow. Exploitation also depends on a user downloading or otherwise triggering processing of the affected spot.

Avoid passing content-derived values through a shell. Use a fixed executable with separately validated arguments, and ensure that shell interpretation is not enabled.

Treat all external metadata as untrusted, review every command execution sink, enforce least privilege for application processes, and monitor for unexpected child-process activity.

It can be remotely exploitable when an attacker can publish or distribute a spot that is later processed by a Spotweb user. The attacker does not necessarily need direct access to the Spotweb host.

The key condition is the ability to introduce attacker-controlled title content into the spot-processing workflow. Exploitation also depends on a user downloading or otherwise triggering processing of the affected spot.

Avoid passing content-derived values through a shell. Use a fixed executable with separately validated arguments, and ensure that shell interpretation is not enabled.

Treat all external metadata as untrusted, review every command execution sink, enforce least privilege for application processes, and monitor for unexpected child-process activity.

Find out what's already
exploitable in your codebase.