← Back to CVE Explorer

CVE-2026-118996

Full vulnerability record from the local CVENow database.

Description

CallBackery versions before 0.62.0 for Perl send users their own password hash and the admin-only user note via getUserConfig. getUserConfig() returns the caller's whole cbuser row, including the stored password hash and the note field that the user interface shows only to administrators. getTableData() and getAllFieldValues() in the user management plugins also return the note to users without the admin right. A non-administrator can read the notes administrators keep about them, and an attacker who obtains a session token can get that user's password hash and crack it offline.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
9b29abf9-4ab0-4765-b253-1875cd9b441e
Published
2026-10-30 13:18:32.430000
Last modified
2026-10-30 13:18:32.430000
View original CVE JSON
{
  "id": "CVE-2026-118996",
  "sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
  "published": "2026-10-30T13:18:32.430",
  "lastModified": "2026-10-30T13:18:32.430",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "CallBackery versions before 0.62.0 for Perl send users their own password hash and the admin-only user note via getUserConfig.\n\ngetUserConfig() returns the caller's whole cbuser row, including the stored password hash and the note field that the user interface shows only to administrators. getTableData() and getAllFieldValues() in the user management plugins also return the note to users without the admin right.\n\nA non-administrator can read the notes administrators keep about them, and an attacker who obtains a session token can get that user's password hash and crack it offline."
    }
  ],
  "affected": [
    {
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "affectedData": [
        {
          "defaultStatus": "unaffected",
          "collectionURL": "https://cpan.org/modules",
          "packageName": "CallBackery",
          "modules": [
            "CallBackery"
          ],
          "programFiles": [
            "lib/CallBackery/Controller/RpcService.pm",
            "lib/CallBackery/GuiPlugin/Users.pm",
            "lib/CallBackery/GuiPlugin/UserForm.pm"
          ],
          "programRoutines": [
            {
              "name": "CallBackery::Controller::RpcService::getUserConfig"
            },
            {
              "name": "CallBackery::GuiPlugin::Users::getTableData"
            },
            {
              "name": "CallBackery::GuiPlugin::UserForm::getAllFieldValues"
            }
          ],
          "repo": "https://github.com/oetiker/callbackery",
          "packageURL": "pkg:cpan/CallBackery",
          "versions": [
            {
              "version": "0",
              "lessThan": "0.62.0",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "weaknesses": [
    {
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-212"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://metacpan.org/release/OETIKER/CallBackery-0.62.0/changes",
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
    }
  ]
}