Skip to content
Heist/ feed
Back to feed
Medium

Security advisory

Type: advisorySources: OSVCVE: CVE-2021-21318

Opencast is a free, open-source platform to support the management of educational audio and video content. In Opencast before version 9.2 there is a vulnerability in which publishing an episode with strict access rules will overwrite the currently set series access. This allows for an easy denial of access for all users without superuser privileges, effectively hiding the series. Access to series and series metadata on the search service (shown in media module and player) depends on the events published which are part of the series. Publishing an event will automatically publish a series and update access to it. Removing an event or republishing the event should do the same. Affected versions of Opencast may not update the series access or remove a published series if an event is being removed. On removal of an episode, this may lead to an access control list for series metadata with broader access rules than the merged access rules of all remaining events, or the series metadata still being available although all episodes of that series have been removed. This problem is fixed in Opencast 9.2.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2021-21318
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 12:42 UTC · Revision 1

Source evidence

CVE-2021-21318

core-osv · Original source

Published 18 Feb 2021, 18:15 UTC

Opencast is a free, open-source platform to support the management of educational audio and video content. In Opencast before version 9.2 there is a vulnerability in which publishing an episode with strict access rules will overwrite the currently set series access. This allows for an easy denial of access for all users without superuser privileges, effectively hiding the series. Access to series and series metadata on the search service (shown in media module and player) depends on the events published which are part of the series. Publishing an event will automatically publish a series and update access to it. Removing an event or republishing the event should do the same. Affected versions of Opencast may not update the series access or remove a published series if an event is being removed. On removal of an episode, this may lead to an access control list for series metadata with broader access rules than the merged access rules of all remaining events, or the series metadata still being available although all episodes of that series have been removed. This problem is fixed in Opencast 9.2.

osv:CVE-2021-21318
Complete source record
{
  "id": "ce3bf2b3bf961e181257854166dc6c77bbd0d9403161fc67613d149d8baa804f",
  "url": "https://osv.dev/vulnerability/CVE-2021-21318",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2021-21318",
    "summary": "Opencast is a free, open-source platform to support the management of educational audio and video content. In Opencast before version 9.2 there is a vulnerability in which publishing an episode with strict access rules will overwrite the currently set series access. This allows for an easy denial of access for all users without superuser privileges, effectively hiding the series. Access to series and series metadata on the search service (shown in media module and player) depends on the events published which are part of the series. Publishing an event will automatically publish a series and update access to it. Removing an event or republishing the event should do the same. Affected versions of Opencast may not update the series access or remove a published series if an event is being removed. On removal of an episode, this may lead to an access control list for series metadata with broader access rules than the merged access rules of all remaining events, or the series metadata still being available although all episodes of that series have been removed. This problem is fixed in Opencast 9.2.",
    "evidence": "osv:CVE-2021-21318",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2021-21318",
      "aliases": [
        "CVE-2021-21318",
        "GHSA-vpc2-3wcv-qj4w"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/opencast/opencast",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "c0594fa9c78ac5db4319618d16372bece2863018"
                },
                {
                  "fixed": "b18c6a7f81f08ed14884592a6c14c9ab611ad450"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:apereo:opencast:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "9.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "b18c6a7f81f08ed14884592a6c14c9ab611ad450"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-21318.json",
            "vanir_signatures": [
              {
                "id": "CVE-2021-21318-192c16ed",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "76137845150516649859992889846902656653",
                    "118292120149911042616514185896280679235",
                    "55489119598684826988781998746340947601",
                    "189351237019655015304841746411980394607"
                  ]
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/persistence/SearchEntity.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-22b4b726",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "333261066394696225435583557883234835502",
                    "91772186794616247752685588536415773354",
                    "225704499431003772299979625712915491139",
                    "247205590334595718431634377110920961371",
                    "161349336744601109198625102307514852890",
                    "214245674541579553529270096460416055153",
                    "100306878738797850923618894690394245705",
                    "81559783903509949447892206883948931304",
                    "60129743888114475301579821391839611725",
                    "339584246243340884218172581280281521499",
                    "189361891577282433324269403818333047657",
                    "275683248237637897736255652100826204750",
                    "36024466245543642864905670640953024204",
                    "264960456501691180172020864683686795353",
                    "143315941767577152115014010759997791589",
                    "53511697827456941814217097385562450005",
                    "305847557672616164206058576094811540307",
                    "168559369252157277990285437482507144812",
                    "262008549035706759236837070756762269911",
                    "122912094418479153583636887842478982481",
                    "261571061037967364081467803412289355892",
                    "304016084269710998197758742553427147515",
                    "72212191125877778147911555646605373672",
                    "259166014513242526386133093626636162183"
                  ]
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/solr/SolrIndexManager.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-73324e3d",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "77558499987720354099064204824773444636",
                    "197346509397101106796280352338069949455",
                    "249796067917407028918749413761484615221",
                    "244292501856282621030630747617547640999",
                    "110312755560825109601559100186550229535",
                    "37014551786187557465390461382240195440",
                    "124406369753123047334025335496443879218",
                    "6666022785328713082559267578880014793",
                    "333372468413672958778156186994283093003",
                    "312364939789657397631857003594419496622",
                    "148921170918177759470106834500839540789",
                    "49839475568469647067816211628124171150",
                    "50676861287681461758000554945388901934",
                    "296222263158448431276927822555340091294",
                    "25416589561082858670956080720890612303",
                    "28794265513859073513039311203999360087",
                    "107273902848458488268600574077690878129",
                    "277366689168403571617167623355702069822",
                    "138820993700604374999671802212590381005"
                  ]
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/persistence/SearchServiceDatabaseImpl.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-8a43db2d",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "188861361928485078072017279973864116808",
                    "233044306490804555704799513091716462066",
                    "64521339309357322207988281815980485712",
                    "251455827522662062709123828807137477437",
                    "127119567892244899819083263610994704381",
                    "336066060306067737561502111055881477304",
                    "90696927913829394633708320987647785581",
                    "50458316001734949829184475983594236842",
                    "185510074110399794360596786800317446200",
                    "262528431284922890633504970988084644921",
                    "99477243443598870585043852920608756893",
                    "249699641521991272014486535282274067045",
                    "189453616445917772583774538430969993194",
                    "324586728309600408371677184454737513313",
                    "184416716790273645329629761881644746094",
                    "290705084972464675837985704561361320647",
                    "292723663188293892123689913159003842026",
                    "339791268469058742679745846409543402777",
                    "30386960957129211164274720527187330065",
                    "230952084294371784480235945979952908715",
                    "39525409108665579984852380299366419027",
                    "103789664483071097373700490046095366086",
                    "258599408794798221558619952905980145829",
                    "158179068298044214739553922013030952257",
                    "107959189072677255407989812957075283201",
                    "228655837044985253698741391740004599083",
                    "305213149303380274857686099520015537250",
                    "311762067499711732555346081354217747207",
                    "67858971957184178894209624541758277342",
                    "99629731784312838978773198673409295747",
                    "146738099810251600674915457535869274869",
                    "50226602842683211218110789903023393540",
                    "175691549390298570189295806629408456522",
                    "209617491807794044398914463704967174332",
                    "123373525135534208291131605098300937665"
                  ]
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/SearchServiceImpl.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-91e6a744",
                "digest": {
                  "length": 967,
                  "function_hash": "121084771843308822672252858113770118739"
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/SearchServiceImpl.java",
                  "function": "addSynchronously"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-c4c14023",
                "digest": {
                  "length": 579,
                  "function_hash": "81872039924670805162952371066753208860"
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/persistence/SearchServiceDatabaseImpl.java",
                  "function": "getAccessControlList"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-ce53b1d9",
                "digest": {
                  "length": 1174,
                  "function_hash": "42174835892996409017438574310434120735"
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/SearchServiceImpl.java",
                  "function": "deleteSynchronously"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-d2576ca7",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "236481315898627028537060061945852369739",
                    "326773098765111835368692346892414630834",
                    "278535441331004693510175361137313214576",
                    "37076294234417642985637438092547106853",
                    "98496174589541216524912648917109982727",
                    "167640507255085017882667248176247015564",
                    "281638726546301873605780863058060903415",
                    "333310076812395266847114742944038032073"
                  ]
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/persistence/SearchServiceDatabase.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-21318-ff64ab66",
                "digest": {
                  "length": 702,
                  "function_hash": "218295808374579991985928925778884702469"
                },
                "source": "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450",
                "target": {
                  "file": "modules/search-service-impl/src/main/java/org/opencastproject/search/impl/solr/SolrIndexManager.java",
                  "function": "add"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              }
            ],
            "vanir_signatures_modified": "2026-10-20T14:18:40Z"
          }
        }
      ],
      "modified": "2026-10-20T14:18:40.432046161Z",
      "provider": "osv",
      "references": [
        "https://github.com/opencast/opencast/security/advisories/GHSA-vpc2-3wcv-qj4w",
        "https://github.com/opencast/opencast/commit/b18c6a7f81f08ed14884592a6c14c9ab611ad450"
      ],
      "provider_metadata": {}
    },
    "related_cves": [
      {
        "value": "CVE-2021-21318",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 388800,
  "published_at": "2021-02-18T18:15:11.49+00:00"
}