CPE, viết tắt của Liệt kê nền tảng phổ biến, là một lược đồ đặt tên chuẩn hóa cho phần cứng, phần mềm và hệ điều hành. CPE cung cấp lược đồ đặt tên có cấu trúc để xác định và phân loại duy nhất các hệ thống công nghệ thông tin, nền tảng và gói phần mềm dựa trên các thuộc tính nhất định như nhà cung cấp, tên sản phẩm, phiên bản, cập nhật, phiên bản và ngôn ngữ.
CWE, hay Liệt kê điểm yếu phổ biến, là danh sách và phân loại toàn diện các điểm yếu và lỗ hổng phần mềm. Nó phục vụ như ngôn ngữ chung để mô tả các điểm yếu bảo mật phần mềm trong kiến trúc, thiết kế, mã hoặc triển khai có thể dẫn đến lỗ hổng.
CAPEC, viết tắt của Liệt kê và phân loại mẫu tấn công phổ biến, là tài nguyên toàn diện, có sẵn công khai ghi lại các mẫu tấn công phổ biến được đối thủ sử dụng trong các cuộc tấn công mạng. Cơ sở kiến thức này nhằm mục đích hiểu và diễn đạt các lỗ hổng phổ biến và các phương pháp kẻ tấn công sử dụng để khai thác chúng.
Dịch vụ và giá cả
Trợ giúp và thông tin
Tìm kiếm: ID CVE, ID CWE, ID CAPEC, nhà cung cấp hoặc từ khóa trong CVE
In the Linux kernel, the following vulnerability has been resolved:
gpio: sloppy-logic-analyzer: fix use-after-free via debugfs trigger on unbind
The "trigger" debugfs file has a hand-rolled ->write handler
(trigger_write()) that dereferences the per-device gpio_la_poll_priv. The
file is created with debugfs_create_file_unsafe(), and the handler never
takes a debugfs reference. Nothing keeps the object alive while the
handler runs.
priv is allocated with devm_kzalloc(). devres frees it when the platform
device is unbound. debugfs_create_file_unsafe() installs no full_proxy
wrapper, so debugfs_remove_recursive() in gpio_la_poll_remove() does not
wait for an in-flight trigger_write(). The blob_lock taken there does not
help, because trigger_write() never takes it. A write that races an unbind
therefore writes into freed memory:
trigger_write() gpio_la_poll_remove()
priv = m->private
buf = memdup_user() [may sleep]
mutex_lock(&priv->blob_lock)
debugfs_remove_recursive() [no wait]
mutex_unlock(&priv->blob_lock)
(remove returns; devres frees priv)
priv->trig_data = buf <-- use-after-free write
priv->trig_len = count
The race is reachable by root via
/sys/bus/platform/drivers/gpio-sloppy-logic-analyzer/unbind.
Create "trigger" with debugfs_create_file() instead. Its full_proxy
wrapper makes debugfs_remove_recursive() drain any in-flight ->write
before it returns.
The use-after-free is confirmed under KASAN with a minimal reproducer of
the same debugfs_create_file_unsafe() plus devm_kzalloc() pattern
(available on request); it produces a slab-use-after-free write in the
handler.