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.
{
"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"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-41242.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"16591160500666123975488325605155070110",
"100665183215985695254311426065527524110",
"71158026307726924876168560498819938360",
"316221648298398342083917309296201702018",
"11789282661309195128885001832927000708",
"244588074656346721043678584863227648857",
"328156663949702423022125207990843022133",
"203240347530580055087558401948260276847"
],
"threshold": 0.9
},
"id": "CVE-2021-41242-02573b92",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/modules/fo/restapi/ForumWebService.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "208271659638530209688829043824549181138",
"length": 553
},
"id": "CVE-2021-41242-073dc9fc",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
"function": "createChildLeaf"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"320278355283235652398642297825232387488",
"236610807588137003066226371698532720530",
"34222983940598867566658677244398982106",
"57818106509460738385226384730001096972",
"327205407065927632012015284829603627825",
"21495553221982015264466029811872671189",
"245713845584853316847134061285715232568",
"273972156022958867124216284584527022088",
"225310988203423325594159652405937789657",
"266132692990132325851538741194615649564",
"163808884341836382908301913022708763423",
"158829503291850337522416918799810542304"
],
"threshold": 0.9
},
"id": "CVE-2021-41242-0bd798ce",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/336d5ce80681be61a0bbf4f73d2af5d1ff67e93a",
"target": {
"file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "248969689245966184597972483768621512304",
"length": 782
},
"id": "CVE-2021-41242-30a4db1a",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java",
"function": "configure"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "77954591868094361829508448538701202894",
"length": 212
},
"id": "CVE-2021-41242-63fcce7e",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
"function": "createChildContainer"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "327463001640612651513419254341959472523",
"length": 408
},
"id": "CVE-2021-41242-7c86aad5",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/336d5ce80681be61a0bbf4f73d2af5d1ff67e93a",
"target": {
"file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
"function": "createChildContainer"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "133288298552251147923001419335724175014",
"length": 956
},
"id": "CVE-2021-41242-8230649e",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/restapi/support/MultipartReader.java",
"function": "servlet31"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "62804653572434751744177832892976374493",
"length": 1557
},
"id": "CVE-2021-41242-b63f448f",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java",
"function": "attachTaskFile"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "162742834709834075671274912804620410798",
"length": 733
},
"id": "CVE-2021-41242-c024e398",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/336d5ce80681be61a0bbf4f73d2af5d1ff67e93a",
"target": {
"file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java",
"function": "createChildLeaf"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "85991593109315339487917229920556882267",
"length": 1295
},
"id": "CVE-2021-41242-e0572435",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java",
"function": "configure"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"264133421874961225112747875464860711553",
"269322543030904853935112943709768760444",
"333561067874657751624450717061621783107",
"302644528610920512017149503708528648906"
],
"threshold": 0.9
},
"id": "CVE-2021-41242-e4493e87",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/restapi/support/MultipartReader.java"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"303058766670438396775907679628930023131",
"30737509437614079727121606858734461528",
"95800378517820767849615121353582527307",
"70889691537032853282929337328971446396",
"245713845584853316847134061285715232568",
"268980720261238562998708971305430635809",
"107610766915088569059712366257705708896",
"245180970848087277472011939118805555893",
"53304387952289595722762465153500671138",
"33941203798336485885284678615612455727",
"248795306554591486284289112298744892099",
"269057004516163536815178360160375342391",
"254815627639795660733347555878747736689",
"135523685252031762308651532361194243121",
"241395343000584506397773932491057356840",
"19948223455247295719916640851110571164",
"912048355205961992098000378911698254"
],
"threshold": 0.9
},
"id": "CVE-2021-41242-ffa9f42e",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/core/util/vfs/LocalFolderImpl.java"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"288038531229663637572926378469704382745",
"172675394836573427964411533013311004679",
"333690839865463089694304297910153902080",
"75438676271512263924868544569421332768",
"277736929138786242846816931364907809508",
"278153067770297542780140204469242655378",
"156735229352289512306763985152592863220",
"36644639786435257721122148587416325097",
"180047166880096356146253825894479452938",
"320548479226719302180468673209695753475",
"298198222819202193409820202736093671901",
"278858283114182573172973723556949203329",
"333720826957995505357127336849763237414",
"60934873948992922609448099997240853920",
"144352258769870960795453448543890798412",
"108306801764122273442674360166295196978",
"214306697320809722380753336340615822977",
"322872277023573329481244167706240405818",
"180047166880096356146253825894479452938",
"320548479226719302180468673209695753475",
"155542458626541859250089756563246559885",
"89379045401991261053554852853597175577"
],
"threshold": 0.9
},
"id": "CVE-2021-41242-ffc279a3",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/openolat/openolat/commit/c450df7d7ffe6afde39ebca6da9136f1caa16ec4",
"target": {
"file": "src/main/java/org/olat/restapi/repository/course/CourseElementWebService.java"
}
}
]
"2026-10-20T14:28:23Z"