{"id":"CVE-2026-119673","kind":"vulnerability","aliases":["CVE-2026-119673"],"related":[],"title":"MongoDB mongofiles: symlinks let downloads write files outside the working directory","description":"MongoDB Database Tools mongofiles does not resolve existing parent-directory symlinks when validating output paths for get_regex. An unauthorized user who can both upload a GridFS file and place a symlink in the operator's download working directory can cause a later retrieval to create a file containing unauthorized user-controlled data outside that directory, using the operator process's filesystem permissions. The issue can occur with default traversal and overwrite settings. Exploitation requires an operator to retrieve matching files from the affected working directory; the demonstrated default behavior creates a new file rather than overwriting an existing file. This issue affects MongoDB Database Tools versions 100.2.0 through versions before 100.20.1.","summary":"MongoDB Database Tools mongofiles does not resolve existing parent-directory symlinks when checking download output paths for get_regex. A user who can upload a GridFS file and plant a symlink in the operator's download directory can make a later retrieval create a file with attacker-chosen content outside that directory.","severity":"low","cvss":2.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["database-tools","gridfs","mongodb","mongofiles","package"],"not_affected_if":["not-using-mongofiles","private-download-directory","versions-outside-range"],"how_to_check":"- Run `mongofiles --version` and compare against the affected range.\n- Check whether operators run `mongofiles get_regex` into a shared or writable download directory.","fix":"- MongoDB Database Tools `100.20.1` or later (affected: `100.2.0` up to before `100.20.1`).","status":"open","published_at":"2026-11-03T17:18:06+00:00","first_seen_at":"2026-11-03T17:21:56+00:00","triaged_at":"2026-11-03T17:24:44+00:00","updated_at":"2026-11-03T17:24:44+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-03T17:24:44Z","model":"claude-haiku-5-5","output":{"fix":"- MongoDB Database Tools `100.20.1` or later (affected: `100.2.0` up to before `100.20.1`).","reach":"local","title":"MongoDB mongofiles: symlinks let downloads write files outside the working directory","impact":"medium","summary":"MongoDB Database Tools mongofiles does not resolve existing parent-directory symlinks when checking download output paths for get_regex. A user who can upload a GridFS file and plant a symlink in the operator's download directory can make a later retrieval create a file with attacker-chosen content outside that directory.","audience":"developers","category":"package","nicknames":[],"who_cares":["mongodb","mongofiles","gridfs","database-tools"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker-controlled file content written outside the download directory","analyst_note":"","how_to_check":"- Run `mongofiles --version` and compare against the affected range.\n- Check whether operators run `mongofiles get_regex` into a shared or writable download directory.","plain_action":"","needs_analyst":false,"not_affected_if":["not-using-mongofiles","private-download-directory","versions-outside-range"],"who_is_affected":"Teams that run mongofiles get_regex to retrieve GridFS files into a working directory that other users can write to. Exposure needs both an upload path into GridFS and a symlink placed in the download directory. Teams that do not use mongofiles, or only retrieve into private directories, can skip it.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000703,"input_tokens":4254,"output_tokens":555,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-119673':14A,17A '-2026':13A,16A '100.2.0':188C '100.20.1':192C 'affect':164C,183C 'attack':73B 'attacker-chosen':72B 'behavior':170C 'caus':120C 'check':38B 'chosen':74B 'contain':128C 'content':75B 'control':132C 'creat':68B,125C,171C 'cve':12A,15A 'data':133C 'databas':19B,26B,80C,185C 'database-tool':18B 'default':149C,169C 'demonstr':168C 'directori':11A,35B,62B,78B,89C,118C,136C,166C 'download':5A,39B,61B,116C 'exist':32B,86C,179C 'exploit':154C 'file':7A,52B,70B,107C,127C,161C,174C,180C 'filesystem':142C 'get':43B,96C 'gridf':21B,51B,106C 'issu':145C,182C 'later':66B,122C 'let':4A 'make':64B 'match':160C 'mongodb':1A,22B,25B,79C,184C 'mongofil':2A,23B,28B,82C 'new':173C 'occur':147C 'oper':59B,114C,139C,157C 'output':40B,93C 'outsid':8A,76B,134C 'overwrit':152C,177C 'packag':24B 'parent':34B,88C 'parent-directori':33B,87C 'path':41B,94C 'permiss':143C 'place':109C 'plant':54B 'process':140C 'rather':175C 'regex':44B,97C 'requir':155C 'resolv':31B,85C 'retriev':67B,123C,159C 'set':153C 'symlink':3A,36B,56B,90C,111C 'tool':20B,27B,81C,186C 'travers':150C 'unauthor':99C,129C 'upload':49B,104C 'use':137C 'user':46B,100C,131C 'user-control':130C 'valid':92C 'version':187C,190C 'work':10A,117C,165C 'write':6A","nicknames":[],"mitigations":[],"who_affected":"Teams that run mongofiles get_regex to retrieve GridFS files into a working directory that other users can write to. Exposure needs both an upload path into GridFS and a symlink placed in the download directory. Teams that do not use mongofiles, or only retrieve into private directories, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["databasetools","gridfs","low","mongodb","mongofiles","package"],"campaign_type":null,"first_public_at":"2026-11-03T17:18:06+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/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@mongodb.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-119673","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119673","severity":null,"published_at":"2026-11-03T17:18:06+00:00","modified_at":"2026-11-03T17:18:06+00:00","first_seen_at":"2026-11-03T17:21:56+00:00","fetched_at":"2026-11-03T17:21:56+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"}