{"id":1276,"date":"2026-03-03T14:11:02","date_gmt":"2026-03-03T12:11:02","guid":{"rendered":"https:\/\/ackee.xyz\/blog\/?p=1276"},"modified":"2026-03-03T14:11:43","modified_gmt":"2026-03-03T12:11:43","slug":"omnipair-oracle-less-lending-audit-summary","status":"publish","type":"post","link":"https:\/\/ackee.xyz\/blog\/omnipair-oracle-less-lending-audit-summary\/","title":{"rendered":"Omnipair Oracle-Less Lending Audit Summary"},"content":{"rendered":"<p>Omnipair is a decentralized, oracle-less spot and margin trading hyperstructure for permissionless, isolated-collateral markets on Solana. Oracle-less lending lends pool liquidity to borrowers and enables leveraged trading of long-tail assets without whitelists, external oracles, or centralized risk controls.<\/p>\n<p><a href=\"https:\/\/omnipair.fi\/\" target=\"_blank\" rel=\"noopener\">Omnipair<\/a> engaged Ackee Blockchain Security to perform fuzz testing of Omnipair oracle-less lending with a total time donation of 9 engineering days in a period between November 6 and November 21, 2025.<\/p>\n<h2><span style=\"font-weight: 400;\">METHODOLOGY<\/span><\/h2>\n<p>We began our review by familiarizing ourselves with the protocol\u2019s interface and structure. This included understanding the instructions, accounts passed as instruction parameters, and inputs to the instructions.<\/p>\n<p>The next part was dedicated to writing simple fuzz tests to familiarize ourselves with instructions more deeply, to create a simple benchmark for which parts might be more difficult to fuzz, and to understand the whole flow of the scope. This included writing fuzz tests for:<\/p>\n<ul>\n<li>account initialization instructions;<\/li>\n<li>operations on initialized accounts;<\/li>\n<li>protocol state modifications; and<\/li>\n<li>final execution paths.<\/li>\n<\/ul>\n<p>After the initial part, we started to implement complex fuzz tests dedicated to the protocol\u2019s main logic. This included:<\/p>\n<ul>\n<li>creating independent fuzz tests for distinct protocol components;<\/li>\n<li>implementing invariant checks; and<\/li>\n<li>creating instruction flows to test user workflows.<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">SCOPE<\/span><\/h2>\n<p>The fuzz testing was performed on commit <code class=\"codehl\">4ddef2a<\/code> and the scope was the following:<\/p>\n<ul>\n<li>Omnipair oracle-less lending protocol, excluding external dependencies.<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">FINDINGS<\/span><\/h2>\n<p>The classification of a security finding is determined by two sub-ratings: Impact and Likelihood. This two-dimensional rating makes the severity of issues more noise-free, without losing any information. The likelihood factor usually decreases severity of medium issues that would be just acknowledged by the team to infos and warning.<\/p>\n<p>Our review resulted in <strong>5 findings<\/strong> ranging from High to Warning severity:<\/p>\n<h3>Critical severity<\/h3>\n<p>No critical severity issues were found.<\/p>\n<h3>High severity<\/h3>\n<p>H1: Pair initialization accepts unvetted mints allowing malicious authorities and extensions<\/p>\n<h3>Medium severity<\/h3>\n<p>M1: Initialize does not support Token-2022<\/p>\n<h3>Low severity<\/h3>\n<p>No low severity issues were found.<\/p>\n<h3>Warning severity<\/h3>\n<p>W1: View instructions accept unbound accounts for rate model and user position<\/p>\n<p>W2: <code class=\"codehl\">Initialize<\/code> accepts self-pair without distinct token check<\/p>\n<p>W3: <code class=\"codehl\">CommonAdjustPosition<\/code> context accepts non-canonical pair-owned token vaults<\/p>\n<h3>Informational severity<\/h3>\n<p>No informational severity issues were found.<\/p>\n<h2><span style=\"font-weight: 400;\">CONCLUSION<\/span><\/h2>\n<p><b><a href=\"https:\/\/ackee.xyz\">Ackee Blockchain Security<\/a> recommended Omnipair to:<\/b><\/p>\n<ul>\n<li>investigate the findings and their severity;<\/li>\n<li>read and review the complete audit report;<\/li>\n<li>harden account validation and token handling (Token\u20112022, fees, mint\/extension restrictions); and<\/li>\n<li>address all identified issues.<\/li>\n<\/ul>\n<p><b>Ackee Blockchain Security\u2019s full Omnipair oracle-less lending audit report can be found <a href=\"https:\/\/github.com\/omnipair\/omnipair-rs\/blob\/main\/audits\/ackee\/omnipair-final.pdf\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">We were delighted to audit Omnipair and look forward to working with the team again.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Omnipair is a decentralized, oracle-less spot and margin trading hyperstructure for permissionless, isolated-collateral markets on Solana. Oracle-less lending lends pool liquidity to borrowers and enables leveraged trading of long-tail assets without whitelists, external oracles, or centralized risk controls. Omnipair engaged Ackee Blockchain Security to perform fuzz testing of Omnipair oracle-less lending with a total time donation of 9 engineering days in a&hellip;<\/p>\n","protected":false},"author":30,"featured_media":1279,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,5,113],"tags":[89,6,114],"class_list":["post-1276","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audits","category-solana","category-trident","tag-audit-summary","tag-solana","tag-trident"],"aioseo_notices":[],"featured_image_src":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2026\/01\/omnipair-pre-600x400.png","featured_image_src_square":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2026\/01\/omnipair-pre-600x600.png","author_info":{"display_name":"Tom\u00e1\u0161 Kova\u0159\u00edk","author_link":"https:\/\/ackee.xyz\/blog\/author\/tomas-kovarik\/"},"_links":{"self":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/1276","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\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/comments?post=1276"}],"version-history":[{"count":0,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/1276\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media\/1279"}],"wp:attachment":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media?parent=1276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/categories?post=1276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/tags?post=1276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}