CVE-2024-4447 (GCVE-0-2024-4447)

Vulnerability from cvelistv5 – Published: 2024-07-26 02:02 – Updated: 2026-02-24 08:47
VLAI?
Summary
In the System → Maintenance tool, the Logged Users tab surfaces sessionId data for all users via the Direct Web Remoting API (UserSessionAjax.getSessionList.dwr) calls. While this is information that would and should be available to admins who possess "Sign In As" powers, admins who otherwise lack this privilege would still be able to utilize the session IDs to imitate other users. While this is a very small attack vector that requires very high permissions to execute, its danger lies principally in obfuscating attribution; all Sign In As operations are attributed appropriately in the log files, and a malicious administrator could use this information to render their dealings untraceable — including those admins who have not been granted this ability — such as by using a session ID to generate an API token. Fixed in: 24.07.12 / 23.01.20 LTS / 23.10.24v13 LTS / 24.04.24v5 LTS This was the original found by researcher Zakaria Agharghar. 2. Later, on October 20, 2025, another researcher (Chris O’Neill) found additional affected DWR Endpoints that are vulnerable to Information Disclosure, namely and in addition to the original found of "UserSessionAjax.getSessionList.dwr - Session ID exposure": * UserAjax.getUsersList.dwr - Enumerate all users with IDs, names, emails * RoleAjax.getUserRole.dwr - Get user role information * RoleAjax.getRole.dwr - Get role details * RoleAjax.getRolePermissions.dwr - View role permissions * RoleAjax.isPermissionableInheriting.dwr - Check permission inheritance * RoleAjax.getCurrentCascadePermissionsJobs.dwr - View permission cascade jobs * ThreadMonitorTool.getThreads.dwr - Monitor system threads; and, * CRITICAL - Privilege Escalation: RoleAjax.saveRolePermission.dwr - Modify role permissions Overall CVSS for the above findings: * CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L * Score: 9.1 (Critical)
CWE
  • CWE-863 - Incorrect Authorization
Assigner
Impacted products
Vendor Product Version
dotCMS dotCMS core Affected: 4.2.1 , < 23.01.20 (git)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-4447",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-07-26T15:21:48.573627Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-07-26T15:22:09.063Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-01T20:40:47.160Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://www.dotcms.com/security/SI-72"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "dotCMS core",
          "vendor": "dotCMS",
          "versions": [
            {
              "lessThan": "23.01.20",
              "status": "affected",
              "version": "4.2.1",
              "versionType": "git"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eIn the \u003cstrong\u003eSystem \u2192 Maintenance\u003c/strong\u003e tool, the Logged Users tab surfaces sessionId data for all users via the Direct Web Remoting API (\u003ccode\u003eUserSessionAjax.getSessionList.dwr\u003c/code\u003e) calls. While this is information that would and should be available to admins who possess \"Sign In As\" powers, admins who otherwise lack this privilege would still be able to utilize the session IDs to imitate other users.\u003c/p\u003e\n\u003cp\u003eWhile this is a very small attack vector that requires very high permissions to execute, its danger lies principally in obfuscating attribution; all Sign In As operations are attributed appropriately in the log files, and a malicious administrator could use this information to render their dealings untraceable \u2014 including those admins who have not been granted this ability \u2014 such as by using a session ID to generate an API token.\u003c/p\u003eFixed in:\u0026nbsp;24.07.12 / 23.01.20 LTS / 23.10.24v13 LTS / 24.04.24v5 LTS\u003cbr\u003e\u003cp\u003e\u003cbr\u003eThis was the original found by researcher Zakaria Agharghar.\u003cbr\u003e\u003cbr\u003e\u003c/p\u003e\n\u003cp\u003e2. Later, on October 20, 2025, another researcher (Chris O\u2019Neill) found additional affected DWR Endpoints that are vulnerable to Information Disclosure, namely and in addition to the original found of \"UserSessionAjax.getSessionList.dwr - Session ID exposure\":\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eUserAjax.getUsersList.dwr - Enumerate all users with IDs, names, emails\u003c/li\u003e\n\u003cli\u003eRoleAjax.getUserRole.dwr - Get user role information\u003c/li\u003e\n\u003cli\u003eRoleAjax.getRole.dwr - Get role details\u003c/li\u003e\n\u003cli\u003eRoleAjax.getRolePermissions.dwr - View role permissions\u003c/li\u003e\n\u003cli\u003eRoleAjax.isPermissionableInheriting.dwr - Check permission inheritance\u003c/li\u003e\n\u003cli\u003eRoleAjax.getCurrentCascadePermissionsJobs.dwr - View permission cascade jobs\u003c/li\u003e\n\u003cli\u003eThreadMonitorTool.getThreads.dwr - Monitor system threads; and,\u003c/li\u003e\n\u003cli\u003eCRITICAL - Privilege Escalation: RoleAjax.saveRolePermission.dwr - Modify role permissions\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eOverall CVSS for the above findings:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca target=\"_blank\" rel=\"nofollow\" href=\"https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L\"\u003eCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eScore: 9.1 (Critical)\u003c/li\u003e\n\u003c/ul\u003e\u003cbr\u003e"
            }
          ],
          "value": "In the System \u2192 Maintenance tool, the Logged Users tab surfaces sessionId data for all users via the Direct Web Remoting API (UserSessionAjax.getSessionList.dwr) calls. While this is information that would and should be available to admins who possess \"Sign In As\" powers, admins who otherwise lack this privilege would still be able to utilize the session IDs to imitate other users.\n\n\nWhile this is a very small attack vector that requires very high permissions to execute, its danger lies principally in obfuscating attribution; all Sign In As operations are attributed appropriately in the log files, and a malicious administrator could use this information to render their dealings untraceable \u2014 including those admins who have not been granted this ability \u2014 such as by using a session ID to generate an API token.\n\nFixed in:\u00a024.07.12 / 23.01.20 LTS / 23.10.24v13 LTS / 24.04.24v5 LTS\n\nThis was the original found by researcher Zakaria Agharghar.\n\n\n\n\n2. Later, on October 20, 2025, another researcher (Chris O\u2019Neill) found additional affected DWR Endpoints that are vulnerable to Information Disclosure, namely and in addition to the original found of \"UserSessionAjax.getSessionList.dwr - Session ID exposure\":\n\n\n\n  *  UserAjax.getUsersList.dwr - Enumerate all users with IDs, names, emails\n\n  *  RoleAjax.getUserRole.dwr - Get user role information\n\n  *  RoleAjax.getRole.dwr - Get role details\n\n  *  RoleAjax.getRolePermissions.dwr - View role permissions\n\n  *  RoleAjax.isPermissionableInheriting.dwr - Check permission inheritance\n\n  *  RoleAjax.getCurrentCascadePermissionsJobs.dwr - View permission cascade jobs\n\n  *  ThreadMonitorTool.getThreads.dwr - Monitor system threads; and,\n\n  *  CRITICAL - Privilege Escalation: RoleAjax.saveRolePermission.dwr - Modify role permissions\n\n\nOverall CVSS for the above findings:\n\n\n\n  *   CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L \n\n  *  Score: 9.1 (Critical)"
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-131",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-131 Resource Leak Exposure"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "LOW",
            "baseScore": 9.9,
            "baseSeverity": "CRITICAL",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "LOW",
            "scope": "CHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-02-24T08:47:24.879Z",
        "orgId": "5b9d93f2-25c7-46b4-ab60-d201718c9dd8",
        "shortName": "dotCMS"
      },
      "references": [
        {
          "url": "https://www.dotcms.com/security/SI-72"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "x_generator": {
        "engine": "Vulnogram 0.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "5b9d93f2-25c7-46b4-ab60-d201718c9dd8",
    "assignerShortName": "dotCMS",
    "cveId": "CVE-2024-4447",
    "datePublished": "2024-07-26T02:02:32.506Z",
    "dateReserved": "2024-05-02T19:24:56.680Z",
    "dateUpdated": "2026-02-24T08:47:24.879Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://www.dotcms.com/security/SI-72\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-01T20:40:47.160Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-4447\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-07-26T15:21:48.573627Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-07-26T15:22:01.920Z\"}}], \"cna\": {\"source\": {\"discovery\": \"UNKNOWN\"}, \"impacts\": [{\"capecId\": \"CAPEC-131\", \"descriptions\": [{\"lang\": \"en\", \"value\": \"CAPEC-131 Resource Leak Exposure\"}]}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV3_1\": {\"scope\": \"CHANGED\", \"version\": \"3.1\", \"baseScore\": 9.9, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"CRITICAL\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"LOW\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"vendor\": \"dotCMS\", \"product\": \"dotCMS core\", \"versions\": [{\"status\": \"affected\", \"version\": \"4.2.1\", \"lessThan\": \"23.01.20\", \"versionType\": \"git\"}], \"defaultStatus\": \"unaffected\"}], \"references\": [{\"url\": \"https://www.dotcms.com/security/SI-72\"}], \"x_generator\": {\"engine\": \"Vulnogram 0.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the System \\u2192 Maintenance tool, the Logged Users tab surfaces sessionId data for all users via the Direct Web Remoting API (UserSessionAjax.getSessionList.dwr) calls. While this is information that would and should be available to admins who possess \\\"Sign In As\\\" powers, admins who otherwise lack this privilege would still be able to utilize the session IDs to imitate other users.\\n\\n\\nWhile this is a very small attack vector that requires very high permissions to execute, its danger lies principally in obfuscating attribution; all Sign In As operations are attributed appropriately in the log files, and a malicious administrator could use this information to render their dealings untraceable \\u2014 including those admins who have not been granted this ability \\u2014 such as by using a session ID to generate an API token.\\n\\nFixed in:\\u00a024.07.12 / 23.01.20 LTS / 23.10.24v13 LTS / 24.04.24v5 LTS\\n\\nThis was the original found by researcher Zakaria Agharghar.\\n\\n\\n\\n\\n2. Later, on October 20, 2025, another researcher (Chris O\\u2019Neill) found additional affected DWR Endpoints that are vulnerable to Information Disclosure, namely and in addition to the original found of \\\"UserSessionAjax.getSessionList.dwr - Session ID exposure\\\":\\n\\n\\n\\n  *  UserAjax.getUsersList.dwr - Enumerate all users with IDs, names, emails\\n\\n  *  RoleAjax.getUserRole.dwr - Get user role information\\n\\n  *  RoleAjax.getRole.dwr - Get role details\\n\\n  *  RoleAjax.getRolePermissions.dwr - View role permissions\\n\\n  *  RoleAjax.isPermissionableInheriting.dwr - Check permission inheritance\\n\\n  *  RoleAjax.getCurrentCascadePermissionsJobs.dwr - View permission cascade jobs\\n\\n  *  ThreadMonitorTool.getThreads.dwr - Monitor system threads; and,\\n\\n  *  CRITICAL - Privilege Escalation: RoleAjax.saveRolePermission.dwr - Modify role permissions\\n\\n\\nOverall CVSS for the above findings:\\n\\n\\n\\n  *   CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L \\n\\n  *  Score: 9.1 (Critical)\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"\u003cp\u003eIn the \u003cstrong\u003eSystem \\u2192 Maintenance\u003c/strong\u003e tool, the Logged Users tab surfaces sessionId data for all users via the Direct Web Remoting API (\u003ccode\u003eUserSessionAjax.getSessionList.dwr\u003c/code\u003e) calls. While this is information that would and should be available to admins who possess \\\"Sign In As\\\" powers, admins who otherwise lack this privilege would still be able to utilize the session IDs to imitate other users.\u003c/p\u003e\\n\u003cp\u003eWhile this is a very small attack vector that requires very high permissions to execute, its danger lies principally in obfuscating attribution; all Sign In As operations are attributed appropriately in the log files, and a malicious administrator could use this information to render their dealings untraceable \\u2014 including those admins who have not been granted this ability \\u2014 such as by using a session ID to generate an API token.\u003c/p\u003eFixed in:\u0026nbsp;24.07.12 / 23.01.20 LTS / 23.10.24v13 LTS / 24.04.24v5 LTS\u003cbr\u003e\u003cp\u003e\u003cbr\u003eThis was the original found by researcher Zakaria Agharghar.\u003cbr\u003e\u003cbr\u003e\u003c/p\u003e\\n\u003cp\u003e2. Later, on October 20, 2025, another researcher (Chris O\\u2019Neill) found additional affected DWR Endpoints that are vulnerable to Information Disclosure, namely and in addition to the original found of \\\"UserSessionAjax.getSessionList.dwr - Session ID exposure\\\":\u003c/p\u003e\\n\u003col\u003e\\n\u003cli\u003eUserAjax.getUsersList.dwr - Enumerate all users with IDs, names, emails\u003c/li\u003e\\n\u003cli\u003eRoleAjax.getUserRole.dwr - Get user role information\u003c/li\u003e\\n\u003cli\u003eRoleAjax.getRole.dwr - Get role details\u003c/li\u003e\\n\u003cli\u003eRoleAjax.getRolePermissions.dwr - View role permissions\u003c/li\u003e\\n\u003cli\u003eRoleAjax.isPermissionableInheriting.dwr - Check permission inheritance\u003c/li\u003e\\n\u003cli\u003eRoleAjax.getCurrentCascadePermissionsJobs.dwr - View permission cascade jobs\u003c/li\u003e\\n\u003cli\u003eThreadMonitorTool.getThreads.dwr - Monitor system threads; and,\u003c/li\u003e\\n\u003cli\u003eCRITICAL - Privilege Escalation: RoleAjax.saveRolePermission.dwr - Modify role permissions\u003c/li\u003e\\n\u003c/ol\u003e\\n\u003cp\u003eOverall CVSS for the above findings:\u003c/p\u003e\\n\u003cul\u003e\\n\u003cli\u003e\u003ca target=\\\"_blank\\\" rel=\\\"nofollow\\\" href=\\\"https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L\\\"\u003eCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L\u003c/a\u003e\u003c/li\u003e\\n\u003cli\u003eScore: 9.1 (Critical)\u003c/li\u003e\\n\u003c/ul\u003e\u003cbr\u003e\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-863\", \"description\": \"CWE-863 Incorrect Authorization\"}]}], \"providerMetadata\": {\"orgId\": \"5b9d93f2-25c7-46b4-ab60-d201718c9dd8\", \"shortName\": \"dotCMS\", \"dateUpdated\": \"2026-02-24T08:47:24.879Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-4447\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-02-24T08:47:24.879Z\", \"dateReserved\": \"2024-05-02T19:24:56.680Z\", \"assignerOrgId\": \"5b9d93f2-25c7-46b4-ab60-d201718c9dd8\", \"datePublished\": \"2024-07-26T02:02:32.506Z\", \"assignerShortName\": \"dotCMS\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…