<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 16:54:50 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-26670 — arm64: entry: fix ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-26670</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;arm64: entry: fix ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD&lt;/p&gt;
&lt;p&gt;Currently the ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD workaround isn&amp;#39;t
quite right, as it is supposed to be applied after the last explicit
memory access, but is immediately followed by an LDR.&lt;/p&gt;
&lt;p&gt;The ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD workaround is used to
handle Cortex-A520 erratum 2966298 and Cortex-A510 erratum 3117295,
which are described in:&lt;/p&gt;
&lt;p&gt;* https://developer.arm.com/documentation/SDEN2444153/0600/?lang=en
* https://developer.arm.com/documentation/SDEN1873361/1600/?lang=en&lt;/p&gt;
&lt;p&gt;In both cases the workaround is described as:&lt;/p&gt;
&lt;p&gt;| If pagetable isolation is disabled, the context switch logic in the
| kernel can be updated to execute the following sequence on affected
| cores before exiting to EL0, and after all explicit memory accesses:
|
| 1. A non-shareable TLBI to any context and/or address, including
|    unused contexts or addresses, such as a `TLBI VALE1 Xzr`.
|
| 2. A DSB NSH to guarantee completion of the TLBI.&lt;/p&gt;
&lt;p&gt;The important part being that the TLBI+DSB must be placed &amp;#34;after all
explicit memory accesses&amp;#34;.&lt;/p&gt;
&lt;p&gt;Unfortunately, as-implemented, the TLBI+DSB is immediately followed by
an LDR, as we have:&lt;/p&gt;
&lt;p&gt;| alternative_if ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
| 	tlbi	vale1, xzr
| 	dsb	nsh
| alternative_else_nop_endif
| alternative_if_not ARM64_UNMAP_KERNEL_AT_EL0
| 	ldr	lr, [sp, #S_LR]
| 	add	sp, sp, #PT_REGS_SIZE		// restore sp
| 	eret
| al…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;arm64: entry: fix ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD&lt;/p&gt;
&lt;p&gt;Currently the ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD workaround isn&amp;#39;t
quite right, as it is supposed to be applied after the last explicit
memory access, but is immediately followed by an LDR.&lt;/p&gt;
&lt;p&gt;The ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD workaround is used to
handle Cortex-A520 erratum 2966298 and Cortex-A510 erratum 3117295,
which are described in:&lt;/p&gt;
&lt;p&gt;* https://developer.arm.com/documentation/SDEN2444153/0600/?lang=en
* https://developer.arm.com/documentation/SDEN1873361/1600/?lang=en&lt;/p&gt;
&lt;p&gt;In both cases the workaround is described as:&lt;/p&gt;
&lt;p&gt;| If pagetable isolation is disabled, the context switch logic in the
| kernel can be updated to execute the following sequence on affected
| cores before exiting to EL0, and after all explicit memory accesses:
|
| 1. A non-shareable TLBI to any context and/or address, including
|    unused contexts or addresses, such as a `TLBI VALE1 Xzr`.
|
| 2. A DSB NSH to guarantee completion of the TLBI.&lt;/p&gt;
&lt;p&gt;The important part being that the TLBI+DSB must be placed &amp;#34;after all
explicit memory accesses&amp;#34;.&lt;/p&gt;
&lt;p&gt;Unfortunately, as-implemented, the TLBI+DSB is immediately followed by
an LDR, as we have:&lt;/p&gt;
&lt;p&gt;| alternative_if ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD
| 	tlbi	vale1, xzr
| 	dsb	nsh
| alternative_else_nop_endif
| alternative_if_not ARM64_UNMAP_KERNEL_AT_EL0
| 	ldr	lr, [sp, #S_LR]
| 	add	sp, sp, #PT_REGS_SIZE		// restore sp
| 	eret
| al…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-26670</guid>
    </item>
  </channel>
</rss>
