Skip to content
Heist/ feed
Back to feed
Critical

Cronicle: Stored XSS in admin Activity Log via account full_name field

Type: advisorySources: OSV

Cronicle is a multi-server task scheduler and runner, with a web based front-end UI. Prior to 0.9.119, the administrator Activity Log in htdocs/js/pages/admin/Activity.js concatenates the attacker-controlled item.user.full_name value into HTML without applying encode_entities and inserts the result through this.div.html. The bundled pixl-server-user input filter can be bypassed by a tag containing a line break because its regular expression does not match newlines. An authenticated non-administrator can update the attacker's own name through /api/user/update using a valid session and current password; when free_accounts is enabled, an anonymous attacker can instead plant the name during self-registration. The stored name executes script in an administrator's session when the Activity Log is opened, enabling administrator takeover and subsequent command execution through privileged Cronicle features. This issue is fixed in version 0.9.119.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-55562
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 01:42 UTC · Revision 1

Source evidence

Cronicle: Stored XSS in admin Activity Log via account full_name field

core-osv · Original source

Published 13 Oct 2026, 16:18 UTC

Cronicle is a multi-server task scheduler and runner, with a web based front-end UI. Prior to 0.9.119, the administrator Activity Log in htdocs/js/pages/admin/Activity.js concatenates the attacker-controlled item.user.full_name value into HTML without applying encode_entities and inserts the result through this.div.html. The bundled pixl-server-user input filter can be bypassed by a tag containing a line break because its regular expression does not match newlines. An authenticated non-administrator can update the attacker's own name through /api/user/update using a valid session and current password; when free_accounts is enabled, an anonymous attacker can instead plant the name during self-registration. The stored name executes script in an administrator's session when the Activity Log is opened, enabling administrator takeover and subsequent command execution through privileged Cronicle features. This issue is fixed in version 0.9.119.

osv:CVE-2026-55562
Complete source record
{
  "id": "f5fccda060c0dc6bae896a6012b39468932e42a173ceb37629c911bcb646c7cd",
  "url": "https://osv.dev/vulnerability/CVE-2026-55562",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Cronicle: Stored XSS in admin Activity Log via account full_name field",
    "summary": "Cronicle is a multi-server task scheduler and runner, with a web based front-end UI. Prior to 0.9.119, the administrator Activity Log in htdocs/js/pages/admin/Activity.js concatenates the attacker-controlled item.user.full_name value into HTML without applying encode_entities and inserts the result through this.div.html. The bundled pixl-server-user input filter can be bypassed by a tag containing a line break because its regular expression does not match newlines. An authenticated non-administrator can update the attacker's own name through /api/user/update using a valid session and current password; when free_accounts is enabled, an anonymous attacker can instead plant the name during self-registration. The stored name executes script in an administrator's session when the Activity Log is opened, enabling administrator takeover and subsequent command execution through privileged Cronicle features. This issue is fixed in version 0.9.119.",
    "evidence": "osv:CVE-2026-55562",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-55562",
      "aliases": [
        "CVE-2026-55562",
        "GHSA-vh39-3pcm-2j63"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/jhuckaby/cronicle",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "e070642fc78749c2641a62ef445f45ea0293d1aa"
                },
                {
                  "fixed": "8b60eb5b041614ab661df50e58e612f5e42a7d30"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.9.119"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "8b60eb5b041614ab661df50e58e612f5e42a7d30"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "e070642fc78749c2641a62ef445f45ea0293d1aa"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v0.9.119"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v0.9.118",
            "v0.9.117",
            "v0.9.116",
            "v0.9.115",
            "v0.9.114",
            "v0.9.113",
            "v0.9.112",
            "v0.9.111",
            "v0.9.110",
            "v0.9.109",
            "v0.9.108",
            "v0.9.107",
            "v0.9.106",
            "v0.9.105",
            "v0.9.104",
            "v0.9.103",
            "v0.9.102",
            "v0.9.101",
            "v0.9.100",
            "v0.9.99",
            "v0.9.98",
            "v0.9.97",
            "v0.9.96",
            "v0.9.95",
            "v0.9.94",
            "v0.9.93",
            "v0.9.92",
            "v0.9.91",
            "v0.9.90",
            "v0.9.89",
            "v0.9.88",
            "v0.9.87",
            "v0.9.86",
            "v0.9.85",
            "v0.9.84",
            "v0.9.83",
            "v0.9.82",
            "v0.9.81",
            "v0.9.80",
            "v0.9.79",
            "v0.9.78",
            "v0.9.77",
            "v0.9.76",
            "v0.9.75",
            "v0.9.74",
            "v0.9.73",
            "v0.9.72",
            "v0.9.71",
            "v0.9.70",
            "v0.9.69",
            "v0.9.68",
            "v0.9.67",
            "v0.9.66",
            "v0.9.65",
            "v0.9.64",
            "v0.9.63",
            "v0.9.62",
            "v0.9.61",
            "v0.9.60",
            "v0.9.59",
            "v0.9.58",
            "v0.9.57",
            "v0.9.56",
            "v0.9.55",
            "v0.9.54",
            "v0.9.53",
            "v0.9.52",
            "v0.9.51",
            "v0.9.50",
            "v0.9.49",
            "v0.9.48",
            "v0.9.47",
            "v0.9.46",
            "v0.9.45",
            "v0.9.44",
            "v0.9.43",
            "v0.9.42",
            "v0.9.41",
            "v0.9.40",
            "v0.9.39",
            "v0.9.38",
            "v0.9.37",
            "v0.9.36",
            "v0.9.35",
            "v0.9.34",
            "v0.9.33",
            "v0.9.32",
            "v0.9.31",
            "v0.9.30",
            "v0.9.29",
            "v0.9.28",
            "v0.9.27",
            "v0.9.26",
            "v0.9.25",
            "v0.9.24",
            "v0.9.23",
            "v0.9.22",
            "v0.9.21",
            "v0.9.20",
            "v0.9.19",
            "v0.9.18",
            "v0.9.17",
            "v0.9.16",
            "v0.9.15",
            "v0.9.14",
            "v0.9.13",
            "v0.9.12",
            "v0.9.11",
            "v0.9.10",
            "v0.9.9",
            "v0.9.8",
            "v0.9.7",
            "v0.9.6",
            "v0.9.5",
            "v0.9.4",
            "v0.9.3",
            "v0.9.2",
            "v0.9.1",
            "v0.9.0",
            "v0.8.62",
            "v0.8.61",
            "v0.8.60",
            "v0.8.59",
            "v0.8.58",
            "v0.8.57",
            "v0.8.56",
            "v0.8.55",
            "v0.8.54",
            "v0.8.53",
            "v0.8.52",
            "v0.8.51",
            "v0.8.50",
            "v0.8.49",
            "v0.8.48",
            "v0.8.47",
            "v0.8.46",
            "v0.8.45",
            "v0.8.44",
            "v0.8.43",
            "v0.8.42",
            "v0.8.41",
            "v0.8.40",
            "v0.8.39",
            "v0.8.38",
            "v0.8.37",
            "v0.8.36",
            "v0.8.35",
            "v0.8.34",
            "v0.8.33",
            "v0.8.32",
            "v0.8.28",
            "v0.8.31",
            "v0.8.30",
            "v0.8.29",
            "v0.8.27",
            "v0.8.26",
            "v0.8.25",
            "v0.8.24",
            "v0.8.23",
            "v0.8.22",
            "v0.8.21",
            "v0.8.20",
            "v0.8.19",
            "v0.8.18",
            "v0.8.17",
            "v0.8.16",
            "v0.8.15",
            "v0.8.14",
            "v0.8.13",
            "v0.8.12",
            "v0.8.11",
            "v0.8.10",
            "v0.8.9",
            "v0.8.8",
            "v0.8.7",
            "v0.8.6",
            "v0.8.5",
            "v0.8.4",
            "v0.8.3",
            "v0.8.2",
            "v0.8.1",
            "v0.8.0",
            "v0.7.8",
            "v0.7.7",
            "v0.7.6",
            "v0.7.5",
            "v0.7.4",
            "v0.7.3",
            "v0.7.2",
            "v0.7.1",
            "v0.7.0",
            "v0.6.16",
            "v0.6.15",
            "v0.6.14",
            "v0.6.13",
            "v0.6.12",
            "v0.6.11",
            "v0.6.10",
            "v0.6.9",
            "v0.6.8",
            "v0.6.7",
            "v0.6.6",
            "v0.6.5",
            "v0.6.4",
            "v0.6.3",
            "v0.6.2",
            "v0.6.1",
            "v0.6.0",
            "v0.5.8",
            "v0.5.7",
            "v0.5.6",
            "v0.5.5",
            "v0.5.4",
            "v0.5.3",
            "v0.5.2",
            "v0.5.1",
            "v0.5.0",
            "v0.2.5",
            "v0.2.4",
            "v0.2.3",
            "v0.2.2",
            "v0.2.1",
            "v0.2.0",
            "v0.1.9",
            "v0.1.8",
            "v0.1.7",
            "v0.1.6",
            "v0.1.5",
            "v0.1.4",
            "v0.1.3",
            "v0.1.2",
            "v0.1.1",
            "v0.1.0",
            "v0.0.9",
            "v0.0.8",
            "v0.0.7",
            "v0.0.6",
            "v0.0.5",
            "v0.0.4",
            "v0.0.3",
            "v0.0.2",
            "v0.0.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55562.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:48.564414570Z",
      "provider": "osv",
      "references": [
        "https://github.com/jhuckaby/Cronicle/releases/tag/v0.9.119",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55562.json",
        "https://github.com/jhuckaby/Cronicle/security/advisories/GHSA-vh39-3pcm-2j63",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-55562",
        "https://github.com/jhuckaby/Cronicle/commit/8b60eb5b041614ab661df50e58e612f5e42a7d30"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55562.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-55562",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517070,
  "published_at": "2026-10-13T16:18:55.78+00:00"
}