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:
iommu/tegra241-cmdqv: Fix CMD_SYNC use-after-free on teardown
arm_smmu_impl_remove() is registered as a devres action in
arm_smmu_impl_probe(), before arm_smmu_init_queues() allocates
smmu->cmdq.q.base. On a devres unwind, whether a failed probe or an
unbind, the queue is freed first and arm_smmu_impl_remove() then runs
tegra241_cmdqv_remove_vintf(), whose VINTF deinit issues a CMD_SYNC on
the freed memory.
Observed during testing with a QEMU hack that makes the VCMDQ fail to
enable, so the impl reset fails and probe aborts into the devres unwind:
platform NVDA200C:00: tegra241_cmdqv: VINTF0: VCMDQ0/LVCMDQ0: failed to enable, STATUS=0x00000000
platform NVDA200C:00: tegra241_cmdqv: VINTF0: VCMDQ0/LVCMDQ0: GERRORN=0x0, GERROR=0x4, CONS=0x0
platform NVDA200C:00: tegra241_cmdqv: VINTF0: VCMDQ0/LVCMDQ0: uncleared error detected, resetting
arm-smmu-v3 arm-smmu-v3.0.auto: failed to reset impl
arm-smmu-v3 arm-smmu-v3.0.auto: probe with driver arm-smmu-v3 failed with error -110
Unable to handle kernel paging request at virtual address ffff8000891e0098
...
Internal error: Oops: 0000000096000047 [#1] SMP
...
Call trace:
arm_smmu_cmdq_issue_cmdlist+0x320/0x6fc (P)
tegra241_vcmdq_hw_deinit+0x98/0x168
tegra241_vintf_hw_deinit+0x5c/0x1b0
tegra241_cmdqv_remove_vintf+0x34/0xec
tegra241_cmdqv_remove+0x40/0x9c
arm_smmu_impl_remove+0x20/0x30
devm_action_release+0x14/0x20
devres_release_all+0xa8/0x110
device_unbind_cleanup+0x18/0x84
really_probe+0x1f0/0x29c
Drop the VINTF deinit from tegra241_cmdqv_remove_vintf() so the unwind no
longer touches the freed queue. Quiesce the VINTFs earlier instead. Add a
device_disable() impl op and run it from arm_smmu_disable_action() while
the CMDQ is still up. That handles a live unbind. A failed reset is already
handled because tegra241_vintf_hw_init() deinits the VINTF on its own error
path. tegra241_cmdqv_remove_vintf() is also used by the iommufd viommu
destroy path, so quiesce there too.