[python] The tuple (*) argument of a call cannot step to function parameter for the CommandInjectionCustomizations flow

Đang mở
#19,900 7 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
django, python
Lĩnh vực
security

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện ví dụ Python được cung cấp và xem xét cách CodeQL xử lý việc lan truyền taint cho các đối số có dấu sao trong Python. Issue không đề cập đến tệp mã nguồn hay bài kiểm thử nào; công việc hoàn tất khi luồng taint đi tới os.system thông qua build_cmd(*args), với một bài kiểm thử hồi quy bao quát ví dụ này.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

question

In Python, when passing the typle (*) argument to function parameters, the taint propagation chain breaks. As shown in the following code snippet, this issue occurs. Are there plans to support this scenario? How do i resolve this issue?

from django.contrib.auth.decorators import login_required
from django.conf.urls import url
import os

def build_cmd(cmd: str):
    cmd = cmd + "; touch aa"
    print(cmd)
    return cmd

@login_required 
def GetOperateLog(request):
    cmd = request.POST.get('cmd', None)
    args = []
    args.append(cmd)
    cmd3 = build_cmd(*args)
    os.system(cmd3)

urlpatterns = [
    url(r'^GetOperateLog', GetOperateLog, name='GetOperateLog'),
]

This is the taint propagation flow.
Image

Ngôn ngữ chính
CodeQL
Star
10.1k
Fork
2.1k
Merge trung bình
2 ngày 10 giờ
Pull request đã merge (30 ngày)
134

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của github/codeql

Tất cả issue của github/codeql

Issue tương tự

Thêm issue về Security

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.