<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-09T08:08:28.521756+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/cve-2025-62493</id>
    <title>CVE-2025-62493 — Heap out-of-bounds read in js_bigint_to_string1 in QuickJS</title>
    <updated>2026-10-09T08:08:28.536728+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> QuickJS</p>
<p>A vulnerability exists in the QuickJS engine's BigInt string conversion logic (js_bigint_to_string1) due to an incorrect calculation of the required number of digits, which in turn leads to reading memory past the allocated BigInt structure.</p>
<p>*  The function determines the number of characters (n_digits) needed for the string representation by calculating:</p>
<p>$$ \\ \text{n\_digits} = (\text{n\_bits} + \text{log2\_radix} - 1) / \text{log2\_radix}$$</p>
<p>$$$$This formula is off-by-one in certain edge cases when calculating the necessary memory limbs. For instance, a 127-bit BigInt using radix 32 (where $\text{log2\_radix}=5$) is calculated to need $\text{n\_digits}=26$.</p>
<p>*  The maximum number of bits actually stored is $\text{n\_bits}=127$, which requires only two 64-bit limbs ($\text{JS\_LIMB\_BITS}=64$).</p>
<p>*  The conversion loop iterates $\text{n\_digits}=26$ times, attempting to read 5 bits in each iteration, totaling $26 \times 5 = 130$ bits.</p>
<p>*  In the final iterations of the loop, the code attempts to read data that spans two limbs:</p>
<p>C</p>
<p>c = (r-&gt;tab[pos] &gt;&gt; shift) | (r-&gt;tab[pos + 1] &lt;&lt; (JS_LIMB_BITS - shift));</p>
<p>*  Since the BigInt was only allocated two limbs, the read operation for r-&gt;tab[pos + 1] becomes an Out-of-Bounds Read when pos points to the last valid limb (e.g., $pos=1$).</p>
<p>This vulnerability allows an attacker to cause the engine to read and process data from the memory immediately following the BigInt buffer. This can lead to Information Discl…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/cve-2025-62493"/>
  </entry>
</feed>
