CWE-639: Vượt qua kiểm soát cấp quyền thông qua khóa do người dùng kiểm soát

CWE-639 là gì?

CWE-639 là vượt qua kiểm soát cấp quyền thông qua khóa do người dùng kiểm soát. Lỗi phát sinh khi hệ thống không ngăn chặn một người dùng truy cập dữ liệu hoặc bản ghi của người dùng khác bằng cách sửa giá trị khóa dùng để xác định dữ liệu đó. Hiện có 1.477 lỗ hổng trong kho dữ liệu liên quan đến CWE-639 và 1 trong số đó nằm trong danh mục khai thác thực tế của CISA.

THỨ HẠNG OWASP TOP 10:20251 — A01:2025 — Broken Access Control
Tổng số CVE liên quan (365 ngày)1.477
Mức trừu tượngCơ bản
Khả năng khai thácCao

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

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

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

1 lỗ hổng

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

TheoMitre CWE

Chi tiết kỹ thuật

Hệ thống thực hiện tra cứu bản ghi người dùng dựa trên một giá trị khóa nằm dưới sự kiểm soát của người dùng. Mặc dù người yêu cầu có thể đã đăng nhập, hệ thống không kiểm tra đúng quyền đối với thao tác truy cập và bản ghi cụ thể, nên các cơ chế cấp quyền khác có thể bị vượt qua.

Khóa có thể được truyền qua trường ẩn trong biểu mẫu HTML, tham số URL hoặc cookie không mã hóa. Nếu người dùng có thể thay đổi khóa và máy chủ tin tưởng giá trị đó mà không ràng buộc bản ghi với người dùng hiện tại, kẻ tấn công có thể truy cập dữ liệu của người khác. Một biểu hiện khác là mã phiên tuần tự hoặc dễ đoán, cho phép người dùng chuyển sang phiên của người khác để đọc hoặc sửa dữ liệu.

Đặc điểm

Điểm yếu phát sinh khi hệ thống tra cứu bản ghi dựa trên một khóa do người dùng kiểm soát, trong khi kiểm tra cấp quyền không xác nhận rằng người dùng đã đăng nhập được phép truy cập bản ghi cụ thể đó. Khóa có thể xuất hiện trong trường ẩn của biểu mẫu HTML, tham số URL hoặc biến cookie không mã hóa, khiến người dùng có thể thay đổi giá trị. Việc sử dụng mã phiên tuần tự hoặc dễ đoán cũng có thể cho phép chuyển sang phiên của người dùng khác để đọc hoặc sửa dữ liệu. Điểm yếu này thường hình thành trong giai đoạn kiến trúc và thiết kế, với khả năng khai thác được đánh giá là cao.

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

Các kiểm tra kiểm soát truy cập đối với dữ liệu hoặc chức năng cụ thể của người dùng có thể bị vượt qua. Người dùng có thể leo thang đặc quyền theo chiều ngang, tức đọc hoặc sửa thông tin của người dùng khác. Nếu khóa do người dùng kiểm soát thực chất là một cờ biểu thị trạng thái quản trị viên, điểm yếu cũng có thể dẫn đến leo thang đặc quyền theo chiều dọc và truy cập quản trị.

Dữ liệu MITRE CWE chính thức
Tác độngPhạm viDiễn giải
Vượt qua cơ chế bảo vệKiểm soát truy cậpAccess control checks for specific user data or functionality can be bypassed.
Chiếm đặc quyền hoặc mạo danhKiểm soát truy cậpHorizontal escalation of privilege is possible (one user can view/modify information of another user).
Chiếm đặc quyền hoặc mạo danhKiểm soát truy cậpVertical escalation of privilege is possible if the user-controlled key is actually a flag that indicates administrator status, allowing the attacker to gain administrative access.

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

Thực hiện kiểm tra cấp quyền cho mọi thao tác truy cập dữ liệu, bảo đảm người yêu cầu có đủ quyền đối với đúng bản ghi được yêu cầu. Không để người dùng kiểm soát từ bên ngoài khóa dùng để tra cứu bản ghi của người dùng khác; nếu khóa vẫn có thể bị tác động, phải phát hiện việc sửa đổi. Có thể dùng mã hóa để làm cho các giá trị khóa hợp lệ khác khó bị đoán hơn, đồng thời gắn chữ ký số với khóa để máy chủ xác minh khóa chưa bị thay đổi.

Dữ liệu MITRE CWE chính thức
  1. Kiến trúc và thiết kếFor each and every data access, ensure that the user has sufficient privilege to access the record that is being requested.
  2. Kiến trúc và thiết kế, Hiện thực hóaMake sure that the key that is used in the lookup of a specific user's record is not controllable externally by the user or that any tampering can be detected.
  3. Kiến trúc và thiết kếUse encryption in order to make it more difficult to guess other legitimate values of the key or associate a digital signature with the key so that the server can verify that there has been no tampering.

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

Phân tích tĩnh tự động, thường 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, sau đó tìm các mẫu nối dữ liệu đầu vào với nơi dữ liệu được sử dụng. Phương pháp này không nhất thiết thực thi ứng dụng và chỉ phát hiện được những trường hợp mà các mẫu dễ bị tổn thương có thể được suy luận từ mã.

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

Ví dụ đại diện, không phải danh sách đầy đủ, là CVE-2021-36539. Một ứng dụng giáo dục không giới hạn đúng các mã tệp theo từng người dùng, nên kẻ tấn công có thể đoán vét cạn các mã và truy cập các tệp thuộc người dùng khác, thể hiện dạng IDOR.

Dữ liệu MITRE CWE chính thức
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.