CVE-2023-54137

Not scored yetLast modified Jun 17, 2026

Description

In the Linux kernel, the following vulnerability has been resolved:

vfio/type1: fix cap_migration information leak

Fix an information leak where an uninitialized hole in struct vfio_iommu_type1_info_cap_migration on the stack is exposed to userspace.

The definition of struct vfio_iommu_type1_info_cap_migration contains a hole as shown in this pahole(1) output:

struct vfio_iommu_type1_info_cap_migration { struct vfio_info_cap_header header; /* 0 8 */ __u32 flags; /* 8 4 */

/* XXX 4 bytes hole, try to pack */

__u64 pgsize_bitmap; /* 16 8 */ __u64 max_dirty_bitmap_size; /* 24 8 */

/* size: 32, cachelines: 1, members: 4 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ };

The cap_mig variable is filled in without initializing the hole:

static int vfio_iommu_migration_build_caps(struct vfio_iommu *iommu, struct vfio_info_cap *caps) { struct vfio_iommu_type1_info_cap_migration cap_mig;

cap_mig.header.id = VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION; cap_mig.header.version = 1;

cap_mig.flags = 0; /* support minimum pgsize */ cap_mig.pgsize_bitmap = (size_t)1 << __ffs(iommu->pgsize_bitmap); cap_mig.max_dirty_bitmap_size = DIRTY_BITMAP_SIZE_MAX;

return vfio_info_add_capability(caps, &cap_mig.header, sizeof(cap_mig)); }

The structure is then copied to a temporary location on the heap. At this point it's already too late and ioctl(VFIO_IOMMU_GET_INFO) copies it to userspace later:

int vfio_info_add_capability(struct vfio_info_cap *caps, struct vfio_info_cap_header *cap, size_t size) { struct vfio_info_cap_header *header;

header = vfio_info_cap_add(caps, size, cap->id, cap->version); if (IS_ERR(header)) return PTR_ERR(header);

memcpy(header + 1, cap + 1, size - sizeof(*header));

return 0; }

This issue was found by code inspection.

Metrics

No CVSS score has been published yet.

Affected software

VendorProductVersions
LinuxLinux>= ad721705d09c62f0d108a6b4f59867ebfd592c90, < ad83d83dd891244de0d07678b257dc976db7c132; >= ad721705d09c62f0d108a6b4f59867ebfd592c90, < 13fd667db999bffb557c5de7adb3c14f1713dd51; >= ad721705d09c62f0d108a6b4f59867ebfd592c90, < f6f300ecc196d243c02adeb9ee0c62c677c24bfb; >= ad721705d09c62f0d108a6b4f59867ebfd592c90, < cbac29a1caa49a34e131394e1f4d924a76d8b0c9; >= ad721705d09c62f0d108a6b4f59867ebfd592c90, < 1b5feb8497cdb5b9962db2700814bffbc030fb4a; >= ad721705d09c62f0d108a6b4f59867ebfd592c90, < cd24e2a60af633f157d7e59c0a6dba64f131c0b1
LinuxLinux5.8

References

Timeline

Published
Dec 24, 2025
Last modified
Jun 17, 2026
NVD status
Deferred

Related CVEs from 2023

CVE-2023-54138In the Linux kernel, the following vulnerability has been resolved: drm/msm: fix NULL-deref on irq uninstall In case of early initialisatiCVE-2023-541397.8In the Linux kernel, the following vulnerability has been resolved: tracing/user_events: Ensure write index cannot be negative The write iCVE-2023-54147.2The Icegram Express plugin for WordPress is vulnerable to Directory Traversal in versions up to, and including, 5.6.23 via the show_es_logs CVE-2023-541407.8In the Linux kernel, the following vulnerability has been resolved: nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse CVE-2023-54141In the Linux kernel, the following vulnerability has been resolved: wifi: ath11k: Add missing hw_ops->get_ring_selector() for IPQ5018 DuriCVE-2023-541427.8In the Linux kernel, the following vulnerability has been resolved: gtp: Fix use-after-free in __gtp_encap_destroy(). syzkaller reported uCVE-2023-54143In the Linux kernel, the following vulnerability has been resolved: media: mediatek: vcodec: fix resource leaks in vdec_msg_queue_init() ICVE-2023-54144In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: Fix kernel warning during topology setup This patch fixes CVE-2023-54145In the Linux kernel, the following vulnerability has been resolved: bpf: drop unnecessary user-triggerable WARN_ONCE in verifierl log It'sCVE-2023-54146In the Linux kernel, the following vulnerability has been resolved: x86/kexec: Fix double-free of elf header buffer After b3e34a47f989 CVE-2023-54147In the Linux kernel, the following vulnerability has been resolved: media: platform: mtk-mdp3: Add missing check and free for ida_alloc AdCVE-2023-54148In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: Move representor neigh cleanup to profile cleanup_tx For IP
CVE-2023-54137: Unscored | Vulnix