/

CVE-2026-110643

Severity:

CRITICAL RISK

(9.8)

OS Command Injection (CWE-78) in transcribe2texts App

CVE-2026-110643

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

transcribe2texts contains a critical OS command injection vulnerability in its audio transcription workflow. An attacker who can control the audioPath value may cause arbitrary operating-system commands to execute with the privileges of the Node.js process.

transcribe2texts contains a critical OS command injection vulnerability in its audio transcription workflow. An attacker who can control the audioPath value may cause arbitrary operating-system commands to execute with the privileges of the Node.js process.

Affected context

The vulnerability occurs when transcribeAudio() processes attacker-influenced audioPath values and passes them to Node.js child_process.exec() without sufficient escaping or command separation. Deployments are at greater risk when untrusted users, uploaded content, API clients, or external workflows can supply or influence the path value.

The vulnerability occurs when transcribeAudio() processes attacker-influenced audioPath values and passes them to Node.js child_process.exec() without sufficient escaping or command separation. Deployments are at greater risk when untrusted users, uploaded content, API clients, or external workflows can supply or influence the path value.

Exploit preconditions

  • Attack surface: The transcribeAudio() function or an interface that invokes it
  • Required access: The ability to supply or influence an audioPath argument
  • Trigger point: Construction and execution of a system command through child_process.exec()
  • Why exploitation is possible: The path is incorporated into a shell command without reliably separating data from executable command syntax
  • Attack surface: The transcribeAudio() function or an interface that invokes it
  • Required access: The ability to supply or influence an audioPath argument
  • Trigger point: Construction and execution of a system command through child_process.exec()
  • Why exploitation is possible: The path is incorporated into a shell command without reliably separating data from executable command syntax

Why this happens

The underlying defect is the use of a shell-based command execution API with an untrusted path value. Because the value is not treated strictly as data, shell metacharacters and command-substitution syntax can alter the intended command before execution. This maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, commonly known as OS command injection.

The underlying defect is the use of a shell-based command execution API with an untrusted path value. Because the value is not treated strictly as data, shell metacharacters and command-substitution syntax can alter the intended command before execution. This 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 with Node.js process privileges.
  • The application or host environment could be compromised.
  • Sensitive files, credentials, or environment variables may be accessed.
  • Attackers could alter or delete application data.
  • The vulnerable process may be used for lateral movement or further compromise.
  • An attacker may execute arbitrary commands with Node.js process privileges.
  • The application or host environment could be compromised.
  • Sensitive files, credentials, or environment variables may be accessed.
  • Attackers could alter or delete application data.
  • The vulnerable process may be used for lateral movement or further compromise.

General mitigation guidance

Mitigation generally focuses on removing shell interpretation from application-controlled operations and reducing trust in path inputs.

Common defensive patterns include:

  • Prefer direct process-spawn APIs that pass arguments separately and do not invoke a shell.
  • Use fixed executable paths and a tightly controlled argument structure.
  • Validate audio paths against an approved directory, file type, and canonical path policy.
  • Avoid accepting arbitrary filesystem paths from untrusted callers.
  • Apply least-privilege permissions to the Node.js process and its runtime identity.
  • Use sandboxing, restricted filesystem access, and isolated worker processes where practical.
  • Preserve safe defaults in wrappers and libraries so callers cannot accidentally enable shell execution.

Mitigation generally focuses on removing shell interpretation from application-controlled operations and reducing trust in path inputs.

Common defensive patterns include:

  • Prefer direct process-spawn APIs that pass arguments separately and do not invoke a shell.
  • Use fixed executable paths and a tightly controlled argument structure.
  • Validate audio paths against an approved directory, file type, and canonical path policy.
  • Avoid accepting arbitrary filesystem paths from untrusted callers.
  • Apply least-privilege permissions to the Node.js process and its runtime identity.
  • Use sandboxing, restricted filesystem access, and isolated worker processes where practical.
  • Preserve safe defaults in wrappers and libraries so callers cannot accidentally enable shell execution.

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings involving child_process.exec() or equivalent shell-execution APIs with concatenated or interpolated input.
  • Code-review signals such as user-controlled paths embedded in command strings.
  • Tests that verify arguments are passed as discrete values and that shell execution is disabled.
  • Runtime monitoring for unexpected child processes, command interpreters, or access to sensitive files.
  • Policy enforcement that restricts shell-based process execution and requires validation of externally supplied paths.

Automated code-review and software-composition tools may help identify related command-injection patterns.

Organizations can look for:

  • Static-analysis findings involving child_process.exec() or equivalent shell-execution APIs with concatenated or interpolated input.
  • Code-review signals such as user-controlled paths embedded in command strings.
  • Tests that verify arguments are passed as discrete values and that shell execution is disabled.
  • Runtime monitoring for unexpected child processes, command interpreters, or access to sensitive files.
  • Policy enforcement that restricts shell-based process execution and requires validation of externally supplied paths.

Automated code-review and software-composition tools may help identify related command-injection patterns.

Sources

SourceLink
github.comgithub.com/kky-ykk/Transcribe2texts/blob/7e82f96466fed9ccfc40f7b9e370321701b82c32/lib/index.js#L53-L55
github.comgithub.com/kky-ykk/Transcribe2texts/pull/1
vulncheck.comvulncheck.com/advisories/transcribe2texts-through-1.0.6-os-command-injection-via-transcribeaudio-audiopath

Frequently asked

questions

It can be remotely exploitable when a network-facing application or service allows an attacker to control the audioPath value passed to transcribeAudio(). Exploitability depends on how that function is exposed and how inputs are authorized.

The attacker needs a way to invoke the affected transcription workflow and influence the path argument. Authentication may reduce exposure, but an authenticated user could still pose a risk if path input is insufficiently restricted.

Avoid constructing shell command strings with external input. Use a non-shell process API with fixed executables and separately supplied arguments, combined with strict path validation.

Treat paths and other command arguments as untrusted data, enforce allowlists and canonicalization, review process-execution code carefully, and run application components with the minimum privileges required.

It can be remotely exploitable when a network-facing application or service allows an attacker to control the audioPath value passed to transcribeAudio(). Exploitability depends on how that function is exposed and how inputs are authorized.

The attacker needs a way to invoke the affected transcription workflow and influence the path argument. Authentication may reduce exposure, but an authenticated user could still pose a risk if path input is insufficiently restricted.

Avoid constructing shell command strings with external input. Use a non-shell process API with fixed executables and separately supplied arguments, combined with strict path validation.

Treat paths and other command arguments as untrusted data, enforce allowlists and canonicalization, review process-execution code carefully, and run application components with the minimum privileges required.

Find out what's already
exploitable in your codebase.