CWE-1333: Độ phức tạp biểu thức chính quy không hiệu quả

CWE-1333 là gì?

CWE-1333 là độ phức tạp biểu thức chính quy không hiệu quả. Lỗi phát sinh khi sản phẩm sử dụng biểu thức chính quy có độ phức tạp tính toán trong trường hợp xấu nhất không hiệu quả và có thể là cấp số mũ. Hiện có 183 lỗ hổng trong kho dữ liệu liên quan đến CWE-1333 và không có lỗ hổng nào nằm trong danh mục khai thác thực tế của CISA.

Thứ hạng OWASP Top 10-
Tổng số CVE liên quan (365 ngày)183
Mức trừu tượngCơ bản
Khả năng khai thácCao

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

183 lỗ hổngTăng 663% so với cùng kỳ

Không có dữ liệu

Chưa có dữ liệu về lỗ hổng trong CISA KEV cho CWE-1333

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

TheoMitre CWE

Chi tiết kỹ thuật

Một số bộ máy biểu thức chính quy sử dụng cơ chế quay lui để thử các cách phân tích khác nhau khi một token không khớp. Nếu biểu thức cho phép số lần quay lui tăng theo cấp số mũ theo độ dài dữ liệu, một đầu vào dài được tạo để không khớp có thể khiến bộ máy thực hiện lượng tính toán quá lớn. Vấn đề thường phát sinh trong giai đoạn triển khai, khi các mẫu dễ viết với ký tự khớp không giới hạn được sử dụng mà không đánh giá chi phí quay lui. Hành vi này thường được gọi là ReDoS hoặc quay lui thảm họa.

Đặc điểm

Điểm yếu thường xuất hiện khi biểu thức chính quy dùng các mẫu có thể tạo ra nhiều khả năng quay lui, đặc biệt là các bộ định lượng lồng nhau hoặc các nhóm bắt giữ chồng lấn. Một số bộ máy biểu thức chính quy hỗ trợ quay lui: khi một token không khớp, bộ máy có thể quay về vị trí trước đó để thử cách phân tích khác. Rủi ro trở thành đáng kể khi số lần thử tăng theo cấp số mũ theo độ dài đầu vào, đầu vào có thể không khớp và đầu vào đủ dài. Đây là điểm yếu không phụ thuộc ngôn ngữ; bản ghi cũng nêu Go là một nền tảng áp dụng.

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

Hậu quả chính là ảnh hưởng đến tính sẵn sàng do tiêu thụ tài nguyên CPU. Kẻ tấn công có thể cung cấp đầu vào được tạo đặc biệt để kích hoạt quay lui quá mức, làm CPU tăng đột biến và có thể trì hoãn hoặc ngăn việc xử lý các yêu cầu hay thông điệp khác. Bản ghi phân loại tác động này là từ chối dịch vụ.

Dữ liệu MITRE CWE chính thức
Tác độngPhạm viDiễn giải
Từ chối dịch vụ: tiêu thụ tài nguyên CPUTính sẵn sàngAttackers can create crafted inputs that intentionally cause the regular expression to use excessive backtracking in a way that causes the CPU consumption to spike.

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

  • Kiến trúc và thiết kế: Ưu tiên các bộ xử lý biểu thức chính quy không hỗ trợ quay lui, chẳng hạn bằng cách loại bỏ các bộ định lượng lồng nhau. Đây là một trong số ít biện pháp có hiệu quả cao khi biểu thức chính quy do người dùng cung cấp.
  • Cấu hình hệ thống: Thiết lập giới hạn quay lui trong cấu hình của bộ triển khai biểu thức chính quy, chẳng hạn pcre.backtrack_limit của PHP, đồng thời cân nhắc giới hạn thời gian thực thi của tiến trình.
  • Triển khai: Không áp dụng biểu thức chính quy lên dữ liệu đầu vào không đáng tin cậy khi có thể tránh. Khi bắt buộc phải dùng biểu thức chính quy, tránh quay lui trong biểu thức.
  • Xử lý đầu vào: Giới hạn độ dài đầu vào mà biểu thức chính quy được phép xử lý.
Dữ liệu MITRE CWE chính thức
  1. Kiến trúc và thiết kế · Hiệu quả: CaoUse regular expressions that do not support backtracking, e.g. by removing nested quantifiers.This is one of the few effective solutions when using user-provided regular expressions.
  2. Cấu hình hệ thống · Hiệu quả: KháSet backtracking limits in the configuration of the regular expression implementation, such as PHP's pcre.backtrack_limit. Also consider limits on execution time for the process.
  3. Hiện thực hóa · Hiệu quả: CaoDo not use regular expressions with untrusted input. If regular expressions must be used, avoid using backtracking in the expression.
  4. Hiện thực hóa · Hiệu quả: KháLimit the length of the input that the regular expression will process.

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

Phân tích tĩnh tự động, thường được gọi là Kiểm thử bảo mật ứng dụng tĩnh (SAST), có thể phát hiện một số trường hợp bằng cách phân tích mã nguồn hoặc mã nhị phân đã biên dịch mà không cần thực thi. Phương pháp này thường lập mô hình luồng dữ liệu và luồng điều khiển, sau đó tìm các mẫu nguy hiểm nối nguồn dữ liệu đầu vào với các điểm xử lý biểu thức chính quy hoặc thành phần bên ngoài. Phương pháp này không nhất thiết phát hiện được mọi biểu thức có hành vi quay lui quá mức, nên cần xem xét cả cấu trúc biểu thức và giới hạn đầu vào trong quá trình đánh giá.

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

Các ví dụ đại diện trong bản ghi gồm:

  • CVE-2020-5243: máy chủ có thể bị ReDoS qua chuỗi User-Agent được tạo đặc biệt do các nhóm bắt giữ chồng lấn gây quay lui quá mức.
  • CVE-2021-21317: gói npm phân tích user-agent dễ bị ReDoS do các nhóm bắt giữ chồng lấn.
  • CVE-2019-16215: bộ phân tích Markdown dùng biểu thức chính quy không hiệu quả, cho phép làm tăng mức sử dụng CPU và trì hoãn việc xử lý các thông điệp khác.
  • CVE-2019-6785: một chuỗi dài trong sản phẩm quản lý phiên bản có thể gây từ chối dịch vụ do biểu thức chính quy không hiệu quả.
  • CVE-2019-12041: mã JavaScript cho phép ReDoS qua chuỗi dài do quay lui quá mức.
  • CVE-2015-8315: ReDoS khi phân tích thời gian.
  • CVE-2015-8854: ReDoS khi phân tích tài liệu.
  • CVE-2017-16021: ReDoS khi xác thực URL.

Đây là các ví dụ đại diện được bản ghi tuyển chọn, không phải danh sách đầy đủ mọi lỗ hổng.

Nguồn (2)

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.