{"id":"CVE-2026-117511","kind":"vulnerability","aliases":["CVE-2026-117511"],"related":[],"title":"node-tesseract: image argument lets remote attackers inject OS commands","description":"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.","summary":"The node-tesseract npm package builds a shell command from the image argument passed to its process function in lib/tesseract.js, without sanitizing it. An attacker who controls that argument can run arbitrary operating system commands on the host.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["node.js","npm","package","self-hosted"],"not_affected_if":["no-user-input-to-image-argument"],"how_to_check":"- Run `npm ls node-tesseract` in each project to find whether it is installed and at which version\n- Search code for calls to `process(` from the node-tesseract module that take user-supplied file paths or names\n- unknown for other checks, as the sources do not say","fix":"- No fixed version is named in the sources; the project has not responded to the report\n- Remove node-tesseract or stop passing untrusted input as the image argument\n- Validate image paths against an allowlist and avoid shell invocation for user input","status":"open","published_at":"2026-10-27T16:17:31+00:00","first_seen_at":"2026-10-27T16:33:07+00:00","triaged_at":"2026-10-27T16:34:13+00:00","updated_at":"2026-10-27T16:34:13+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-27T16:34:13Z","model":"claude-haiku-5-5","output":{"fix":"- No fixed version is named in the sources; the project has not responded to the report\n- Remove node-tesseract or stop passing untrusted input as the image argument\n- Validate image paths against an allowlist and avoid shell invocation for user input","reach":"internet","title":"node-tesseract: image argument lets remote attackers inject OS commands","impact":"high","summary":"The node-tesseract npm package builds a shell command from the image argument passed to its process function in lib/tesseract.js, without sanitizing it. An attacker who controls that argument can run arbitrary operating system commands on the host.","category":"package","nicknames":[],"who_cares":["node.js","npm","self-hosted"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Attacker runs arbitrary operating system commands on the server","analyst_note":"Confirm the affected version range and whether a patch or fork exists; the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-117511 is the only source.","how_to_check":"- Run `npm ls node-tesseract` in each project to find whether it is installed and at which version\n- Search code for calls to `process(` from the node-tesseract module that take user-supplied file paths or names\n- unknown for other checks, as the sources do not say","needs_analyst":true,"not_affected_if":["no-user-input-to-image-argument"],"who_is_affected":"Applications that use node-tesseract up to version 0.2.7 and pass user-influenced values as the image argument to its process function are exposed. Systems that only OCR files the team itself controls, with no user input reaching that argument, are a lower risk. unknown whether other versions or configurations are affected.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000642,"input_tokens":3343,"output_tokens":615,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-117511':14A,17A '-2026':13A,16A '0.2.7':75C 'affect':76C 'arbitrari':56B 'argument':5A,37B,53B,97C 'attack':8A,49B,105C 'build':30B 'builder':92C 'command':11A,33B,59B,91C,102C 'compon':90C 'control':51B 'cve':12A,15A 'desmondmorri':69C 'disclos':114C 'earli':129C 'execut':108C 'exploit':111C 'file':86C 'found':67C 'function':42B,82C 'host':23B,62B 'imag':4A,36B,98C 'inform':125C 'inject':9A,103C 'issu':79C,132C 'lead':99C 'let':6A 'lib/tesseract.js':44B,87C 'manipul':94C 'may':119C 'node':2A,26B,71C 'node-tesseract':1A,25B,70C 'node.js':18B 'npm':19B,28B 'oper':57B 'os':10A,101C 'packag':20B,29B 'pass':38B 'problem':128C 'process':41B,83C 'project':123C 'public':117C 'remot':7A,109C 'report':133C 'respond':137C 'run':55B 'sanit':46B 'self':22B 'self-host':21B 'shell':32B 'system':58B 'tesseract':3A,27B,72C 'use':121C 'vulner':64C 'without':45B 'yet':138C","nicknames":[],"mitigations":[],"who_affected":"Applications that use node-tesseract up to version 0.2.7 and pass user-influenced values as the image argument to its process function are exposed. Systems that only OCR files the team itself controls, with no user input reaching that argument, are a lower risk. unknown whether other versions or configurations are affected.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-27T16:17:31+00:00","kev":null,"cvss_vector":"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/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"cna@vuldb.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-117511","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-117511","severity":null,"published_at":"2026-10-27T16:17:31+00:00","modified_at":"2026-10-27T16:17:31+00:00","first_seen_at":"2026-10-27T16:33:07+00:00","fetched_at":"2026-10-27T16:33:07+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}