Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted value in image argument
-
ExploitInject shell metacharacters into Tesseract command builder
-
ImpactExecute arbitrary OS commands as Node process
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 | Requires a consuming application using node-tesseract 0.2.0-0.2.7 that passes attacker-controlled data into the 'image' argument of the process() function without sanitization; the Command Builder concatenates this value into the Tesseract OCR shell invocation, so a value containing shell metacharacters triggers OS command injection. Limiting factors: the flaw is in a library, so it is only exploitable where the application actually exposes the image parameter to untrusted input and reaches process() - it is not exploitable against the package in isolation; authentication and network reachability depend entirely on that host application. No fixed version is available, as the project has not responded to the issue report. |
| Impact | This is a CWE-78 OS command injection in the desmondmorris node-tesseract npm library (versions 0.2.0 through 0.2.7), reachable through the unsanitized 'image' argument of the process() function in lib/tesseract.js. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L, score 5.5, medium) with E:P reflects VulDB's scoring, which rates confidentiality, integrity and availability impact as only Low - this conflicts with the typical consequence of a CWE-78 flaw, where injecting shell metacharacters yields arbitrary OS command execution under the Node process privileges (normally High impact); the discrepancy should be reconciled with the vendor, who has not responded. Exploitation signals are modest: no CISA KEV listing, no EPSS probability provided in the input, and the public artifact is a GitHub issue reference that is not verified as working exploit code (E:P / proof-of-concept). The vuln.today decision label is 'this_month', indicating a near-term rather than emergency priority. Crucially, node-tesseract is a library: the AV:N and PR:N metrics are inherited from whatever consuming application exposes the image parameter to untrusted input, not intrinsic to the package - real-world risk is therefore gated on integration patterns, so this is a genuine but conditional priority rather than a broadly wormable internet-facing bug. No fixed version exists because the project was notified via an issue report but has not responded. |
| Exploit ScenarioDerived | An application built on node-tesseract (≤0.2.7) passes a user-supplied filename or path into the 'image' argument of process(), which is concatenated into the Tesseract OCR shell command. An attacker submits a value containing shell metacharacters (for example an image field like |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
OS command injection in the desmondmorris node-tesseract npm library (versions 0.2.0 through 0.2.7) allows remote attackers to execute arbitrary shell commands when a consuming application passes unsanitized input into the 'image' argument of the process() function in lib/tesseract.js, because the Command Builder concatenates that value into the Tesseract OCR shell invocation. The package is not exploitable in isolation: reachability, authentication requirements and real-world impact depend entirely on the host application that exposes the image parameter to untrusted input. A public PoC reference exists in the project's GitHub issue tracker; it is not verified as working exploit code, and no vendor fix has been released because the maintainer has not responded to the report.
RemediationAI
No vendor-released patch has been identified at the time of analysis: the project was notified through the GitHub issue (https://github.com/desmondmorris/node-tesseract/issues/72) and has not responded, so there is no fixed release for the 0.2.x line. Because the flaw lives in the shell string that the Command Builder assembles in lib/tesseract.js, the most direct compensating control is to stop attacker-controlled data from reaching the image argument: validate it against a strict allowlist of known filenames or an absolute path restricted to a fixed upload directory, reject any value containing shell metacharacters such as ;, &, |, $, backticks, newlines or quotes, and never build that value from raw request parameters. Where the wrapper cannot be validated away, fork or vendor the library and replace the shell-based invocation with an argument-vector call (child_process.execFile or spawn with an argument array and shell disabled) - this removes shell interpretation entirely, at the cost of maintaining a patched fork. As defence in depth, run the OCR worker under a low-privilege account or in a container with a read-only filesystem and no outbound network, and constrain the Tesseract binary to a controlled working directory; these reduce blast radius if injection still occurs but do not fix the vulnerable code path. Monitor the upstream repository and VulDB entry https://vuldb.com/vuln/427077 for a patched release before upgrading.
Affected VersionsENISA
Affected Packages
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
node-tesseract is a thin Node.js wrapper that shells out to the Tesseract OCR binary. The vulnerable code path is the Command Builder inside lib/tesseract.js, where options such as the input image path are assembled into a command string that is handed to a shell-based child-process call rather than being passed as a discrete argument vector. This is a classic CWE-78 OS command injection: shell metacharacters embedded in the 'image' value are interpreted by the shell instead of being treated as a literal file path, giving an attacker who controls that value the ability to append or substitute commands executed with the privileges of the Node.js process. Per the CPE cpe:2.3:a:desmondmorris:node-tesseract:*:*:*:*:*:*:*:*, the entire published version line is in scope, with EUVD enumerating 0.2.0 through 0.2.7. The CNA scores this at CVSS 4.0 5.5, while the independent assessment rates it CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, reflecting full confidentiality, integrity and availability impact when the library is used as intended with untrusted image input; the discrepancy reflects how much of the exploitation precondition each scoring authority chose to assume.
Know when Node Tesseract 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
CWE-78 injection via an app-exposed image argument yields arbitrary command execution (C/I/A:H); AV:N/PR:N/UI:N are inherited from the typical unauthenticated consuming app, not the library itself.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability has been found in desmondmorris node-tesseract up to 0.2.7. Affected by this issue is the function process of the file lib/tesseract.js of the component Command Builder. Such manipulation of the argument image leads to os command injection. The attack can be executed remotely. The exploit has been disclosed to the public and may be used. The project was informed of the problem early through an issue report but has not responded yet.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
EUVD-2026-111143
GHSA-7xrv-c458-6gmj
NVD
CVE.org
EPSS
VulDB
Exploit-DB