{"id":"CVE-2026-109681","kind":"vulnerability","aliases":["CVE-2026-109681"],"related":[],"title":"FTP client trusts server PASV reply, can open connections to arbitrary hosts","description":"The FTP client trusts the server's PASV response IP:port without validation against the control connection target. A rogue FTP server can specify any IP:port in the 227 Passive Mode response, causing the operator's machine to open a TCP connection to an arbitrary host.","summary":"The FTP client accepts the IP address and port in a server's 227 Passive Mode response without checking them against the server it is connected to. A rogue FTP server can therefore make the client open a TCP connection to any host and port the attacker chooses.","severity":"medium","cvss":4.7,"epss":0.00201,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ftp","other","self-hosted"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-21T00:17:17+00:00","first_seen_at":"2026-10-23T21:57:27+00:00","triaged_at":"2026-10-25T04:34:57+00:00","updated_at":"2026-10-25T04:34:57+00:00","category":"other","confidence":0.5,"triage":{"at":"2026-10-25T04:34:57Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"FTP client trusts server PASV reply, can open connections to arbitrary hosts","impact":"low","summary":"The FTP client accepts the IP address and port in a server's 227 Passive Mode response without checking them against the server it is connected to. A rogue FTP server can therefore make the client open a TCP connection to any host and port the attacker chooses.","category":"other","nicknames":[],"who_cares":["ftp","self-hosted"],"confidence":0.5,"needs_auth":"no","worst_case":"Client connects to attacker-chosen internal hosts, enabling network probing","analyst_note":"Identify which FTP client product is affected and its fixed version; the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-109681 was not detailed in the sources.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":[],"who_is_affected":"unknown","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000518,"input_tokens":3331,"output_tokens":369,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-109681':15A,18A '-2026':14A,17A '227':37B,101C 'accept':27B 'address':30B 'arbitrari':11A,117C 'attack':70B 'caus':105C 'check':42B 'choos':71B 'client':2A,26B,59B,74C 'connect':9A,49B,63B,88C,114C 'control':87C 'cve':13A,16A 'ftp':1A,19B,25B,53B,73C,92C 'host':12A,23B,66B,118C 'ip':29B,81C,97C 'machin':109C 'make':57B 'mode':39B,103C 'open':8A,60B,111C 'oper':107C 'passiv':38B,102C 'pasv':5A,79C 'port':32B,68B,82C,98C 'repli':6A 'respons':40B,80C,104C 'rogu':52B,91C 'self':22B 'self-host':21B 'server':4A,35B,46B,54B,77C,93C 'specifi':95C 'target':89C 'tcp':62B,113C 'therefor':56B 'trust':3A,75C 'valid':84C 'without':41B,83C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T00:17:17+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N","cvss_by":"cve@rapid7.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-109681","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109681","severity":null,"published_at":"2026-10-21T00:17:17+00:00","modified_at":"2026-10-22T15:25:35+00:00","first_seen_at":"2026-10-23T21:57:27+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"epss","external_id":"CVE-2026-109681","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-109681","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:55+00:00","fetched_at":"2026-10-24T13:15:55+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"}