<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Rajkumar]]></title><description><![CDATA[Articles about Solidity development and security.]]></description><link>https://www.0xrajkumar.com</link><image><url>https://substackcdn.com/image/fetch/$s_!m4Wj!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce9e8a0-3451-4e3f-8acb-935a8fc65cb5_400x400.png</url><title>Rajkumar</title><link>https://www.0xrajkumar.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 18 May 2026 04:57:57 GMT</lastBuildDate><atom:link href="https://www.0xrajkumar.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[0xRajkumar]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[0xrajkumar@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[0xrajkumar@substack.com]]></itunes:email><itunes:name><![CDATA[Rajkumar]]></itunes:name></itunes:owner><itunes:author><![CDATA[Rajkumar]]></itunes:author><googleplay:owner><![CDATA[0xrajkumar@substack.com]]></googleplay:owner><googleplay:email><![CDATA[0xrajkumar@substack.com]]></googleplay:email><googleplay:author><![CDATA[Rajkumar]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Denial-of-Service(DoS) Attacks]]></title><description><![CDATA[DOS class of bugs are underrated, yet they are highly damaging and capable of halting an entire system.]]></description><link>https://www.0xrajkumar.com/p/denial-of-servicedos-attacks</link><guid isPermaLink="false">https://www.0xrajkumar.com/p/denial-of-servicedos-attacks</guid><dc:creator><![CDATA[Rajkumar]]></dc:creator><pubDate>Mon, 03 Jul 2023 17:36:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Denial-of-Service (DoS) attacks in Solidity smart contracts refer to malicious activities aimed at disrupting the normal functioning of a contract, rendering it unresponsive or unusable. These attacks exploit vulnerabilities in the contract's design or implementation to exhaust resources, consume excessive gas, or cause infinite loops, ultimately leading to a denial of service for legitimate users.</p><p>Most of the time, DoS-type attacks don't directly cause the theft of user funds. However, attackers still engage in these attacks to block operations for their own profit and gain a competitive advantage, such as permanently freezing funds.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.0xrajkumar.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Rajkumar&#8217;s Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Seven common bugs for Understanding DoS attacks</h3><ol><li><p>Unbounded gas consumption by returning a lot of data</p></li><li><p>Unbounded loop</p></li><li><p>DoS due to Underflow</p></li><li><p>Assumption: Decimals, symbol, and name are mandatory for ERC20 tokens.</p></li><li><p>Assumption: Every address can accept ether</p></li><li><p>Strict equalities</p></li><li><p>DoS due to blacklisting</p></li></ol><h4>Unbounded gas consumption from returning a lot of data</h4><p>Most of the time developers don&#8217;t consider that low-level calls can also cause DoS if the target address returns a lot of data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GHC2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GHC2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 424w, https://substackcdn.com/image/fetch/$s_!GHC2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 848w, https://substackcdn.com/image/fetch/$s_!GHC2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 1272w, https://substackcdn.com/image/fetch/$s_!GHC2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GHC2!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png" width="1200" height="315.65934065934067" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:383,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:183871,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!GHC2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 424w, https://substackcdn.com/image/fetch/$s_!GHC2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 848w, https://substackcdn.com/image/fetch/$s_!GHC2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 1272w, https://substackcdn.com/image/fetch/$s_!GHC2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F64dc3f7f-4fb0-46ef-9cc6-764718fa3c74_2266x596.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It is from the previous version of <a href="https://github.com/OpenZeppelin/openzeppelin-contracts/tree/628a6e2866620fe638fc3dd77419b5572d3b87d7">Openzeppelin-contracts</a> (It was corrected in v4.7.2), you can find the contract <a href="https://github.com/OpenZeppelin/openzeppelin-contracts/blob/628a6e2866620fe638fc3dd77419b5572d3b87d7/contracts/utils/introspection/ERC165Checker.sol">here</a>.</p><p>On line number 3 we are using <code>staticcall</code> to check whether the interface is supported or not, the problem is that it can return a lot of data which will take a lot of gas because it will be copied into memory, and in this way, it can cause DoS due to exceeding the gas limit.</p><p><strong>MITIGATION</strong>: It can be mitigated by utilizing <strong>inline assembly</strong> to prevent the automatic copying of data in memory. You can refer to the correct version of this function <a href="https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/ERC165Checker.sol#L110-L125">here</a>.</p><h4>Unbounded loop</h4><p>The unbounded loop can easily become a problem because it can cause DoS if the size increases too much because of the gas limit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!chFM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!chFM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 424w, https://substackcdn.com/image/fetch/$s_!chFM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 848w, https://substackcdn.com/image/fetch/$s_!chFM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!chFM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!chFM!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png" width="1200" height="593.4065934065934" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:720,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:306980,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!chFM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 424w, https://substackcdn.com/image/fetch/$s_!chFM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 848w, https://substackcdn.com/image/fetch/$s_!chFM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 1272w, https://substackcdn.com/image/fetch/$s_!chFM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d414c0-279f-48bb-bcdf-4231952fb198_2334x1154.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It is from <a href="https://github.com/code-423n4/2022-02-hubble/tree/main">Hubble exchange contest on code4rena</a>, you can find the code <a href="https://github.com/code-423n4/2022-02-hubble/blob/main/contracts/VUSD.sol#L48-L67">here</a>.</p><p>Attackers exploit the <code>withdraw</code> function by executing it with a zero amount, enabling them to add to the array. However, when the <code>processWithdrawals</code> function is executed, the length of the withdrawals array grows excessively. Consequently, this transaction fails as it exceeds the gas limit.</p><p><strong>MITIGATION</strong>: It can be easily mitigated by disallowing zero <code>amount</code>.</p><h4>DoS due to Underflow</h4><p>Subtraction can cause a Revert if the user tries to subtract a value greater than the value needed. This can seem obvious but in certain conditions, attackers can create these conditions artificially that will cause DoS.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OJXr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OJXr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 424w, https://substackcdn.com/image/fetch/$s_!OJXr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 848w, https://substackcdn.com/image/fetch/$s_!OJXr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 1272w, https://substackcdn.com/image/fetch/$s_!OJXr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OJXr!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png" width="1200" height="857.1428571428571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1040,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:481335,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OJXr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 424w, https://substackcdn.com/image/fetch/$s_!OJXr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 848w, https://substackcdn.com/image/fetch/$s_!OJXr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 1272w, https://substackcdn.com/image/fetch/$s_!OJXr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddf4d5c7-b0a9-4224-bd43-b2f9fa04dd83_2136x1526.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It is from the <a href="https://github.com/code-423n4/2022-01-timeswap/tree/main">Timeswap exchange contest on code4rena</a>, you can find the code <a href="https://github.com/code-423n4/2022-01-timeswap/blob/main/Timeswap/Timeswap-V1-Core/contracts/TimeswapPair.sol#L364">here</a>.</p><p>The user can repay their debt using the <code>pay</code> function. However, the problem arises on line number 21 because an attacker can front-run to repay a single token for the user's debt. As a result, when the user tries to pay off all their debt, their transaction fails. This failure occurs because '(due.debt - 1)' becomes less than 'assetsIn[i]', leading to revert and a potential DoS situation.</p><p><strong>MITIGATION</strong>: It can be mitigated by setting 'assetsIn[i]' to 'due.debt' when 'assetsIn[i]' is higher than 'due.debt'.</p><h4><strong>Assumption: Decimals, symbol, and name are mandatory for ERC20 tokens</strong></h4><p>According to the ERC20 standard, the functions <code>name</code>, <code>symbol</code>, and <code>decimals</code> are optional, and no one should expect these functions to be present in a contract. However, many developers mistakenly think they are mandatory.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2Kg_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Kg_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 424w, https://substackcdn.com/image/fetch/$s_!2Kg_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 848w, https://substackcdn.com/image/fetch/$s_!2Kg_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 1272w, https://substackcdn.com/image/fetch/$s_!2Kg_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Kg_!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png" width="1200" height="1008.7912087912088" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1224,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:599732,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2Kg_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 424w, https://substackcdn.com/image/fetch/$s_!2Kg_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 848w, https://substackcdn.com/image/fetch/$s_!2Kg_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 1272w, https://substackcdn.com/image/fetch/$s_!2Kg_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc96b9059-cb4c-49e1-815c-75e5c0508a82_2170x1824.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It's from my audits repo. You can find it <a href="https://github.com/0xRajkumar/audits/blob/main/Immunefi/README.md#createcanonicalerc20wrapper-reverts-on-right-erc20-implementation">here</a>.</p><p>The <code>createCanonicalERC20Wrapper</code> function of the <code>SuperTokenFactory</code> contract calls <code>name</code>, <code>symbol</code>, and <code>decimals</code> methods to obtain the name, symbol, and decimals of the ERC20 token. If we pass a correct ERC20 token that does not implement these functions, the call will fail, and the user will be unable to create a canonical ERC20 wrapper for that token. This limitation can potentially lead to a denial-of-service (DoS) scenario.</p><p>For example, we have a DAI ERC20 token that is widely used, and it returns a name and symbol as bytes32. Due to this, no one can create a canonical ERC20 wrapper of DAI because our function expects a name and symbol in a string.</p><p><strong>MITIGATION</strong>: It can be mitigated by utilizing <a href="https://github.com/boringcrypto/BoringSolidity/blob/ccb743d4c3363ca37491b87c6c9b24b1f5fa25dc/contracts/libraries/BoringERC20.sol">this</a>.</p><h4>Assumption: Every address can accept ether</h4><p>Sometimes developers assume that every address can accept ether, but an attacker can easily take advantage of this assumption by breaking it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hcCk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hcCk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 424w, https://substackcdn.com/image/fetch/$s_!hcCk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 848w, https://substackcdn.com/image/fetch/$s_!hcCk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 1272w, https://substackcdn.com/image/fetch/$s_!hcCk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hcCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png" width="1456" height="622" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:622,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:160631,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!hcCk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 424w, https://substackcdn.com/image/fetch/$s_!hcCk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 848w, https://substackcdn.com/image/fetch/$s_!hcCk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 1272w, https://substackcdn.com/image/fetch/$s_!hcCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20d8739e-c995-45da-8f28-af550cc3ebcd_1686x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It's from <a href="https://github.com/0xRajkumar/DefiVuln/tree/main">DefiVuln repositry</a>. You can find the code <a href="https://github.com/0xRajkumar/DefiVuln/blob/main/src/DOS/Victim.sol">here</a>.</p><p>On line number 4, the low-level call is used to transfer the balance amount. However, if King is a contract and lacks a payable fallback or receive function, it will revert, causing a DoS situation. Consequently, calling <code>claimThrone</code> will become inaccessible for anyone.</p><p><strong>MITIGATION</strong>: The <strong>Pull-over-Push</strong> pattern can be used to mitigate this risk. You can learn more about it <a href="https://github.com/fravoll/solidity-patterns/blob/master/docs/pull_over_push.md">here</a>.</p><h4>Strict equalities</h4><p>Using strict equalities with tokens or Ether in smart contracts can potentially lead to a DoS attack.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QhFT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QhFT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 424w, https://substackcdn.com/image/fetch/$s_!QhFT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 848w, https://substackcdn.com/image/fetch/$s_!QhFT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 1272w, https://substackcdn.com/image/fetch/$s_!QhFT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QhFT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png" width="728" height="386" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:772,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:286167,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!QhFT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 424w, https://substackcdn.com/image/fetch/$s_!QhFT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 848w, https://substackcdn.com/image/fetch/$s_!QhFT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 1272w, https://substackcdn.com/image/fetch/$s_!QhFT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffba9124b-46f5-4381-90d3-2c74878520ab_1866x990.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It's from the first challenge of DAMN VULNERABLE DEFI. You can find the code <a href="https://github.com/0xRajkumar/damn-vulnerable-defi-solutions/blob/main/contracts/unstoppable/UnstoppableLender.sol#L33">here</a>.</p><p>On line number 8, the flashLoan function uses an assertion with a strict equality condition, stating that the poolBalance should be equal to the balanceBefore. However, an attacker can easily stop or perform a DoS attack by simply sending only 1 wei of damnValuableToken to the contract.</p><p><strong>MITIGATION: </strong>Consider using '&gt;=' or '&lt;=' instead. The above example can be fixed by using 'poolBalance &lt;= balanceBefore' in the assertion.</p><h4>DoS due to blacklisting</h4><p>Many developers are not aware that addresses can be blacklisted by Circle. As blacklisted addresses can no longer receive USDC, and all USDC controlled by those addresses is blocked, preventing on-chain transfers. Due to this, any interaction with these addresses can cause a DoS. You can view the blacklisted addresses <a href="https://dune.com/phabc/usdc-banned-addresses">here</a>.</p><p><strong>MITIGATION</strong>: It can be mitigated by skipping any interaction with the address if it is blacklisted. </p><p>I hope you enjoyed it, Thanks for the read!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.0xrajkumar.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Rajkumar&#8217;s Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Coming soon]]></title><description><![CDATA[This is Rajkumar.]]></description><link>https://www.0xrajkumar.com/p/coming-soon</link><guid isPermaLink="false">https://www.0xrajkumar.com/p/coming-soon</guid><dc:creator><![CDATA[Rajkumar]]></dc:creator><pubDate>Sun, 25 Jun 2023 16:52:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m4Wj!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce9e8a0-3451-4e3f-8acb-935a8fc65cb5_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is Rajkumar.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.0xrajkumar.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.0xrajkumar.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>