{"id":"CVE-2022-23457","aliases":["DEBIAN-CVE-2022-23457","DLA-4246-1","EUVD-2022-1678","GHSA-8m5h-hrqm-pxm2","UBUNTU-CVE-2022-23457","USN-8181-1"],"status":"published","title":"Path Traversal in ESAPI","description":"ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library. Prior to version 2.3.0.0, the default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path. This vulnerability is patched in release 2.3.0.0 of ESAPI. As a workaround, it is possible to write one's own implementation of the Validator interface. However, maintainers do not recommend this.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.02849,"percentile":0.86824,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-22"],"published":"2022-04-25T00:00:00Z","modified":"2026-11-03T08:00:39Z","exploits":[{"source":"pocgithub","id":"shoucheng3/ESAPI__esapi-java-legacy_CVE-2022-23457_2-2-3-1","title":"shoucheng3/ESAPI__esapi-java-legacy_CVE-2022-23457_2-2-3-1","date":"2025-08-16","url":"https://github.com/shoucheng3/ESAPI__esapi-java-legacy_CVE-2022-23457_2-2-3-1"}],"fixes":[{"ecosystem":"Maven","package":"org.owasp.esapi:esapi","fixed_in":["2.3.0.0"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"libowasp-esapi-java","fixed_in":["2.4.0.0-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"libowasp-esapi-java","fixed_in":["2.4.0.0-1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:16.04:LTS","package":"libowasp-esapi-java","fixed_in":["2.1.0-2ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:18.04:LTS","package":"libowasp-esapi-java","fixed_in":["2.1.0-3ubuntu0.18.04.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:20.04:LTS","package":"libowasp-esapi-java","fixed_in":["2.1.0-3ubuntu0.20.04.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:22.04:LTS","package":"libowasp-esapi-java","fixed_in":["2.2.3.1-1ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:24.04:LTS","package":"libowasp-esapi-java","fixed_in":["2.4.0.0-2ubuntu0.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"org.owasp.esapi:esapi","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.2.3.1"},{"fixed":"2.3.0.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0.0-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0.0-1"}]}]},{"source":"osv","ecosystem":"Debian:11","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0.0-0+deb11u1"}]}],"versions":["2.1.0-3.1","2.2.3.1-1","2.2.3.1-1~bpo11+1"],"bundled":3},{"source":"osv","ecosystem":"Maven","package":"org.owasp.esapi:esapi","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.3.0.0"}]}],"versions":["2.0.1","2.0GA","2.0_rc10","2.0_rc11","2.0_rc9","2.1.0","2.1.0.1","2.2.0.0","2.2.0.0-RC2","2.2.0.0-RC3","2.2.1.0","2.2.1.0-RC1","2.2.1.1","2.2.2.0","2.2.3.0","2.2.3.1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-2ubuntu0.1~esm1"}]}],"versions":["2.1.0-2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-3ubuntu0.18.04.1~esm1"}]}],"versions":["2.1.0-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-3ubuntu0.20.04.1~esm1"}]}],"versions":["2.1.0-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.3.1-1ubuntu0.1~esm1"}]}],"versions":["2.1.0-3.1","2.2.3.1-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-2ubuntu0.1~esm1"}]}],"versions":["2.1.0-2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-3ubuntu0.18.04.1~esm1"}]}],"versions":["2.1.0-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.1.0-3ubuntu0.20.04.1~esm1"}]}],"versions":["2.1.0-3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2.3.1-1ubuntu0.1~esm1"}]}],"versions":["2.1.0-3.1","2.2.3.1-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"libowasp-esapi-java","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.4.0.0-2ubuntu0.1"}]}],"versions":["2.4.0.0-2"]}],"products":[{"vendor":"netapp","product":"active_iq_unified_manager"},{"vendor":"netapp","product":"oncommand_workflow_automation"},{"vendor":"oracle","product":"weblogic_server"},{"vendor":"owasp","product":"enterprise_security_api"},{"vendor":"owasp esapi","product":"org.owasp.esapi:esapi"}],"references":[{"url":"https://securitylab.github.com/advisories/GHSL-2022-008_The_OWASP_Enterprise_Security_API/","tags":["x_transferred","Exploit","Third Party Advisory","advisory","report"]},{"url":"https://github.com/ESAPI/esapi-java-legacy/security/advisories/GHSA-8m5h-hrqm-pxm2","tags":["x_transferred","Patch","Third Party Advisory","advisory","web","report"]},{"url":"https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/esapi4java-core-2.3.0.0-release-notes.txt","tags":["x_transferred","Release Notes","web","report"]},{"url":"https://www.oracle.com/security-alerts/cpujul2022.html","tags":["x_transferred","Patch","Third Party Advisory","web"]},{"url":"https://security.netapp.com/advisory/ntap-20230127-0014/","tags":["x_transferred","Third Party Advisory","advisory"]},{"url":"https://lists.debian.org/debian-lts-announce/2025/07/msg00010.html","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-23457","tags":["advisory"]},{"url":"https://github.com/ESAPI/esapi-java-legacy/commit/a0d67b75593878b1b6e39e2acc1773b3effedb2a","tags":["web"]},{"url":"https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/GHSL-2022-008_The_OWASP_Enterprise_Security_API.md","tags":["web"]},{"url":"https://security.netapp.com/advisory/ntap-20230127-0014","tags":["web"]},{"url":"https://securitylab.github.com/advisories/GHSL-2022-008_The_OWASP_Enterprise_Security_API","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-8m5h-hrqm-pxm2"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/23xxx/CVE-2022-23457.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2022-23457","tags":["advisory"]},{"url":"https://github.com/ESAPI/esapi-java-legacy","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2022-23457","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-23457","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-8181-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2022-24891","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2025-5878","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2022-23457","title":"Path Traversal in ESAPI","description":"ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library. Prior to version 2.3.0.0, the default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path. This vulnerability is patched in release 2.3.0.0 of ESAPI. As a workaround, it is possible to write one's own implementation of the Validator interface. However, maintainers do not recommend this.","status":"published","published":"2022-04-25T00:00:00Z","modified":"2025-11-03T19:26:49.494Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:34:29.842547Z"}],"euvd":[{"id":"EUVD-2022-1678","description":"ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library. Prior to version 2.3.0.0, the default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path. This vulnerability is patched in release 2.3.0.0 of ESAPI. As a workaround, it is possible to write one's own implementation of the Validator interface. However, maintainers do not recommend this.","status":"published","published":"2022-04-25T00:00:00Z","modified":"2025-11-03T19:26:49Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T19:49:34.152725Z"}],"ghsa":[{"id":"GHSA-8m5h-hrqm-pxm2","title":"Path traversal in the OWASP Enterprise Security API","description":"### Impact\nThe default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path.\n\n### Patches\nThis vulnerability is patched in release 2.3.0.0 of ESAPI. See https://github.com/ESAPI/esapi-java-legacy/releases/tag/esapi-2.3.0.0 for details.\n\n### Workarounds\nYes; in theory, one _could_ write the own implementation of the Validator interface. This would most easily be done by sub-classing a version of the affected `DefaultValidator` class and then overriding the affected `getValidDirectoryPath()` to correct the issue. However, this is not recommended.\n\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Email one of the project co-leaders. See email addresses listed on  the [OWASP ESAPI wiki](https://owasp.org/www-project-enterprise-security-api/) page, under \"Leaders\".\n* Send email to one of the two ESAPI related Google Groups listed under [Where to Find More Information on ESAPI](https://github.com/ESAPI/esapi-java-legacy#where-to-find-more-information-on-esapi) on our [README.md](https://github.com/ESAPI/esapi-java-legacy#readme) page.","status":"published","published":"2022-04-27T21:09:43Z","modified":"2025-11-03T22:28:23Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:39:05.278442Z"}],"nvd":[{"id":"CVE-2022-23457","description":"ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library. Prior to version 2.3.0.0, the default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path. This vulnerability is patched in release 2.3.0.0 of ESAPI. As a workaround, it is possible to write one's own implementation of the Validator interface. However, maintainers do not recommend this.","status":"published","published":"2022-04-25T20:15:41.87Z","modified":"2026-06-17T04:30:09.737Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:07:18.660414Z"}],"osv":[{"id":"CVE-2022-23457","title":"Path Traversal in ESAPI","description":"ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library. Prior to version 2.3.0.0, the default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path. This vulnerability is patched in release 2.3.0.0 of ESAPI. As a workaround, it is possible to write one's own implementation of the Validator interface. However, maintainers do not recommend this.","status":"published","published":"2022-04-25T00:00:00Z","modified":"2026-10-28T02:30:48.983815557Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:44:24.061177Z"},{"id":"DEBIAN-CVE-2022-23457","description":"ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library. Prior to version 2.3.0.0, the default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path. This vulnerability is patched in release 2.3.0.0 of ESAPI. As a workaround, it is possible to write one's own implementation of the Validator interface. However, maintainers do not recommend this.","status":"published","published":"2022-04-25T20:15:41.87Z","modified":"2026-11-03T08:00:39.343513439Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-03T08:25:15.646766Z"},{"id":"GHSA-8m5h-hrqm-pxm2","title":"Path traversal in the OWASP Enterprise Security API","description":"### Impact\nThe default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path.\n\n### Patches\nThis vulnerability is patched in release 2.3.0.0 of ESAPI. See https://github.com/ESAPI/esapi-java-legacy/releases/tag/esapi-2.3.0.0 for details.\n\n### Workarounds\nYes; in theory, one _could_ write the own implementation of the Validator interface. This would most easily be done by sub-classing a version of the affected `DefaultValidator` class and then overriding the affected `getValidDirectoryPath()` to correct the issue. However, this is not recommended.\n\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Email one of the project co-leaders. See email addresses listed on  the [OWASP ESAPI wiki](https://owasp.org/www-project-enterprise-security-api/) page, under \"Leaders\".\n* Send email to one of the two ESAPI related Google Groups listed under [Where to Find More Information on ESAPI](https://github.com/ESAPI/esapi-java-legacy#where-to-find-more-information-on-esapi) on our [README.md](https://github.com/ESAPI/esapi-java-legacy#readme) page.","status":"published","published":"2022-04-27T21:09:43Z","modified":"2025-11-03T22:32:59.652841Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:42.437513Z"},{"id":"UBUNTU-CVE-2022-23457","description":"ESAPI (The OWASP Enterprise Security API) is a free, open source, web application security control library. Prior to version 2.3.0.0, the default implementation of `Validator.getValidDirectoryPath(String, String, File, boolean)` may incorrectly treat the tested input string as a child of the specified parent directory. This potentially could allow control-flow bypass checks to be defeated if an attack can specify the entire string representing the 'input' path. This vulnerability is patched in release 2.3.0.0 of ESAPI. As a workaround, it is possible to write one's own implementation of the Validator interface. However, maintainers do not recommend this.","status":"published","published":"2022-04-25T20:15:00Z","modified":"2026-04-17T09:47:12.405058Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T16:53:53.13624Z"},{"id":"DLA-4246-1","title":"libowasp-esapi-java - security update","status":"published","published":"2025-07-21T00:00:00Z","modified":"2026-03-09T02:11:40.886784Z","updated_at":"2026-11-02T15:46:12.7027Z"},{"id":"USN-8181-1","title":"libowasp-esapi-java vulnerabilities","description":"Jaroslav Lobačevski discovered that ESAPI incorrectly validated directory\npaths during path verification. An attacker could possibly use this issue\nto bypass directory validation checks, leading to control-flow bypass. This\nissue only affected Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS,\nand Ubuntu 22.04 LTS. (CVE-2022-23457)\n\nKevin W. Wall and Sebastian Passaro discovered that ESAPI did not properly\nsanitize javascript URLs because of an incorrect regular expression. An\nattacker could possibly use this issue to perform a cross-site scripting\nattack. This issue only affected Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu\n20.04 LTS, and Ubuntu 22.04 LTS. (CVE-2022-24891)\n\nLonglong Gong discovered that ESAPI did not properly neutralize special\nelements during SQL injection defense. A remote attacker could possibly use\nthis issue to perform SQL injection. (CVE-2025-5878)","status":"published","published":"2026-04-16T17:56:26Z","modified":"2026-06-25T13:32:31.883898914Z","updated_at":"2026-11-02T16:58:22.951676Z"}]}}
