Skip to content
Heist/ feed
Back to feed
High

Missing Authorization in eScriptorium

Type: advisorySources: OSV

Missing authorization in the OcrModelRight create and delete views in Scripta eScriptorium through 26.04.1 allows a remote authenticated user to grant themselves access to another user's private OCR model and to revoke any user's OCR model access via a POST request, because the ownership check is placed in get_context_data() and therefore runs only on the GET rendering path

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-18277
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 13:33 UTC · Revision 1

Source evidence

Missing Authorization in eScriptorium

core-osv · Original source

Published 6 Aug 2026, 15:11 UTC

Missing authorization in the OcrModelRight create and delete views in Scripta eScriptorium through 26.04.1 allows a remote authenticated user to grant themselves access to another user's private OCR model and to revoke any user's OCR model access via a POST request, because the ownership check is placed in get_context_data() and therefore runs only on the GET rendering path

osv:CVE-2026-18277
Complete source record
{
  "id": "2b226d307dccb4c472c73d21e8dd1298746cfb481a747020cb21f0c39a2c904c",
  "url": "https://osv.dev/vulnerability/CVE-2026-18277",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Missing Authorization in eScriptorium",
    "summary": "Missing authorization in the OcrModelRight create and delete views in Scripta eScriptorium through 26.04.1 allows a remote authenticated user to grant themselves access to another user's private OCR model and to revoke any user's OCR model access via a POST request, because the ownership check is placed in get_context_data() and therefore runs only on the GET rendering path",
    "evidence": "osv:CVE-2026-18277",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-18277",
      "aliases": [
        "CVE-2026-18277"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://gitlab.com/scripta/escriptorium",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "d97631d5c0279df78a26bd0611c2cf268c73202e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:escriptorium:escriptorium:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "26.04.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.0.0",
            "26.04b1",
            "base-kraken7",
            "dev-pre-release",
            "base-dj-solo",
            "dev-new-ui-alpha-rev8",
            "dev-0.14.2",
            "dev-new-ui-alpha-rev7",
            "dev-new-ui-alpha-rev6",
            "dev-new-ui-alpha-rev5",
            "dev-beta-0.14.1",
            "dev-new-ui-alpha-rev4",
            "dev-new-ui-alpha-rev3",
            "dev-beta-0.14",
            "base-django42",
            "dev-new-ui-alpha-rev2",
            "dev-new-ui-alpha-rev1",
            "dev-new-ui-alpha",
            "dev-staging",
            "base-0.13.8-django-4.1",
            "dev-revert-pyes",
            "base-0.13.7-revert-pyes",
            "base-kraken4312",
            "base-kraken439b",
            "base-kraken439",
            "base-kraken435",
            "dev0.13.3d",
            "dev0.13.3c",
            "dev0.13.3b",
            "dev0.13.3",
            "dev0.13.1c",
            "base-kraken42",
            "v0.12.2b",
            "v0.12.2",
            "base-0.12.2b",
            "base-0.12.2",
            "v0.12.1-dev",
            "base-0.10.5",
            "base-0.10.1b",
            "v0.5.1c",
            "v0.5.1b",
            "v0.5.1",
            "v0.5",
            "v0.4.1",
            "v0.4",
            "v0.3",
            "v0.2"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-18277.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:29.144670652Z",
      "provider": "osv",
      "references": [
        "https://gitlab.com/scripta/escriptorium/-/work_items/1227",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/18xxx/CVE-2026-18277.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-18277"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-862"
        ],
        "cna_assigner": "GitLab",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "last_affected": "26.4.1"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StandardRange"
              }
            ]
          },
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "last_affected": "26.04.1"
                  }
                ],
                "source": "DESCRIPTION"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/18xxx/CVE-2026-18277.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-18277",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 495945,
  "published_at": "2026-08-06T15:11:23.252+00:00"
}