{"id":"CVE-2026-64960","state":"PUBLISHED","title":"Remote Code Execution via Unrestricted File Upload in ATutor","description":"ATutor Gameme module allows users to upload files of any type and extension without restriction. Due to improper handling of file uploads, files are stored in a web-accessible location before their content is validated. An authenticated attacker who knows a valid course_id can upload a server-executable malicious script. The uploaded file can then be requested over HTTP, resulting in remote code execution as the web server process user. In most cases, course_id=0 can be used, as it commonly represents the global context.\n\n\n\n\nProduct is no longer actively supported and the vulnerabilities have not been fixed. Only version 2.2.4 was tested and confirmed as vulnerable, other versions were not tested but might also be vulnerable.","publishedAt":"2026-08-20T13:57:33.769Z","updatedAt":"2026-08-20T15:26:26.276Z","severity":{"score":8.7,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L","source":"CERT-PL"},"assigner":"CERT-PL","products":["ATutor ATutor"],"affected":[{"vendor":"ATutor","product":"ATutor","defaultStatus":"unknown","versions":[{"version":"2.2.4","status":"affected","versionType":"semver"}],"repo":"https://github.com/atutor/ATutor","modules":["Gameme"]}],"references":["https://cert.pl/en/posts/2026/08/CVE-2026-64960","https://atutor.github.io/"],"weaknesses":["CWE-434"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64960.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64960","state":"PUBLISHED","datePublished":"2026-08-20T13:57:33.769Z","dateUpdated":"2026-08-20T15:26:26.276Z","assignerShortName":"CERT-PL","assignerOrgId":"4bb8329e-dd38-46c1-aafb-9bf32bcb93c6","dateReserved":"2026-07-21T09:36:01.217Z"},"containers":{"cna":{"title":"Remote Code Execution via Unrestricted File Upload in ATutor","descriptions":[{"lang":"en","value":"ATutor Gameme module allows users to upload files of any type and extension without restriction. Due to improper handling of file uploads, files are stored in a web-accessible location before their content is validated. An authenticated attacker who knows a valid course_id can upload a server-executable malicious script. The uploaded file can then be requested over HTTP, resulting in remote code execution as the web server process user. In most cases, course_id=0 can be used, as it commonly represents the global context.\n\n\n\n\nProduct is no longer actively supported and the vulnerabilities have not been fixed. Only version 2.2.4 was tested and confirmed as vulnerable, other versions were not tested but might also be vulnerable."}],"affected":[{"vendor":"ATutor","product":"ATutor","defaultStatus":"unknown","versions":[{"version":"2.2.4","status":"affected","versionType":"semver"}],"repo":"https://github.com/atutor/ATutor","modules":["Gameme"]}],"references":[{"url":"https://cert.pl/en/posts/2026/08/CVE-2026-64960","tags":["third-party-advisory"]},{"url":"https://atutor.github.io/","tags":["product"]}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","subConfidentialityImpact":"LOW","vulnIntegrityImpact":"HIGH","subIntegrityImpact":"LOW","vulnAvailabilityImpact":"HIGH","subAvailabilityImpact":"LOW","exploitMaturity":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED","version":"4.0","baseSeverity":"HIGH","baseScore":8.7,"vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-434","lang":"en","description":"CWE-434 Unrestricted upload of file with dangerous type","type":"CWE"}]}],"providerMetadata":{"shortName":"CERT-PL","orgId":"4bb8329e-dd38-46c1-aafb-9bf32bcb93c6","dateUpdated":"2026-08-20T13:57:33.769Z"},"tags":["x_open-source","unsupported-when-assigned"],"credits":[{"lang":"en","value":"Michał Majchrowicz (AFINE Team)","type":"finder"},{"lang":"en","value":"Marcin Wyczechowski (AFINE Team)","type":"finder"}],"source":{"discovery":"EXTERNAL"},"x_generator":{"engine":"Vulnogram 1.0.3"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-64960","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-08-20T14:57:46.779483Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-20T15:26:26.276Z"}}]}}}