<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OOB on Arzedlab 🪵</title><link>https://arzedlab.github.io/tags/oob/</link><description>Recent content in OOB on Arzedlab 🪵</description><generator>Hugo</generator><language>en-us</language><copyright>© Ravshan</copyright><lastBuildDate>Fri, 22 Aug 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://arzedlab.github.io/tags/oob/index.xml" rel="self" type="application/rss+xml"/><item><title>Exploring Integer Overflow: libxml2 Integer Overflow, which leads to OOB</title><link>https://arzedlab.github.io/posts/exploring-integer-overflow-libxml2-integer-overflo-2573648c0bf48058ace1d536b4a81251/</link><pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate><guid>https://arzedlab.github.io/posts/exploring-integer-overflow-libxml2-integer-overflo-2573648c0bf48058ace1d536b4a81251/</guid><description>&lt;h1 id="exploring-integer-overflow-libxml2-integer-overflow-oob">Exploring Integer Overflow: libxml2 Integer Overflow OOB&lt;/h1>
&lt;p>In everyday life, numbers feel endless. You can always count one higher, or subtract one more. But computers don’t work like that. Inside your machine, numbers are stored in &lt;strong>fixed-sized containers&lt;/strong> and when you push them past their limits, strange things happen. When a calculation produces a value that’s too large or too small for its container, we get integer overflow or integer underflow.&lt;/p></description></item><item><title>EXIM: CVE-2020-28025: Heap out-of-bounds read in pdkim_finish_bodyhash()</title><link>https://arzedlab.github.io/posts/exim-analysis-4-92-1-r-1fc3648c0bf4804d9828e1aa08614f70/</link><pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate><guid>https://arzedlab.github.io/posts/exim-analysis-4-92-1-r-1fc3648c0bf4804d9828e1aa08614f70/</guid><description>&lt;h1 id="exim-analysis-4921-r">EXIM: Analysis 4.92.1-R&lt;/h1>
&lt;p>This is just as re-analysis to better understand, the reporter and author of there vulnerabileties is company Qualys official link: &lt;a href="https://www.qualys.com/2021/05/04/21nails/21nails.txt">https://www.qualys.com/2021/05/04/21nails/21nails.txt&lt;/a>&lt;/p>
&lt;h2 id="cve-2020-28025-heap-out-of-bounds-read-in-pdkim_finish_bodyhash">CVE-2020-28025: Heap out-of-bounds read in pdkim_finish_bodyhash()&lt;/h2>
&lt;ol>
&lt;li>Callers of &lt;code>pdkim_finish_bodyhash()&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>&lt;code>main()&lt;/code> → &lt;code>receive_msg()&lt;/code> → &lt;code>dkim_exim_verify_finish()&lt;/code>&lt;/p>
&lt;p>&lt;code>dkim_exim_verify_finish()&lt;/code> be called to verify DKIM (DomainKeys Identified Mail)
signature, then calls &lt;code>pdkim_feed_finish()&lt;/code> &lt;strong>, which calls&lt;/strong> &lt;code>pdkim_finish_bodyhash()&lt;/code>&lt;/p>
&lt;ol>
&lt;li>DKIM (DomainKeys Identified Mail) looks like this.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="image.png" alt="image.png">&lt;/p>
&lt;p>Code of the function &lt;code>pdkim_finish_bodyhash()&lt;/code>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> /* VERIFICATION --------------------------------------------------------- */
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> /* Be careful that the header sig included a bodyash */
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">if&lt;/span> &lt;span style="color:#ff79c6">(&lt;/span> sig-&amp;gt;bodyhash.data
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;amp;&amp;amp;&lt;/span> memcmp&lt;span style="color:#ff79c6">(&lt;/span>b-&amp;gt;bh.data, sig-&amp;gt;bodyhash.data, b-&amp;gt;bh.len&lt;span style="color:#ff79c6">)&lt;/span> &lt;span style="color:#ff79c6">==&lt;/span> 0&lt;span style="color:#ff79c6">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> DEBUG&lt;span style="color:#ff79c6">(&lt;/span>D_acl&lt;span style="color:#ff79c6">)&lt;/span> debug_printf&lt;span style="color:#ff79c6">(&lt;/span>&lt;span style="color:#f1fa8c">&amp;#34;PDKIM [%s] Body hash compared OK\n&amp;#34;&lt;/span>, sig-&amp;gt;domain&lt;span style="color:#ff79c6">)&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">else&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> DEBUG&lt;span style="color:#ff79c6">(&lt;/span>D_acl&lt;span style="color:#ff79c6">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	debug_printf&lt;span style="color:#ff79c6">(&lt;/span>&lt;span style="color:#f1fa8c">&amp;#34;PDKIM [%s] Body hash signature from headers: &amp;#34;&lt;/span>, sig-&amp;gt;domain&lt;span style="color:#ff79c6">)&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	pdkim_hexprint&lt;span style="color:#ff79c6">(&lt;/span>sig-&amp;gt;bodyhash.data, sig-&amp;gt;bodyhash.len&lt;span style="color:#ff79c6">)&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	debug_printf&lt;span style="color:#ff79c6">(&lt;/span>&lt;span style="color:#f1fa8c">&amp;#34;PDKIM [%s] Body hash did NOT verify\n&amp;#34;&lt;/span>, sig-&amp;gt;domain&lt;span style="color:#ff79c6">)&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>	&lt;span style="color:#ff79c6">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sig-&amp;gt;verify_status &lt;span style="color:#ff79c6">=&lt;/span> PDKIM_VERIFY_FAIL;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sig-&amp;gt;verify_ext_status &lt;span style="color:#ff79c6">=&lt;/span> PDKIM_VERIFY_FAIL_BODY;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Unfortunately, at line 826, &lt;code>sig-&amp;gt;bodyhash.data&lt;/code> is attacker-controlled (through a &amp;ldquo;DKIM-Signature:&amp;rdquo; mail header) and &lt;code>memcmp()&lt;/code> is called without checking first that &lt;code>sig-&amp;gt;bodyhash.len&lt;/code> is equal to &lt;code>b-&amp;gt;bh.len&lt;/code>: &lt;code>memcmp()&lt;/code> can read &lt;code>sig-&amp;gt;bodyhash.data&lt;/code> out-of-bounds. If the &lt;code>acl_smtp_dkim&lt;/code> is set (it is unset by default), an unauthenticated remote attacker may transform this vulnerability into an information disclosure; we have not fully explored this possibility.&lt;/p></description></item><item><title>CVE-2019-5782 Out-Of-Bounds V8</title><link>https://arzedlab.github.io/posts/cve-2019-5782-oob-v8-f710491993d8478483ca99402710ec07/</link><pubDate>Fri, 01 Dec 2023 13:13:13 +0500</pubDate><guid>https://arzedlab.github.io/posts/cve-2019-5782-oob-v8-f710491993d8478483ca99402710ec07/</guid><description>&lt;h1 id="cve-2019-5782--oob-v8">CVE-2019-5782 | OOB V8&lt;/h1>
&lt;h1 id="research-done-by-ravshan-rikhsiev-2023">Research Done By &lt;strong>Ravshan Rikhsiev&lt;/strong> (2023)&lt;/h1>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;strong>Type Of Vulnerability&lt;/strong>&lt;/th>
 &lt;th>&lt;strong>Out-Of-Bounds&lt;/strong>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Security Severity&lt;/strong>&lt;/td>
 &lt;td>&lt;strong>High&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Effected Components&lt;/strong>&lt;/td>
 &lt;td>&lt;strong>Javascript, Turbofan, Compiler&lt;/strong>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Issue Source&lt;/strong>&lt;/td>
 &lt;td>&lt;a href="https://bugs.chromium.org/p/chromium/issues/detail?id=906043">https://bugs.chromium.org/p/chromium/issues/detail?id=906043&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Writeup Source(s)&lt;/strong>&lt;/td>
 &lt;td>None&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Tested Version&lt;/strong>&lt;/td>
 &lt;td>V8 7.3.0&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Vulnerable commit&lt;/strong>&lt;/td>
 &lt;td>18b28402118b7918512c3e5b6bc5c6f348d43564&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h1 id="building">Building&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>mkdir v8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8be9fd;font-style:italic">cd&lt;/span> v8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>fetch v8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8be9fd;font-style:italic">cd&lt;/span> v8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6272a4"># Moving into vulnerable commit&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git checkout 18b28402118b7918512c3e5b6bc5c6f348d43564
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6272a4"># Sync depot tools&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>gclient sync -D
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6272a4"># Installing dependencies &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>build/install-build-deps.sh
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6272a4"># Installing ninja to build&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install -y ninja-build
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#6272a4"># Release and Debug versions of V8&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tools/dev/gm.py x64.release; tools/dev/gm.py x64.debug
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="incorrect-optimization-assumptions-in-v8">&lt;strong>Incorrect optimization assumptions in V8&lt;/strong>&lt;/h1>
&lt;p>&lt;strong>Turbofan&lt;/strong> is an optimizing compiler in the &lt;strong>V8&lt;/strong> JavaScript engine. It translates JavaScript code into highly optimized machine code for better performance. It uses various techniques, such as inlining functions, optimizing data types, and eliminating unnecessary operations, to generate efficient code. This helps improve the execution speed of JavaScript programs running in V8.&lt;/p></description></item></channel></rss>