<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 15 Oct 2026 03:29:58 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-54641</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-54641</link>
      <description>&lt;p&gt;OpenRemote is an open-source internet-of-things platform. Prior to 1.24.2, the get, getUserClientRoles, and getUserRealmRoles methods in manager/src/main/java/org/openremote/manager/security/UserResourceImpl.java authorize callers with the read:admin role without confirming that the target UUID belongs to the requested and authenticated realm. A realm administrator can supply a user identifier from another tenant or the master realm and retrieve that user&amp;#39;s profile, client roles, and realm roles, breaking tenant isolation and exposing privileged account information. This issue is fixed in version 1.24.2.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;OpenRemote is an open-source internet-of-things platform. Prior to 1.24.2, the get, getUserClientRoles, and getUserRealmRoles methods in manager/src/main/java/org/openremote/manager/security/UserResourceImpl.java authorize callers with the read:admin role without confirming that the target UUID belongs to the requested and authenticated realm. A realm administrator can supply a user identifier from another tenant or the master realm and retrieve that user&amp;#39;s profile, client roles, and realm roles, breaking tenant isolation and exposing privileged account information. This issue is fixed in version 1.24.2.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-54641</guid>
    </item>
    <item>
      <title>GHSA-xqr9-4wvv-gvch — OpenRemote has Cross-Realm User Information Disclosure in UserResourceImpl</title>
      <link>https://db.gcve.eu/vuln/ghsa-xqr9-4wvv-gvch</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: io.openremote:openremote-manager&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A realm admin of tenant B can read the profile, client roles, and realm roles of any user in any other realm (including the master realm) by supplying the target user&amp;#39;s UUID in the REST API path. Three read endpoints in UserResourceImpl check whether the caller holds the read:admin role but omit a check that the target user belongs to the caller&amp;#39;s own realm. The vulnerability enables cross-tenant user enumeration and privilege-level reconnaissance. On a multi-tenant deployment the master realm administrator account is reachable from any tenant realm admin.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The affected file is manager/src/main/java/org/openremote/manager/security/UserResourceImpl.java.&lt;/p&gt;
&lt;p&gt;Three methods are missing an authenticated-realm guard:&lt;/p&gt;
&lt;p&gt;get (line 102):&lt;/p&gt;
&lt;p&gt;public User get(RequestParams requestParams, String realm, String userId) {
        boolean hasAdminReadRole = hasResourceRole(ClientRole.READ_ADMIN.getValue(), Constants.KEYCLOAK_CLIENT_ID);
        if (!hasAdminReadRole &amp;amp;&amp;amp; !Objects.equals(getUserId(), userId)) {
            throw new ForbiddenException(&amp;#34;...&amp;#34;);
        }
        try {
            return identityService.getIdentityProvider().getUser(userId);
        } ...
    }&lt;/p&gt;
&lt;p&gt;The realm path parameter is accepted but never used. getUser(userId) delegates to getUserByIdFromDb(persistenceService, userId) which queries the database by UUID with no realm filter.&lt;/p&gt;
&lt;p&gt;getUserClientRoles (line 294):&lt;/p&gt;
&lt;p&gt;public String[] getUserClientRoles(RequestParams requestParams, String realm,…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: io.openremote:openremote-manager&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;A realm admin of tenant B can read the profile, client roles, and realm roles of any user in any other realm (including the master realm) by supplying the target user&amp;#39;s UUID in the REST API path. Three read endpoints in UserResourceImpl check whether the caller holds the read:admin role but omit a check that the target user belongs to the caller&amp;#39;s own realm. The vulnerability enables cross-tenant user enumeration and privilege-level reconnaissance. On a multi-tenant deployment the master realm administrator account is reachable from any tenant realm admin.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The affected file is manager/src/main/java/org/openremote/manager/security/UserResourceImpl.java.&lt;/p&gt;
&lt;p&gt;Three methods are missing an authenticated-realm guard:&lt;/p&gt;
&lt;p&gt;get (line 102):&lt;/p&gt;
&lt;p&gt;public User get(RequestParams requestParams, String realm, String userId) {
        boolean hasAdminReadRole = hasResourceRole(ClientRole.READ_ADMIN.getValue(), Constants.KEYCLOAK_CLIENT_ID);
        if (!hasAdminReadRole &amp;amp;&amp;amp; !Objects.equals(getUserId(), userId)) {
            throw new ForbiddenException(&amp;#34;...&amp;#34;);
        }
        try {
            return identityService.getIdentityProvider().getUser(userId);
        } ...
    }&lt;/p&gt;
&lt;p&gt;The realm path parameter is accepted but never used. getUser(userId) delegates to getUserByIdFromDb(persistenceService, userId) which queries the database by UUID with no realm filter.&lt;/p&gt;
&lt;p&gt;getUserClientRoles (line 294):&lt;/p&gt;
&lt;p&gt;public String[] getUserClientRoles(RequestParams requestParams, String realm,…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-xqr9-4wvv-gvch</guid>
    </item>
  </channel>
</rss>
