{"id":364,"date":"2022-06-03T12:00:35","date_gmt":"2022-06-03T10:00:35","guid":{"rendered":"https:\/\/ackeeblockchain.com\/blog\/?p=364"},"modified":"2022-09-30T02:03:55","modified_gmt":"2022-09-30T00:03:55","slug":"axelar-crosschain-dex-audit-summary","status":"publish","type":"post","link":"https:\/\/ackee.xyz\/blog\/axelar-crosschain-dex-audit-summary\/","title":{"rendered":"Axelar: Crosschain-Dex Audit Summary"},"content":{"rendered":"<p class=\"p1\"><a href=\"https:\/\/axelar.network\/\">Axelar<\/a> <span style=\"font-weight: 400;\">engaged <a href=\"https:\/\/ackeeblockchain.com\/\">Ackee Blockchain<\/a><\/span>\u00a0<span style=\"font-weight: 400;\">to review and <a href=\"https:\/\/ackeeblockchain.com\/blog\/glossary\/audit\/\">audit<\/a> <\/span> the Crosschain-Dex (private repository) between <strong>May<\/strong><b> 31 and June 3, 2022<\/b>. The entire audit process was conducted with a total time commitment of<b> 4 engineering days<\/b>. We now publish a summary of our results.<!--more--><\/p>\n<h4 class=\"p2\"><b>Methodology<\/b><\/h4>\n<p class=\"p1\">We start by reviewing the specifications, sources, and instructions provided to us, which is essential to ensure we understand the project&#8217;s size, scope, and functionality. This is followed by due diligence using the automated <a href=\"https:\/\/ackeeblockchain.com\/blog\/glossary\/solidity\/\">Solidity<\/a> analysis tools and <a href=\"https:\/\/ackeeblockchain.com\/blog\/glossary\/slither\/\">Slither<\/a>.<\/p>\n<p class=\"p1\">In addition to tool-based analysis, we continue with a detailed manual code review, which is the process of reading the source code line by line to identify potential vulnerabilities or code duplications. When the code review is complete, we run unit tests to ensure the system works as expected and potentially write missing unit or fuzzy tests. We also deploy the <a href=\"https:\/\/ackeeblockchain.com\/blog\/glossary\/smart-contract\/\">contracts<\/a> locally and try to attack and break the system.<\/p>\n<h4 class=\"p2\"><b>Scope\u00a0<\/b><\/h4>\n<div class=\"page\" title=\"Page 7\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>We started with the commit <em>5739e73bcfa469c2822c59b76d73ffb1cbf213c5<\/em> of the Crosschain-Dex repository, but during the audit the code was changed slightly to improve readability, so the final commit was <em>faedfd700ccc0c004cd204059c68d88e109cf4ee<\/em>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4 class=\"p2\"><b>Findings<\/b><\/h4>\n<p class=\"p1\">Here we present our <a href=\"https:\/\/ackeeblockchain.com\/blog\/glossary\/findings\/\"><span class=\"s1\">findings<\/span><\/a>.<\/p>\n<h5 class=\"p4\"><b>Critical severity\u00a0<\/b><\/h5>\n<p class=\"p1\">No critical severity issues were found.<\/p>\n<h5 class=\"p4\"><b>High severity\u00a0<\/b><\/h5>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>H1:<\/strong> Unhandled return value<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h5 class=\"p4\"><b>Medium severity<\/b><\/h5>\n<p class=\"p1\">No medium severity issues were found.<\/p>\n<h5 class=\"p4\"><b>Low severity<\/b><\/h5>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>L1:<\/strong> Payload manipulation<\/p>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>L2:<\/strong> Unchecked transfer<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h5><strong>Warning severity<\/strong><\/h5>\n<div class=\"page\" title=\"Page 18\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>W1:<\/strong> Code duplication<\/p>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>W2:<\/strong> Renounce ownership<\/p>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>W3:<\/strong> Missing unit tests<\/p>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>W4:<\/strong> External mint function<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h5 class=\"p4\"><b>Informational severity\u00a0<\/b><\/h5>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>I1:<\/strong> Commented out code<\/p>\n<div class=\"page\" title=\"Page 14\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>I2:<\/strong> State variable access<\/p>\n<div class=\"page\" title=\"Page 15\">\n<div class=\"section\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p><strong>I3:<\/strong> Missing code documentation<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h4 class=\"p2\"><b>Conclusion<\/b><\/h4>\n<p class=\"p1\">Our review resulted in <b>10 findings<\/b> ranging from <i>Informational<\/i> to <em>High<\/em> severity.<\/p>\n<p class=\"p1\">Generally, we can state that <b>the code quality is<\/b><b> good <\/b>and smart contracts are easy to read. One of the biggest concerns we identified is the <strong>lack of unit tests<\/strong>, which should be essential for every development.<\/p>\n<p>Our conclusions regarding the Crosschain-Dex project:<\/p>\n<ul>\n<li>missing unit tests<\/li>\n<li>potentially dangerous low-level calls and assembly code<\/li>\n<li>code quality is good but duplications should be removed<\/li>\n<li>documentation provided is sufficient for audit<\/li>\n<li>code documentation is missing<\/li>\n<\/ul>\n<p class=\"p1\">After the audit, <b>we recommended<\/b> <strong>Axelar<\/strong> <strong>to<\/strong>:<\/p>\n<ul class=\"ul1\">\n<li class=\"li2\">address all reported issues.<\/li>\n<\/ul>\n<p class=\"p1\"><b>Update:<\/b> On <b>June 7, 2022<\/b>, Axelar provided an updated codebase that addresses the reported issues. All findings were acknowledged and some of them (H1, L2, W1, W2) were fixed.<\/p>\n<div class=\"page\" title=\"Page 7\">\n<div class=\"layoutArea\">\n<div class=\"column\">\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"p1\"><b>Ackee Blockchain&#8217;s full <em>Crosschain-Dex\u00a0<\/em>audit report with a more detailed description of all findings and recommendations can be found <\/b><a href=\"https:\/\/github.com\/axelarnetwork\/audits\/blob\/main\/audits\/2022-06%20Ackee%20blockchain.pdf\"><span class=\"s1\"><b>here<\/b><\/span><\/a><b>.<\/b><\/p>\n<p>&nbsp;<\/p>\n<p>We were delighted to audit<b>\u00a0Axelar<\/b>\u00a0and look forward to working with them again.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Axelar engaged Ackee Blockchain\u00a0to review and audit the Crosschain-Dex (private repository) between May 31 and June 3, 2022. The entire audit process was conducted with a total time commitment of 4 engineering days. We now publish a summary of our results.<\/p>\n","protected":false},"author":11,"featured_media":365,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,10],"tags":[21,72,27,24,33,64,28],"class_list":["post-364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audits","category-ethereum","tag-audit","tag-axelar","tag-blockchain","tag-ethereum","tag-evm","tag-security","tag-smart-contract"],"aioseo_notices":[],"featured_image_src":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2022\/09\/Axelar-Cover-600x400.png","featured_image_src_square":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2022\/09\/Axelar-Cover-600x600.png","author_info":{"display_name":"Andrea Nov\u00e1kov\u00e1","author_link":"https:\/\/ackee.xyz\/blog\/author\/andrea-novakova\/"},"_links":{"self":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/comments?post=364"}],"version-history":[{"count":0,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media\/365"}],"wp:attachment":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media?parent=364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/categories?post=364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/tags?post=364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}