menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right All_wiki chevron_right Some-PoC-oR-ExP-master chevron_right Django chevron_right CVE-2021-31542.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    CVE-2021-31542.md
    931 B / 2021-07-04 19:32:24
        ## Django上传文件目录穿越漏洞——CVE-2021-31542
    ## 漏洞描述
    Django 3.2.1, 3.1.9, and 2.2.21: CVE-2021-31542: Potential
     directory-traversal via uploaded files
    
    在这些版本的Django中使用`MultiPartParser`, `UploadedFile`, 和 `FieldFile` 时,存在构造特别的文件名../等进行目录穿越漏洞。
    构造文件名参考:/tmp/../path
    
    ## 修复方案:
    空文件名和带..的文件名都将拒绝
    
    在文件:django/core/files/utils.py 中添加方法:
    ```
    def validate_file_name(name):
        if name != os.path.basename(name):
            raise SuspiciousFileOperation("File name '%s' includes path elements" % name)
    
        # Remove potentially dangerous names
        if name in {'', '.', '..'}:
            raise SuspiciousFileOperation("Could not derive file name from '%s'" % name)
    
        return name
    ```
    
    
    **参考 commit**
    https://github.com/django/django/commit/04ac1624bdc2fa737188401757cf95ced122d26d
    
    
    links
    file_download