{"id":"CVE-2026-123014","state":"PUBLISHED","title":"iTerm2 before 3.7.7beta2 has an argument injection vulnerability in the x-man-page: URL handler, allowing an attacker to execute arbitrary commands with the privileges of the logge","description":"iTerm2 before 3.7.7beta2 has an argument injection vulnerability in the x-man-page: URL handler, allowing an attacker to execute arbitrary commands with the privileges of the logged-in user by inducing the user to open a crafted URL in iTerm2. Percent-encoded NUL characters survive input sanitization and are subsequently converted to whitespace during command-line parsing, allowing injection of additional arguments to /usr/bin/man. An attacker can inject the -P option to select an attacker-controlled pager command. NOTE: this issue exists because of an incomplete fix for CVE-2023-46321.","publishedAt":"2026-11-05T05:25:55.141Z","updatedAt":"2026-11-05T05:25:55.141Z","severity":{"score":8.7,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","source":"mitre"},"assigner":"mitre","products":["iTerm2 iTerm2"],"affected":[{"vendor":"iTerm2","product":"iTerm2","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"3.7.7beta2","versionType":"custom"}],"modules":["x-man-page: URL handler"],"platforms":["MacOS"],"programFiles":["sources/iTermSessionLauncher.m"],"programRoutines":[{"name":"profileByModifyingProfile:toShowManPage:"},{"name":"sanitizedCommand:"}],"repo":"https://gitlab.com/gnachman/iterm2"}],"references":["https://gitlab.com/gnachman/iterm2/-/commit/f29420ae4d3e0f986ee24ea286885d32af58175a","https://iterm2.com/downloads.html","https://gitlab.com/gnachman/iterm2/-/commit/314ba43920dbce08808c032e89966918090bdf8e"],"weaknesses":["CWE-88"],"ingestedAt":"2026-11-05T05:30:06.167Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/123xxx/CVE-2026-123014.json","commit":"28df9480d9d5e5cf9d2c158fab5873342436f1c2","baselineCommit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-123014","state":"PUBLISHED","datePublished":"2026-11-05T05:25:55.141Z","dateUpdated":"2026-11-05T05:25:55.141Z","assignerShortName":"mitre","assignerOrgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","dateReserved":"2026-11-05T05:25:54.727Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"iTerm2 before 3.7.7beta2 has an argument injection vulnerability in the x-man-page: URL handler, allowing an attacker to execute arbitrary commands with the privileges of the logged-in user by inducing the user to open a crafted URL in iTerm2. Percent-encoded NUL characters survive input sanitization and are subsequently converted to whitespace during command-line parsing, allowing injection of additional arguments to /usr/bin/man. An attacker can inject the -P option to select an attacker-controlled pager command. NOTE: this issue exists because of an incomplete fix for CVE-2023-46321."}],"affected":[{"vendor":"iTerm2","product":"iTerm2","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"3.7.7beta2","versionType":"custom"}],"modules":["x-man-page: URL handler"],"platforms":["MacOS"],"programFiles":["sources/iTermSessionLauncher.m"],"programRoutines":[{"name":"profileByModifyingProfile:toShowManPage:"},{"name":"sanitizedCommand:"}],"repo":"https://gitlab.com/gnachman/iterm2"}],"references":[{"url":"https://gitlab.com/gnachman/iterm2/-/commit/f29420ae4d3e0f986ee24ea286885d32af58175a","tags":["patch"]},{"url":"https://iterm2.com/downloads.html","tags":["release-notes"]},{"url":"https://gitlab.com/gnachman/iterm2/-/commit/314ba43920dbce08808c032e89966918090bdf8e","tags":["patch"]}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"NONE","attackVector":"NETWORK","baseScore":8.7,"baseSeverity":"HIGH","privilegesRequired":"NONE","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","userInteraction":"PASSIVE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","version":"4.0","vulnAvailabilityImpact":"HIGH","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"HIGH","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-88","description":"CWE-88 Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"mitre","orgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","dateUpdated":"2026-11-05T05:25:55.141Z"},"configurations":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>A vulnerable version of iTerm2 must be installed and receive the crafted x-man-page: URL. For browser-based delivery, iTerm2 must be selected as the application that handles this URL scheme. The user opens the crafted link, and an additional browser or macOS confirmation to launch iTerm2 may be required depending on the configuration.</p>"}],"value":"A vulnerable version of iTerm2 must be installed and receive the crafted x-man-page: URL. For browser-based delivery, iTerm2 must be selected as the application that handles this URL scheme. The user opens the crafted link, and an additional browser or macOS confirmation to launch iTerm2 may be required depending on the configuration."}],"solutions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"<p>The maintainer confirms that the fix first shipped in iTerm2 3.7.7beta2 and will be included in the 3.7.7 stable release. The x-man-page: handler now validates manual-page sections and page names against an allowlist of characters. URLs containing NUL or other disallowed characters are rejected with a warning. Users should upgrade to a release containing this fix.</p>"}],"value":"The maintainer confirms that the fix first shipped in iTerm2 3.7.7beta2 and will be included in the 3.7.7 stable release. The x-man-page: handler now validates manual-page sections and page names against an allowlist of characters. URLs containing NUL or other disallowed characters are rejected with a warning. Users should upgrade to a release containing this fix."}],"x_generator":{"engine":"CVE-Request-form 0.0.1"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:iterm2:iterm2:*:*:*:*:*:*:*:*","versionEndExcluding":"3.7.7beta2"}]}]}]}}}}