CWE-74: Vô hiệu hóa không đúng các phần tử đặc biệt trong đầu ra được một thành phần hạ nguồn sử dụng ('Injection')

CWE-74 là gì?

Sản phẩm xây dựng lệnh, cấu trúc dữ liệu hoặc bản ghi từ dữ liệu đầu vào chịu ảnh hưởng bên ngoài nhưng không vô hiệu hóa, hoặc vô hiệu hóa không đúng, các phần tử đặc biệt có thể làm thay đổi cách thành phần hạ nguồn phân tích hoặc diễn giải đầu ra đó.

Thống kê dữ liệu

THỨ HẠNG OWASP TOP 10:20255 — A05:2025 — Injection
TỔNG SỐ CVE LIÊN QUAN (365 NGÀY)1.158
MỨC TRỪU TƯỢNGLớp
KHẢ NĂNG KHAI THÁCCao

Số lượng lỗ hổng nằm trong CWE-74

1.158 lỗ hổngTăng 80,1% so với cùng kỳ

Số lượng lỗ hổng trong CISA KEV của CWE-74

0 lỗ hổngGiảm 100% so với cùng kỳ

Định nghĩa chính thức

TheoMitre CWE

Chi tiết kỹ thuật

Điểm yếu này xảy ra tại ranh giới giữa nguồn cung cấp dữ liệu ở phía trước và bộ diễn giải hoặc thành phần xử lý ở phía sau. Khi cú pháp điều khiển vẫn bị trộn với dữ liệu thông thường, thành phần hạ nguồn có thể coi nội dung chịu ảnh hưởng của kẻ tấn công là lệnh, biểu thức, tùy chọn, tập lệnh hoặc chỉ thị khác thay vì dữ liệu. Kết quả cụ thể phụ thuộc vào thành phần hạ nguồn, nhưng nguyên nhân cốt lõi là không vô hiệu hóa đúng cú pháp có ý nghĩa đặc biệt trong thành phần đó.

Đặc điểm

Đây là điểm yếu không phụ thuộc ngôn ngữ, phát sinh trong giai đoạn triển khai. Đặc trưng của nó là luồng dữ liệu đi từ nguồn chịu ảnh hưởng bên ngoài đến một điểm đích hạ nguồn có phân tích cú pháp đặc biệt, trong khi dữ liệu và thông tin điều khiển không được tách biệt đầy đủ. Hồ sơ đánh giá khả năng bị khai thác là cao và đánh dấu mục này là chưa hoàn chỉnh, vì vậy hành vi được mô tả không nên được xem là bao quát mọi dạng injection.

Hậu quả thường gặp

Các hậu quả tiềm ẩn gồm làm lộ dữ liệu ứng dụng và vượt qua cơ chế bảo vệ, bao gồm các kiểm soát liên quan đến xác thực. Thông tin điều khiển được chèn vào có thể thay đổi logic thực thi và trong một số trường hợp cho phép thực thi mã tùy ý. Điểm yếu này cũng có thể làm mất tính toàn vẹn dữ liệu, trong khi các hành động được chèn có thể không được ghi nhật ký, từ đó che giấu hoạt động hoặc làm suy yếu khả năng quy trách nhiệm.

Dữ liệu MITRE CWE chính thức
Tác độngPhạm viDiễn giải
Đọc dữ liệu ứng dụngTính bí mậtMany injection attacks involve the disclosure of important information -- in terms of both data sensitivity and usefulness in further exploitation.
Vượt qua cơ chế bảo vệKiểm soát truy cậpIn some cases, injectable code controls authentication; this may lead to a remote vulnerability.
Thay đổi logic thực thiKhácInjection attacks are characterized by the ability to significantly change the flow of a given process, and in some cases, to the execution of arbitrary code.
KhácTính toàn vẹn, KhácData injection attacks lead to loss of data integrity in nearly all cases as the control-plane data injected is always incidental to data recall or writing.
Che giấu hoạt độngChống chối bỏOften the actions performed by injected control code are unlogged.

Biện pháp giảm thiểu rủi ro

Yêu cầu: Khi khả thi, lựa chọn ngôn ngữ lập trình và công nghệ hỗ trợ không chịu các vấn đề injection liên quan. Triển khai: Sử dụng kết hợp phù hợp giữa phân tích theo allowlist và denylist để lọc cú pháp điều khiển khỏi mọi dữ liệu đầu vào, đồng thời xét đến cú pháp mà thành phần hạ nguồn mong đợi.

Dữ liệu MITRE CWE chính thức
  1. Yêu cầuProgramming languages and supporting technologies might be chosen which are not subject to these issues.
  2. Hiện thực hóaUtilize an appropriate mix of allowlist and denylist parsing to filter control-plane syntax from all input.

Cách phát hiện trong hệ thống

Phân tích tĩnh tự động: SAST có thể phát hiện một số trường hợp mà không cần thực thi chương trình bằng cách lập mô hình luồng dữ liệu và luồng điều khiển, sau đó tìm các đường đi rủi ro từ nguồn đầu vào đến điểm đích nơi dữ liệu tương tác với thành phần bên ngoài hoặc tầng thấp hơn như hệ điều hành. Hồ sơ đánh giá hiệu quả của phương pháp này là cao, nhưng cũng chỉ nói rằng nó phát hiện được một số trường hợp, nên kết quả không chứng minh rằng mọi đường injection đều đã được loại bỏ.

Dữ liệu MITRE CWE chính thức
Phương phápCách làmHiệu quả
Phân tích tĩnh tự độngAutomated 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

Lỗ hổng điển hình

Hồ sơ chính thức cung cấp các ví dụ tiêu biểu sau, không phải danh sách đầy đủ: CVE-2024-5184 liên quan đến prompt injection trực tiếp trong dịch vụ API sử dụng mô hình AI tạo sinh lớn, làm lộ prompt hệ thống được mã hóa cứng hoặc cho phép thực thi các prompt khác. CVE-2022-36069 tránh được OS command injection khi tạo lệnh Git nhưng 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-0067 là ví dụ kinh điển về OS command injection, trong đó chương trình CGI không vô hiệu hóa siêu ký tự | khi gọi chương trình danh bạ điện thoại. Các ví dụ khác gồm CVE-2022-1509, liên quan đến chèn cú pháp tập lệnh sed; CVE-2020-9054, trong đó việc kiểm tra không đúng tham số tên người dùng dẫn đến OS command injection và đã bị khai thác thực tế; cùng CVE-2021-44228, trong đó các biểu thức dạng ${xyz} không được vô hiệu hóa, cho phép thực thi mã từ xa.

Nguồn (4)

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.

Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

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 VulnScan