Skip to content
Heist/ feed
Back to feed
High

Security advisory

Type: advisorySources: OSVCVE: CVE-2021-41242

OpenOlat is a web-basedlearning management system. A path traversal vulnerability exists in OpenOlat prior to versions 15.5.12 and 16.0.5. By providing a filename that contains a relative path as a parameter in some REST methods, it is possible to create directory structures and write files anywhere on the target system. The attack could be used to write files anywhere in the web root folder or outside, depending on the configuration of the system and the properly configured permission of the application server user. The attack requires an OpenOlat user account, an enabled REST API and the rights on a business object to call the vulnerable REST calls. The problem is fixed in version 15.5.12 and 16.0.5. There is a workaround available. The vulnerability requires the REST module to be enabled. Disabling the REST module or limiting the REST module via some firewall or web-server access rules to be accessed only be trusted systems will mitigate the risk.

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

Source evidence

CVE-2021-41242

core-osv · Original source

Published 10 Dec 2021, 23:15 UTC

OpenOlat is a web-basedlearning management system. A path traversal vulnerability exists in OpenOlat prior to versions 15.5.12 and 16.0.5. By providing a filename that contains a relative path as a parameter in some REST methods, it is possible to create directory structures and write files anywhere on the target system. The attack could be used to write files anywhere in the web root folder or outside, depending on the configuration of the system and the properly configured permission of the application server user. The attack requires an OpenOlat user account, an enabled REST API and the rights on a business object to call the vulnerable REST calls. The problem is fixed in version 15.5.12 and 16.0.5. There is a workaround available. The vulnerability requires the REST module to be enabled. Disabling the REST module or limiting the REST module via some firewall or web-server access rules to be accessed only be trusted systems will mitigate the risk.

osv:CVE-2021-41242
Complete source record
{
  "id": "91e8edbc229bfdd51cd16453c89109b4f9acaaef656ca5cb19798001377c46d1",
  "url": "https://osv.dev/vulnerability/CVE-2021-41242",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2021-41242",
    "summary": "OpenOlat is a web-basedlearning management system. A path traversal vulnerability exists in OpenOlat prior to versions 15.5.12 and 16.0.5. By providing a filename that contains a relative path as a parameter in some REST methods, it is possible to create directory structures and write files anywhere on the target system. The attack could be used to write files anywhere in the web root folder or outside, depending on the configuration of the system and the properly configured permission of the application server user. The attack requires an OpenOlat user account, an enabled REST API and the rights on a business object to call the vulnerable REST calls. The problem is fixed in version 15.5.12 and 16.0.5. There is a workaround available. The vulnerability requires the REST module to be enabled. Disabling the REST module or limiting the REST module via some firewall or web-server access rules to be accessed only be trusted systems will mitigate the risk.",
    "evidence": "osv:CVE-2021-41242",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2021-41242",
      "aliases": [
        "CVE-2021-41242",
        "GHSA-62hv-rfp4-hmrm"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/openolat/openolat",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2c26fc508670671e4780f3da2688164806cf443e"
                },
                {
                  "introduced": "bf187c55eb92ed8c87728a06ba885c874da5a15d"
                },
                {
                  "fixed": "99985c7489f5fa43e1ebfe323ebc751f0247f0d8"
                },
                {
                  "fixed": "336d5ce80681be61a0bbf4f73d2af5d1ff67e93a"
                },
                {
                  "fixed": "c450df7d7ffe6afde39ebca6da9136f1caa16ec4"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:frentix:openolat:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "15.5.12"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:frentix:openolat:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "16.0.0"
                      },
                      {
                        "fixed": "16.0.5"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "336d5ce80681be61a0bbf4f73d2af5d1ff67e93a"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "c450df7d7ffe6afde39ebca6da9136f1caa16ec4"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "OpenOLAT_16.0.4",
            "OpenOLAT_15.5.11",
            "OpenOLAT_15.5.10",
            "OpenOLAT_16.0.3",
            "OpenOLAT_16.0.2",
            "OpenOLAT_15.5.9",
            "OpenOLAT_15.5.8",
            "OpenOLAT_16.0.1",
            "OpenOLAT_15.5.7",
            "OpenOLAT_16.0.0",
            "OpenOLAT_15.5.6",
            "OpenOLAT_15.5.5",
            "OpenOLAT_15.5.4",
            "OpenOLAT_15.5.3",
            "OpenOLAT_15.5.2",
            "OpenOLAT_15.5.1",
            "OpenOLAT_15.5.0",
            "OpenOLAT_15.4.0",
            "OpenOLAT_15.3.0",
            "OpenOLAT_15.2.0",
            "OpenOLAT_15.1.0",
            "OpenOLAT_15.0.0",
            "OpenOLAT_15.pre.9",
            "OpenOLAT_15.pre.7",
            "OpenOLAT_15.pre.6",
            "OpenOLAT_15.pre.4",
            "OpenOLAT_15.pre.3",
            "OpenOLAT_15.pre.2",
            "OpenOLAT_15.pre.1",
            "OpenOLAT_15.pre.0.a",
            "OpenOLAT_14.0.0",
            "OpenOLAT_13.2.0",
            "OpenOLAT_13.0.0",
            "OpenOLAT_13.0.0beta9",
            "OpenOLAT_13.0.0beta8",
            "OpenOLAT_13.0.0beta7",
            "OpenOLAT_13.0.0beta6",
            "OpenOLAT_13.0.0beta5",
            "OpenOLAT_13.0.0beta4",
            "OpenOLAT_13.0.0beta3",
            "OpenOLAT_13.0.0beta1",
            "OpenOLAT_12.3.0",
            "OpenOLAT_12.2.0",
            "OpenOLAT_11.3.0",
            "OpenOLAT_10.0.5",
            "OpenOLAT_10.0.4",
            "OpenOLAT_10.0.3",
            "OpenOLAT_10.0.2",
            "OpenOLAT_10.0.1",
            "OpenOLAT_10.0.0",
            "OpenOLAT_9.2.0",
            "OpenOLAT_9.1.0",
            "OpenOLAT_9.0.0",
            "OpenOLAT_8.1.2",
            "OpenOLAT_8.1.1",
            "OpenOLAT_8.1",
            "OLAT-7.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-41242.json",
            "vanir_signatures": [
              {
                "id": "CVE-2021-41242-02573b92",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "16591160500666123975488325605155070110",
                    "100665183215985695254311426065527524110",
                    "71158026307726924876168560498819938360",
                    "316221648298398342083917309296201702018",
                    "11789282661309195128885001832927000708",
                    "244588074656346721043678584863227648857",
                    "328156663949702423022125207990843022133",
                    "203240347530580055087558401948260276847"
                  ]
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/modules/fo/restapi/ForumWebService.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-073dc9fc",
                "digest": {
                  "length": 553,
                  "function_hash": "208271659638530209688829043824549181138"
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
                  "function": "createChildLeaf"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-0bd798ce",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "320278355283235652398642297825232387488",
                    "236610807588137003066226371698532720530",
                    "34222983940598867566658677244398982106",
                    "57818106509460738385226384730001096972",
                    "327205407065927632012015284829603627825",
                    "21495553221982015264466029811872671189",
                    "245713845584853316847134061285715232568",
                    "273972156022958867124216284584527022088",
                    "225310988203423325594159652405937789657",
                    "266132692990132325851538741194615649564",
                    "163808884341836382908301913022708763423",
                    "158829503291850337522416918799810542304"
                  ]
                },
                "source": "https://github.com/openolat/openolat/commit/336d5ce80681be61a0bbf4f73d2af5d1ff67e93a",
                "target": {
                  "file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-30a4db1a",
                "digest": {
                  "length": 782,
                  "function_hash": "248969689245966184597972483768621512304"
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java",
                  "function": "configure"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-63fcce7e",
                "digest": {
                  "length": 212,
                  "function_hash": "77954591868094361829508448538701202894"
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
                  "function": "createChildContainer"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-7c86aad5",
                "digest": {
                  "length": 408,
                  "function_hash": "327463001640612651513419254341959472523"
                },
                "source": "https://github.com/openolat/openolat/commit/336d5ce80681be61a0bbf4f73d2af5d1ff67e93a",
                "target": {
                  "file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
                  "function": "createChildContainer"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-8230649e",
                "digest": {
                  "length": 956,
                  "function_hash": "133288298552251147923001419335724175014"
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/restapi/support/MultipartReader.java",
                  "function": "servlet31"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-b63f448f",
                "digest": {
                  "length": 1557,
                  "function_hash": "62804653572434751744177832892976374493"
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java",
                  "function": "attachTaskFile"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-c024e398",
                "digest": {
                  "length": 733,
                  "function_hash": "162742834709834075671274912804620410798"
                },
                "source": "https://github.com/openolat/openolat/commit/336d5ce80681be61a0bbf4f73d2af5d1ff67e93a",
                "target": {
                  "file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
                  "function": "createChildLeaf"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-e0572435",
                "digest": {
                  "length": 1295,
                  "function_hash": "85991593109315339487917229920556882267"
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java",
                  "function": "configure"
                },
                "deprecated": false,
                "signature_type": "Function",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-e4493e87",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "264133421874961225112747875464860711553",
                    "269322543030904853935112943709768760444",
                    "333561067874657751624450717061621783107",
                    "302644528610920512017149503708528648906"
                  ]
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/restapi/support/MultipartReader.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-ffa9f42e",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "303058766670438396775907679628930023131",
                    "30737509437614079727121606858734461528",
                    "95800378517820767849615121353582527307",
                    "70889691537032853282929337328971446396",
                    "245713845584853316847134061285715232568",
                    "268980720261238562998708971305430635809",
                    "107610766915088569059712366257705708896",
                    "245180970848087277472011939118805555893",
                    "53304387952289595722762465153500671138",
                    "33941203798336485885284678615612455727",
                    "248795306554591486284289112298744892099",
                    "269057004516163536815178360160375342391",
                    "254815627639795660733347555878747736689",
                    "135523685252031762308651532361194243121",
                    "241395343000584506397773932491057356840",
                    "19948223455247295719916640851110571164",
                    "912048355205961992098000378911698254"
                  ]
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              },
              {
                "id": "CVE-2021-41242-ffc279a3",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "288038531229663637572926378469704382745",
                    "172675394836573427964411533013311004679",
                    "333690839865463089694304297910153902080",
                    "75438676271512263924868544569421332768",
                    "277736929138786242846816931364907809508",
                    "278153067770297542780140204469242655378",
                    "156735229352289512306763985152592863220",
                    "36644639786435257721122148587416325097",
                    "180047166880096356146253825894479452938",
                    "320548479226719302180468673209695753475",
                    "298198222819202193409820202736093671901",
                    "278858283114182573172973723556949203329",
                    "333720826957995505357127336849763237414",
                    "60934873948992922609448099997240853920",
                    "144352258769870960795453448543890798412",
                    "108306801764122273442674360166295196978",
                    "214306697320809722380753336340615822977",
                    "322872277023573329481244167706240405818",
                    "180047166880096356146253825894479452938",
                    "320548479226719302180468673209695753475",
                    "155542458626541859250089756563246559885",
                    "89379045401991261053554852853597175577"
                  ]
                },
                "source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
                "target": {
                  "file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              }
            ],
            "vanir_signatures_modified": "2026-10-20T14:28:23Z"
          }
        }
      ],
      "modified": "2026-10-20T14:28:23.128759047Z",
      "provider": "osv",
      "references": [
        "https://github.com/OpenOLAT/OpenOLAT/security/advisories/GHSA-62hv-rfp4-hmrm",
        "https://jira.openolat.org/browse/OO-5819",
        "https://github.com/OpenOLAT/OpenOLAT/commit/336d5ce80681be61a0bbf4f73d2af5d1ff67e93a",
        "https://github.com/OpenOLAT/OpenOLAT/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4"
      ],
      "provider_metadata": {}
    },
    "related_cves": [
      {
        "value": "CVE-2021-41242",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 389052,
  "published_at": "2021-12-10T23:15:09.527+00:00"
}