{"id":1132,"date":"2025-09-09T14:18:47","date_gmt":"2025-09-09T12:18:47","guid":{"rendered":"https:\/\/ackee.xyz\/blog\/?p=1132"},"modified":"2025-09-09T14:27:24","modified_gmt":"2025-09-09T12:27:24","slug":"greenhood-contracts-audit-summary","status":"publish","type":"post","link":"https:\/\/ackee.xyz\/blog\/greenhood-contracts-audit-summary\/","title":{"rendered":"Greenhood Contracts Audit Summary"},"content":{"rendered":"<p class=\"p1\">Greenhood is a protocol that enables regulated security token investments through a membership-based system. Users subscribe to obtain membership, which grants them a soulbound NFT and security token rewards. After becoming members, users can purchase additional security tokens. The system leverages T-REX (Token for Regulated EXchanges) infrastructure for regulatory compliance and implements role-based access controls for secure operation.<\/p>\n<p class=\"p1\">Greenhood engaged Ackee Blockchain Security to perform a security review of Greenhood Contracts with a total time donation of 3 engineering days in a period between August 4 and August 8, 2025.<\/p>\n<p>A second, fix review was performed on the fixes from the previous revision.<\/p>\n<h2><span style=\"font-weight: 400;\">METHODOLOGY<\/span><\/h2>\n<p>We began our review using static analysis tools, including <a href=\"https:\/\/getwake.io\" target=\"_blank\" rel=\"noopener\">Wake<\/a>. We then took a deep dive into the logic of the contracts. For testing and fuzzing, we have involved <a href=\"https:\/\/getwake.io\" target=\"_blank\" rel=\"noopener\">Wake<\/a> testing framework. During the review, we paid special attention to:<\/p>\n<ul>\n<li>ensuring the arithmetic of the system is correct;<\/li>\n<li>detecting possible reentrancies in the code;<\/li>\n<li>ensuring access controls are not too relaxed or too strict; and<\/li>\n<li>looking for common issues such as data validation.<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">SCOPE<\/span><\/h2>\n<p>The audit was performed on commit <code class=\"codehl\">b12392f<\/code> in the contracts repository and the scope was the following:<\/p>\n<ul>\n<li><code class=\"codehl\">src\/GreenhoodMembership.sol<\/code>; and<\/li>\n<li><code class=\"codehl\">src\/GreenhoodInvestor.sol<\/code><\/li>\n<\/ul>\n<p>Revision 1.1 was performed between August 13 and August 14, 2025 on commit <code class=\"codehl\">9fd11a2<\/code> and focused on the fixes from the initial audit.<\/p>\n<h2><span style=\"font-weight: 400;\">FINDINGS<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The classification of a security finding is determined by two ratings: <\/span><b>impact<\/b><span style=\"font-weight: 400;\"> and <\/span><b>likelihood<\/b><span style=\"font-weight: 400;\">. This two-dimensional classification helps clarify the severity of individual issues. Issues which would be rated as <\/span><i><span style=\"font-weight: 400;\">medium<\/span><\/i><span style=\"font-weight: 400;\"> severity, but which would be likely discovered only by the team, are typically decreased by the likelihood factor to the <em>W<\/em><\/span><i><span style=\"font-weight: 400;\">arning<\/span><\/i><span style=\"font-weight: 400;\"> or <em>I<\/em><\/span><i><span style=\"font-weight: 400;\">nformational<\/span><\/i><span style=\"font-weight: 400;\"> severity ratings.<\/span><\/p>\n<p class=\"p1\">Our review resulted in <strong>5 findings<\/strong>, ranging from Warning to High severity. The changes made between revisions 1.0 and 1.1 significantly strengthened the protocol\u2019s trust model by implementing permissionless governance mechanisms and enhanced user protections, resulting in the fixes of all 5 findings. The findings are detailed in the full audit report linked below.<\/p>\n<h3><span style=\"font-weight: 400;\">Critical severity<\/span><\/h3>\n<p>No critical severity issues were found.<\/p>\n<h3><span style=\"font-weight: 400;\">High severity<\/span><\/h3>\n<p>H1: Missing <code class=\"codehl\">whenNotPaused<\/code> modifiers in subscription functions<\/p>\n<h3><span style=\"font-weight: 400;\">Medium severity<\/span><\/h3>\n<p>M1: Parameter front-running possible due to instant changes of rates, fees and rewards<\/p>\n<p>M2: Unlimited <code class=\"codehl\">subscriptionFee<\/code><\/p>\n<h3><span style=\"font-weight: 400;\">Low severity<\/span><\/h3>\n<p>No low severity issues were found.<\/p>\n<h3><span style=\"font-weight: 400;\">Warning severity<\/span><\/h3>\n<p>W1: Missing zero address and zero amount validation checks<\/p>\n<p>W2: One-step ownership transfer<\/p>\n<h3><span style=\"font-weight: 400;\">Informational severity<\/span><\/h3>\n<p>No informational severity issues were found.<\/p>\n<h2><span style=\"font-weight: 400;\">TRUST MODEL<\/span><\/h2>\n<p class=\"p1\">The protocol has strengthened its security model through enhanced controls and user protections:<\/p>\n<p class=\"p1\">Administrative controls:<\/p>\n<ul>\n<li class=\"p1\">the owner role operates through a timelock contract, ensuring transparency for all parameter changes;<\/li>\n<li class=\"p1\">subscription fees cannot exceed a fixed maximum value; and<\/li>\n<li class=\"p1\">parameter changes require a waiting period before taking effect.<\/li>\n<\/ul>\n<p class=\"p1\">User protections:<\/p>\n<ul>\n<li class=\"p1\">subscription functions accept minimum reward parameters to prevent front-running;<\/li>\n<li class=\"p1\">purchase functions include slippage protection through minimum token parameters; and<\/li>\n<li class=\"p1\">all critical parameter changes are visible on-chain before execution.<\/li>\n<\/ul>\n<p class=\"p1\">These improvements maintain protocol flexibility while providing robust safeguards against parameter manipulation.<\/p>\n<h2><span style=\"font-weight: 400;\">CONCLUSION<\/span><\/h2>\n<p class=\"p1\"><a href=\"https:\/\/ackee.xyz\">Ackee Blockchain Security<\/a> recommended Greenhood to:<\/p>\n<ul>\n<li class=\"p1\">implement timelocks or limits for critical parameter changes (exchange rates, subscription fees, reward amounts) to enhance user trust;<\/li>\n<li class=\"p1\">add slippage protection in token purchase functions to prevent frontrunning;<\/li>\n<li class=\"p1\">add zero address and zero amount validation checks in all relevant functions;<\/li>\n<li class=\"p1\">review and enhance the pause mechanism implementation; and<\/li>\n<li class=\"p1\">address all identified issues.<\/li>\n<\/ul>\n<p><b>Ackee Blockchain Security\u2019s full Greenhood Contracts audit report can be found <a href=\"https:\/\/github.com\/Ackee-Blockchain\/public-audit-reports\/blob\/master\/2025\/ackee-blockchain-greenhood-contracts-report.pdf\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/b><b><\/b><\/p>\n<p><span style=\"font-weight: 400;\">We were delighted to audit Greenhood and look forward to working with them again.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Greenhood is a protocol that enables regulated security token investments through a membership-based system. Users subscribe to obtain membership, which grants them a soulbound NFT and security token rewards. After becoming members, users can purchase additional security tokens. The system leverages T-REX (Token for Regulated EXchanges) infrastructure for regulatory compliance and implements role-based access controls for secure operation. Greenhood engaged Ackee Blockchain&hellip;<\/p>\n","protected":false},"author":30,"featured_media":1150,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,10,103],"tags":[89,24,104],"class_list":["post-1132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audits","category-ethereum","category-wake","tag-audit-summary","tag-ethereum","tag-wake"],"aioseo_notices":[],"featured_image_src":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2025\/09\/greenhood-600x400.png","featured_image_src_square":"https:\/\/ackee.xyz\/blog\/wp-content\/uploads\/2025\/09\/greenhood-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\/1132","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=1132"}],"version-history":[{"count":0,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/posts\/1132\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media\/1150"}],"wp:attachment":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media?parent=1132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/categories?post=1132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/tags?post=1132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}