{"id":"CVE-2024-50072","state":"PUBLISHED","title":"x86/bugs: Use code segment selector for VERW operand","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nx86/bugs: Use code segment selector for VERW operand\n\nRobert Gill reported below #GP in 32-bit mode when dosemu software was\nexecuting vm86() system call:\n\n  general protection fault: 0000 [#1] PREEMPT SMP\n  CPU: 4 PID: 4610 Comm: dosemu.bin Not tainted 6.6.21-gentoo-x86 #1\n  Hardware name: Dell Inc. PowerEdge 1950/0H723K, BIOS 2.7.0 10/30/2010\n  EIP: restore_all_switch_stack+0xbe/0xcf\n  EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000000\n  ESI: 00000000 EDI: 00000000 EBP: 00000000 ESP: ff8affdc\n  DS: 0000 ES: 0000 FS: 0000 GS: 0033 SS: 0068 EFLAGS: 00010046\n  CR0: 80050033 CR2: 00c2101c CR3: 04b6d000 CR4: 000406d0\n  Call Trace:\n   show_regs+0x70/0x78\n   die_addr+0x29/0x70\n   exc_general_protection+0x13c/0x348\n   exc_bounds+0x98/0x98\n   handle_exception+0x14d/0x14d\n   exc_bounds+0x98/0x98\n   restore_all_switch_stack+0xbe/0xcf\n   exc_bounds+0x98/0x98\n   restore_all_switch_stack+0xbe/0xcf\n\nThis only happens in 32-bit mode when VERW based mitigations like MDS/RFDS\nare enabled. This is because segment registers with an arbitrary user value\ncan result in #GP when executing VERW. Intel SDM vol. 2C documents the\nfollowing behavior for VERW instruction:\n\n  #GP(0) - If a memory operand effective address is outside the CS, DS, ES,\n\t   FS, or GS segment limit.\n\nCLEAR_CPU_BUFFERS macro executes VERW instruction before returning to user\nspace. Use %cs selector to reference VERW operand. This ensures VERW will\nnot #GP for an arbitrary user %ds.\n\n[ mingo: Fixed the SOB chain. ]","publishedAt":"2024-10-29T00:50:14.170Z","updatedAt":"2026-05-23T15:54:21.843Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"50f021f0b985629accf10481a6e89af8b9700583","status":"affected","lessThan":"bfd1d223d80cb29a210caa1bd5e21f0816d58f02","versionType":"git"},{"version":"d54de9f2a127090f2017184e8257795b487d5312","status":"affected","lessThan":"ada431c6c31a2c8c37991c46089af5caa23a9c6e","versionType":"git"},{"version":"2e3087505ddb8ba2d3d4c81306cca11e868fcdb9","status":"affected","lessThan":"38c5fe74f3bef98f75d16effa49836d50c9b6097","versionType":"git"},{"version":"ca13d8cd8dac25558da4ee8df4dc70e8e7f9d762","status":"affected","lessThan":"481b477ab63c7245715a3e57ba79eb87c2dc0d02","versionType":"git"},{"version":"a0e2dab44d22b913b4c228c8b52b2a104434b0b3","status":"affected","lessThan":"bc576fbaf82deded606e69a00efe9752136bf91d","versionType":"git"},{"version":"a0e2dab44d22b913b4c228c8b52b2a104434b0b3","status":"affected","lessThan":"e4d2102018542e3ae5e297bc6e229303abff8a0f","versionType":"git"},{"version":"51eca9f1fd047b500137d021f882d93f03280118","status":"affected","versionType":"git"},{"version":"5.10.215","status":"affected","lessThan":"5.10.229","versionType":"semver"},{"version":"5.15.154","status":"affected","lessThan":"5.15.171","versionType":"semver"},{"version":"6.1.81","status":"affected","lessThan":"6.1.116","versionType":"semver"},{"version":"6.6.21","status":"affected","lessThan":"6.6.58","versionType":"semver"},{"version":"6.7.9","status":"affected","lessThan":"6.8","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/include/asm/nospec-branch.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.8","versionType":"semver"},{"version":"5.10.229","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.171","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.116","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.58","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.5","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/include/asm/nospec-branch.h"]}],"references":["https://git.kernel.org/stable/c/bfd1d223d80cb29a210caa1bd5e21f0816d58f02","https://git.kernel.org/stable/c/ada431c6c31a2c8c37991c46089af5caa23a9c6e","https://git.kernel.org/stable/c/38c5fe74f3bef98f75d16effa49836d50c9b6097","https://git.kernel.org/stable/c/481b477ab63c7245715a3e57ba79eb87c2dc0d02","https://git.kernel.org/stable/c/bc576fbaf82deded606e69a00efe9752136bf91d","https://git.kernel.org/stable/c/e4d2102018542e3ae5e297bc6e229303abff8a0f","https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html","https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:56.516Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/50xxx/CVE-2024-50072.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-50072","state":"PUBLISHED","datePublished":"2024-10-29T00:50:14.170Z","dateUpdated":"2026-05-23T15:54:21.843Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-10-21T19:36:19.940Z"},"containers":{"cna":{"title":"x86/bugs: Use code segment selector for VERW operand","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nx86/bugs: Use code segment selector for VERW operand\n\nRobert Gill reported below #GP in 32-bit mode when dosemu software was\nexecuting vm86() system call:\n\n  general protection fault: 0000 [#1] PREEMPT SMP\n  CPU: 4 PID: 4610 Comm: dosemu.bin Not tainted 6.6.21-gentoo-x86 #1\n  Hardware name: Dell Inc. PowerEdge 1950/0H723K, BIOS 2.7.0 10/30/2010\n  EIP: restore_all_switch_stack+0xbe/0xcf\n  EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000000\n  ESI: 00000000 EDI: 00000000 EBP: 00000000 ESP: ff8affdc\n  DS: 0000 ES: 0000 FS: 0000 GS: 0033 SS: 0068 EFLAGS: 00010046\n  CR0: 80050033 CR2: 00c2101c CR3: 04b6d000 CR4: 000406d0\n  Call Trace:\n   show_regs+0x70/0x78\n   die_addr+0x29/0x70\n   exc_general_protection+0x13c/0x348\n   exc_bounds+0x98/0x98\n   handle_exception+0x14d/0x14d\n   exc_bounds+0x98/0x98\n   restore_all_switch_stack+0xbe/0xcf\n   exc_bounds+0x98/0x98\n   restore_all_switch_stack+0xbe/0xcf\n\nThis only happens in 32-bit mode when VERW based mitigations like MDS/RFDS\nare enabled. This is because segment registers with an arbitrary user value\ncan result in #GP when executing VERW. Intel SDM vol. 2C documents the\nfollowing behavior for VERW instruction:\n\n  #GP(0) - If a memory operand effective address is outside the CS, DS, ES,\n\t   FS, or GS segment limit.\n\nCLEAR_CPU_BUFFERS macro executes VERW instruction before returning to user\nspace. Use %cs selector to reference VERW operand. This ensures VERW will\nnot #GP for an arbitrary user %ds.\n\n[ mingo: Fixed the SOB chain. ]"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"50f021f0b985629accf10481a6e89af8b9700583","status":"affected","lessThan":"bfd1d223d80cb29a210caa1bd5e21f0816d58f02","versionType":"git"},{"version":"d54de9f2a127090f2017184e8257795b487d5312","status":"affected","lessThan":"ada431c6c31a2c8c37991c46089af5caa23a9c6e","versionType":"git"},{"version":"2e3087505ddb8ba2d3d4c81306cca11e868fcdb9","status":"affected","lessThan":"38c5fe74f3bef98f75d16effa49836d50c9b6097","versionType":"git"},{"version":"ca13d8cd8dac25558da4ee8df4dc70e8e7f9d762","status":"affected","lessThan":"481b477ab63c7245715a3e57ba79eb87c2dc0d02","versionType":"git"},{"version":"a0e2dab44d22b913b4c228c8b52b2a104434b0b3","status":"affected","lessThan":"bc576fbaf82deded606e69a00efe9752136bf91d","versionType":"git"},{"version":"a0e2dab44d22b913b4c228c8b52b2a104434b0b3","status":"affected","lessThan":"e4d2102018542e3ae5e297bc6e229303abff8a0f","versionType":"git"},{"version":"51eca9f1fd047b500137d021f882d93f03280118","status":"affected","versionType":"git"},{"version":"5.10.215","status":"affected","lessThan":"5.10.229","versionType":"semver"},{"version":"5.15.154","status":"affected","lessThan":"5.15.171","versionType":"semver"},{"version":"6.1.81","status":"affected","lessThan":"6.1.116","versionType":"semver"},{"version":"6.6.21","status":"affected","lessThan":"6.6.58","versionType":"semver"},{"version":"6.7.9","status":"affected","lessThan":"6.8","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/include/asm/nospec-branch.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.8","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.8","versionType":"semver"},{"version":"5.10.229","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.171","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.116","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.58","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.11.5","status":"unaffected","lessThanOrEqual":"6.11.*","versionType":"semver"},{"version":"6.12","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["arch/x86/include/asm/nospec-branch.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/bfd1d223d80cb29a210caa1bd5e21f0816d58f02"},{"url":"https://git.kernel.org/stable/c/ada431c6c31a2c8c37991c46089af5caa23a9c6e"},{"url":"https://git.kernel.org/stable/c/38c5fe74f3bef98f75d16effa49836d50c9b6097"},{"url":"https://git.kernel.org/stable/c/481b477ab63c7245715a3e57ba79eb87c2dc0d02"},{"url":"https://git.kernel.org/stable/c/bc576fbaf82deded606e69a00efe9752136bf91d"},{"url":"https://git.kernel.org/stable/c/e4d2102018542e3ae5e297bc6e229303abff8a0f"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T15:54:21.843Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.215","versionEndExcluding":"5.10.229"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.154","versionEndExcluding":"5.15.171"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.81","versionEndExcluding":"6.1.116"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.21","versionEndExcluding":"6.6.58"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.11.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.8","versionEndExcluding":"6.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7.9"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T22:25:06.869Z"}}]}}}