CWE-88 là gì?
Sản phẩm tạo một chuỗi lệnh để thành phần khác thực thi nhưng không phân tách đúng các đối số, tùy chọn hoặc cờ dự kiến trong chuỗi đó. Dữ liệu không tin cậy có thể làm phát sinh các đối số ngoài ý muốn.
Sản phẩm tạo một chuỗi lệnh để thành phần khác thực thi nhưng không phân tách đúng các đối số, tùy chọn hoặc cờ dự kiến trong chuỗi đó. Dữ liệu không tin cậy có thể làm phát sinh các đối số ngoài ý muốn.
Khi lắp ghép lệnh bằng cách nội suy vào một chuỗi, nhà phát triển có thể nghĩ rằng việc ngăn chèn thêm lệnh, chẳng hạn bằng cách xử lý ký tự đặc biệt của shell, là đủ. Tuy nhiên, thành phần nhận lệnh vẫn có thể diễn giải các dấu phân cách đối số trong dữ liệu không tin cậy và xem chúng là các tham số mới. Các tham số thừa có thể thay đổi logic thực thi và, tùy chức năng mà lệnh hỗ trợ, dẫn đến đọc hoặc sửa dữ liệu, thực thi mã hoặc lệnh không được phép, hay hành vi ngoài dự kiến khác.
Điểm đặc trưng của điểm yếu này là việc ghép lệnh và dữ liệu vào một chuỗi dựa trên giả định rằng chỉ các đối số do nhà phát triển cung cấp sẽ được xử lý. Dù chuỗi đã ngăn các lệnh riêng biệt hoặc ký tự đặc biệt của shell, đầu vào vẫn có thể chứa dấu phân cách đối số, khoảng trắng, dấu ngoặc kép hoặc dạng tương tự để tạo thêm tùy chọn và cờ. Điểm yếu phát sinh trong giai đoạn triển khai và không phụ thuộc vào ngôn ngữ hay công nghệ cụ thể; bản ghi cho biết PHP là một nền tảng thường gặp.
Kẻ tấn công có thể thêm các đối số để thực thi mã hoặc lệnh không được phép, thay đổi logic thực thi, đọc dữ liệu ứng dụng hoặc sửa dữ liệu ứng dụng. Bản ghi cũng liên hệ điểm yếu này với ảnh hưởng đến tính sẵn sàng và các hành vi ngoài dự kiến khác, nhưng không nêu tác động cụ thể hơn cho các trường hợp đó.
| Tác động | Phạm vi | Diễn giải |
|---|---|---|
| Thực thi mã hoặc lệnh trái phép, Thay đổi logic thực thi, Đọc dữ liệu ứng dụng, Thay đổi dữ liệu ứng dụng | Tính bí mật, Tính toàn vẹn, Tính sẵn sàng, Khác | An attacker could include arguments that allow unintended commands or code to be executed, allow sensitive data to be read or modified or could cause other unintended behavior. |
escapeshellarg với system và mảng đối số với exec trong PHP, cũng như chuyển từ system sang exec trong C, làm ví dụ.Phân tích tĩnh tự động, còn gọi là SAST, có thể phát hiện một số trường hợp bằng cách lập mô hình luồng dữ liệu và luồng điều khiển trong mã nguồn hoặc mã đã biên dịch, rồi tìm đường đi từ nguồn dữ liệu đầu vào đến các điểm gọi thành phần bên ngoài hoặc lớp thấp hơn như hệ điều hành. Phương pháp này có hiệu quả cao nhưng không bảo đảm phát hiện mọi trường hợp, vì chỉ nhận diện được các mẫu và đường đi mà công cụ lập mô hình được.
| Phương pháp | Cách làm | Hiệu quả |
|---|---|---|
| Phân tích tĩnh tự động | Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.) | Cao |
Các ví dụ sau đây là một số ví dụ đại diện, không phải danh sách đầy đủ:
CVE-2022-36069: công cụ quản lý phụ thuộc viết bằng Python tránh chèn lệnh hệ điều hành khi tạo lệnh Git nhưng vẫn cho phép chèn các đối số tùy chọn bắt đầu bằng dấu gạch ngang, có khả năng dẫn đến thực thi mã.CVE-1999-0113: đối số -froot được chuyển cho chương trình khác, trong đó -f khiến chương trình chạy với người dùng root.CVE-2001-0150, CVE-2001-0667, CVE-2004-0121, CVE-2004-0473, CVE-2004-0489 và CVE-2006-6597: trình duyệt hoặc ứng dụng xử lý URI truyền các tùy chọn dòng lệnh ngoài ý muốn cho Telnet, mail client hoặc chương trình khác, có thể dẫn đến thực thi lệnh, chương trình hoặc mã.CVE-2002-0985, CVE-2005-4699 và CVE-2016-10033: các đối số được chèn vào chức năng mail hoặc chương trình Whois, cho phép thay đổi tùy chọn, vượt qua hạn chế, đọc thông tin nhạy cảm, ghi tệp hoặc thực thi chương trình.CVE-2006-2312, CVE-2006-3015 và CVE-2004-0480: các URI hoặc tên đường dẫn được chế tạo làm thay đổi tùy chọn của chương trình, cho phép tải lên, tải xuống tệp hoặc dùng tệp cấu hình thay thế.CVE-2007-0882: máy chủ Telnet diễn giải một chuỗi -f như yêu cầu hợp lệ để bỏ qua xác thực cho chương trình đăng nhập.CVE-2019-13475: chèn tùy chọn -exec khiến lệnh được thực thi.CVE-2006-1865, CVE-2006-2056, CVE-2006-2057, CVE-2006-2058 và CVE-2006-4692 được bản ghi liên hệ với việc tạo dòng lệnh không an toàn hoặc sửa đối số, nhưng một số trường hợp không xác định rõ liệu nguyên nhân cụ thể là chèn đối số, ký tự đặc biệt của shell, vấn đề triển khai hay API.Dưới đây là các lỗ hổng tiêu biểu liên quan đến CWE-88, dựa theo mức độ ưu tiên
CWE™ Program, operated by The MITRE Corporation. Copyright © 2006–2026, The MITRE Corporation. The MITRE Corporation hereby grants you a non-exclusive, royalty-free license to use CWE for research, development, and commercial purposes. CWE Terms of Use.
Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.
Khám phá CyStack VulnScanvi