/

CVE-2026-110635

Severity:

CRITICAL RISK

(9.8)

OS Command Injection (CWE-78) in webp-converter Helpers

CVE-2026-110635

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Remote Code Execution

Severity:

CRITICAL RISK

(9.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

webp-converter versions before 3.0.0 may allow OS command injection when attacker-controlled file names or option strings are passed to helper functions that invoke libwebp binaries. Because these helpers use execFile with shell execution enabled, crafted input may cause arbitrary operating system commands to run with the privileges of the Node.js process.

webp-converter versions before 3.0.0 may allow OS command injection when attacker-controlled file names or option strings are passed to helper functions that invoke libwebp binaries. Because these helpers use execFile with shell execution enabled, crafted input may cause arbitrary operating system commands to run with the privileges of the Node.js process.

Affected context

The vulnerability occurs in applications using webp-converter helper functions that invoke cwebp, dwebp, gwebp, or webpmux. Risk depends on whether untrusted users can influence file names, conversion options, or other argument values before those values reach the process-execution helpers, and on the privileges available to the Node.js process.

The vulnerability occurs in applications using webp-converter helper functions that invoke cwebp, dwebp, gwebp, or webpmux. Risk depends on whether untrusted users can influence file names, conversion options, or other argument values before those values reach the process-execution helpers, and on the privileges available to the Node.js process.

Exploit preconditions

  • Attack surface: Application code that calls webp-converter helpers backed by libwebp binaries
  • Required access: Ability to influence file names or option strings supplied to those helper functions
  • Trigger point: Construction and execution of a conversion command
  • Why exploitation is possible: Shell execution is enabled, allowing shell metacharacters in attacker-controlled arguments to alter command interpretation
  • Attack surface: Application code that calls webp-converter helpers backed by libwebp binaries
  • Required access: Ability to influence file names or option strings supplied to those helper functions
  • Trigger point: Construction and execution of a conversion command
  • Why exploitation is possible: Shell execution is enabled, allowing shell metacharacters in attacker-controlled arguments to alter command interpretation

Why this happens

The underlying bug is unsafe construction of operating system commands from values that may be controlled by external users. Enabling shell interpretation for process execution causes argument data to be parsed as shell syntax rather than treated strictly as literal process arguments. 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 unsafe construction of operating system commands from values that may be controlled by external users. Enabling shell interpretation for process execution causes argument data to be parsed as shell syntax rather than treated strictly as literal process arguments. This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, commonly known as OS command injection.

Potential impact

  • Attackers may execute arbitrary operating system commands
  • The Node.js application process may be compromised
  • Application data, credentials, or environment secrets could be accessed
  • Files may be modified, deleted, or exfiltrated
  • The host or connected services could be affected through lateral movement
  • Attackers may execute arbitrary operating system commands
  • The Node.js application process may be compromised
  • Application data, credentials, or environment secrets could be accessed
  • Files may be modified, deleted, or exfiltrated
  • The host or connected services could be affected through lateral movement

General mitigation guidance

Mitigation generally focuses on removing shell interpretation from process execution and treating all file names and options as untrusted data.

Common defensive patterns include:

  • Invoking binaries without a shell and passing arguments through structured argument arrays
  • Allowing only explicitly supported conversion options and rejecting unexpected values
  • Applying strict validation to file names, paths, and option strings
  • Separating user-controlled files from executable or sensitive directories
  • Running the Node.js process with the minimum filesystem, network, and operating-system privileges
  • Using isolated workers or sandboxing where conversion inputs are exposed to untrusted users

Mitigation generally focuses on removing shell interpretation from process execution and treating all file names and options as untrusted data.

Common defensive patterns include:

  • Invoking binaries without a shell and passing arguments through structured argument arrays
  • Allowing only explicitly supported conversion options and rejecting unexpected values
  • Applying strict validation to file names, paths, and option strings
  • Separating user-controlled files from executable or sensitive directories
  • Running the Node.js process with the minimum filesystem, network, and operating-system privileges
  • Using isolated workers or sandboxing where conversion inputs are exposed to untrusted users

How teams detect issues like this

Detection can combine static analysis, code review, runtime monitoring, and policy enforcement.

  • Search for process-execution APIs used with shell execution enabled, especially where arguments derive from request data, uploaded file names, or user options.
  • Review calls to conversion helpers for direct concatenation, interpolation, or insufficient validation of command arguments.
  • Use dependency and source scanning rules for command-injection patterns in JavaScript and Node.js code.
  • Monitor child-process creation, unexpected shell launches, unusual converter arguments, and access to sensitive files.
  • Enforce application security policies that prohibit shell-based execution for untrusted input unless a narrowly reviewed exception exists.

Detection can combine static analysis, code review, runtime monitoring, and policy enforcement.

  • Search for process-execution APIs used with shell execution enabled, especially where arguments derive from request data, uploaded file names, or user options.
  • Review calls to conversion helpers for direct concatenation, interpolation, or insufficient validation of command arguments.
  • Use dependency and source scanning rules for command-injection patterns in JavaScript and Node.js code.
  • Monitor child-process creation, unexpected shell launches, unusual converter arguments, and access to sensitive files.
  • Enforce application security policies that prohibit shell-based execution for untrusted input unless a narrowly reviewed exception exists.

Sources

SourceLink
github.comgithub.com/scionoftech/webp-converter
github.comgithub.com/scionoftech/webp-converter/blob/3729b65f1e904ab56b947ac3772020ce37a756c8/src/webpconverter.js#L41-L52
github.comgithub.com/scionoftech/webp-converter/blob/e09d963d772cae9ff6af63c268ca838ab334f861/CHANGELOG.md
github.comgithub.com/scionoftech/webp-converter/commit/f1b6724bc2e89f67ab05d51a854b4b1c5a99928a
github.comgithub.com/scionoftech/webp-converter/pull/53
github.comgithub.com/scionoftech/webp-converter/pull/53#issuecomment-5091652605
vulncheck.comvulncheck.com/advisories/webp-converter-before-3.0.0-os-command-injection-via-file-names-and-options

Frequently asked

questions

It can be remotely exploitable when a network-facing application allows users to control file names or conversion options that reach the affected helper functions. Exploitability depends on the surrounding application's input flow.

An attacker generally needs the ability to submit or influence conversion inputs. They do not necessarily need direct shell or server access if the application exposes the vulnerable functionality through an API or upload workflow.

Avoid shell interpretation entirely and pass validated arguments directly to the intended binary through a structured process-execution interface. User-controlled values should be constrained to the minimum formats and options required by the application.

Apply secure child-process execution policies, validate and constrain all external input, review command-building code, and run conversion services with least privilege and suitable isolation.

It can be remotely exploitable when a network-facing application allows users to control file names or conversion options that reach the affected helper functions. Exploitability depends on the surrounding application's input flow.

An attacker generally needs the ability to submit or influence conversion inputs. They do not necessarily need direct shell or server access if the application exposes the vulnerable functionality through an API or upload workflow.

Avoid shell interpretation entirely and pass validated arguments directly to the intended binary through a structured process-execution interface. User-controlled values should be constrained to the minimum formats and options required by the application.

Apply secure child-process execution policies, validate and constrain all external input, review command-building code, and run conversion services with least privilege and suitable isolation.

Find out what's already
exploitable in your codebase.