{"cve":"CVE-2026-40075","nvd":{"published":"2026-05-05T22:16:00.520","modified":"2026-07-24T21:10:00.143","status":"Analyzed","description":"OpenMRS Core is an open source electronic medical record system platform. In versions 2.7.8 and earlier and versions 2.8.0 through 2.8.5, the `/openmrs/moduleResources/{moduleid}` endpoint is vulnerable to a path traversal attack. The ModuleResourcesServlet constructs a filesystem path from user-controlled input without performing path boundary validation — the getFile() method concatenates the user-supplied path into an absolute filesystem path without calling normalize() or checking that the result stays within the allowed module resources directory. Because this endpoint serves static resources required for rendering the login page, it is not protected by authentication filters, allowing unauthenticated exploitation.\n\nAn attacker can traverse directories and read arbitrary files from the server filesystem, including /etc/passwd and application configuration files containing database credentials. Successful exploitation requires the target deployment to run on Apache Tomcat versions prior to 8.5.31, where the ..; path parameter bypass is not mitigated by the container. Deployments on Tomcat 8.5.31 or later and Tomcat 9.0.10 or later are protected at the container level, though the underlying code defect remains. This issue has been fixed in versions after 2.7.8 (within the 2.7.x branch) and in version 2.8.6 and later.","cvss_v4":{"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","score":8.2},"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","score":7.5},"cwes":["CWE-22"],"references":["https://github.com/openmrs/openmrs-core/security/advisories/GHSA-jjgj-cx3q-pw4w","https://github.com/openmrs/openmrs-core/security/advisories/GHSA-jjgj-cx3q-pw4w"],"products":["openmrs:openmrs"],"source":"nvd","synced_at":"2026-10-19T22:33:55.586217763+00:00"},"epss":{"cve":"CVE-2026-40075","score":0.00558,"percentile":0.4652,"date":"2026-10-31"},"kev":null,"osv":[{"id":"GHSA-jjgj-cx3q-pw4w","url":"https://osv.dev/vulnerability/GHSA-jjgj-cx3q-pw4w","summary":"OpenMRS ModuleResourcesServlet has Path Traversal that Leads to Arbitrary File Read","modified":"2026-05-08T15:51:33.312260Z","packages":[{"ecosystem":"Maven","name":"org.openmrs.web:openmrs-web","purl":"pkg:maven/org.openmrs.web/openmrs-web","ranges":["<=2.7.8"],"fixed":[]},{"ecosystem":"Maven","name":"org.openmrs.web:openmrs-web","purl":"pkg:maven/org.openmrs.web/openmrs-web","ranges":[">=2.8.0 <2.8.6"],"fixed":["2.8.6"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}