{"api_version":"1","generated_at":"2026-04-23T06:20:40+00:00","cve":"CVE-2022-24816","urls":{"html":"https://cve.report/CVE-2022-24816","api":"https://cve.report/api/cve/CVE-2022-24816.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2022-24816","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2022-24816"},"summary":{"title":"CVE-2022-24816","description":"JAI-EXT is an open-source project which aims to extend the Java Advanced Imaging (JAI) API. Programs allowing Jiffle script to be provided via network request can lead to a Remote Code Execution as the Jiffle script is compiled into Java code via Janino, and executed. In particular, this affects the downstream GeoServer project. Version 1.2.22 will contain a patch that disables the ability to inject malicious code into the resulting script. Users unable to upgrade may negate the ability to compile Jiffle scripts from the final application, by removing janino-x.y.z.jar from the classpath.","state":"PUBLIC","assigner":"security-advisories@github.com","published_at":"2022-04-13 21:15:00","updated_at":"2023-02-16 19:08:00"},"problem_types":["CWE-94"],"metrics":[],"references":[{"url":"https://github.com/geosolutions-it/jai-ext/security/advisories/GHSA-v92f-jx6p-73rx","name":"https://github.com/geosolutions-it/jai-ext/security/advisories/GHSA-v92f-jx6p-73rx","refsource":"CONFIRM","tags":[],"title":"Improper Control of Generation of Code ('Code Injection') in jai-ext · Advisory · geosolutions-it/jai-ext · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://github.com/geosolutions-it/jai-ext/commit/cb1d6565d38954676b0a366da4f965fef38da1cb","name":"https://github.com/geosolutions-it/jai-ext/commit/cb1d6565d38954676b0a366da4f965fef38da1cb","refsource":"MISC","tags":[],"title":"Validate Jiffle input variable names according to grammar, escape jav… · geosolutions-it/jai-ext@cb1d656 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-24816","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-24816","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2022","cve_id":"24816","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"geosolutionsgroup","cpe5":"jai-ext","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2022","cve_id":"24816","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"geosolutionsgroup","cpe5":"jal-ext","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":{"cve_year":"2022","cve_id":"24816","cve":"CVE-2022-24816","vendorProject":"OSGeo","product":"JAI-EXT","vulnerabilityName":"OSGeo GeoServer JAI-EXT Code Injection Vulnerability","dateAdded":"2024-06-26","shortDescription":"OSGeo GeoServer JAI-EXT contains a code injection vulnerability that, when programs use jt-jiffle and allow Jiffle script to be provided via network request, could allow remote code execution.","requiredAction":"Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.","dueDate":"2024-07-17","knownRansomwareCampaignUse":"Unknown","notes":"This vulnerability affects a common open-source component, third-party library, or a protocol used by different products. The patched JAI-EXT is version 1.1.22: https://github.com/geosolutions-it/jai-ext/releases/tag/1.1.22, https://github.com/geosolutions-it/jai-ext/security/advisories/GHSA-v92f-jx6p-73rx;  https://nvd.nist.gov/vuln/detail/CVE-2022-24816","cwes":"CWE-94","catalogVersion":"2026.04.22","updated_at":"2026-04-22 20:03:10"},"epss":{"cve_year":"2022","cve_id":"24816","cve":"CVE-2022-24816","epss":"0.937140000","percentile":"0.998500000","score_date":"2026-04-22","updated_at":"2026-04-23 00:03:16"},"legacy_qids":[{"cve":"CVE-2022-24816","qid":"150667","title":"GeoServer JAI-EXT Remote Code Execution (RCE) Vulnerability (CVE-2022-24816)"},{"cve":"CVE-2022-24816","qid":"730744","title":"jai-ext Remote Code Execution (RCE) Vulnerability (GHSA-v92f-jx6p-73rx)"},{"cve":"CVE-2022-24816","qid":"995305","title":"Java (Maven) Security Update for it.geosolutions.jaiext.jiffle:jt-jiffle (GHSA-v92f-jx6p-73rx)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2022-24816","STATE":"PUBLIC","TITLE":"Improper Control of Generation of Code in jai-ext"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"jai-ext","version":{"version_data":[{"version_value":"< 1.1.22"}]}}]},"vendor_name":"geosolutions-it"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"JAI-EXT is an open-source project which aims to extend the Java Advanced Imaging (JAI) API. Programs allowing Jiffle script to be provided via network request can lead to a Remote Code Execution as the Jiffle script is compiled into Java code via Janino, and executed. In particular, this affects the downstream GeoServer project. Version 1.2.22 will contain a patch that disables the ability to inject malicious code into the resulting script. Users unable to upgrade may negate the ability to compile Jiffle scripts from the final application, by removing janino-x.y.z.jar from the classpath."}]},"impact":{"cvss":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":10,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-94: Improper Control of Generation of Code ('Code Injection')"}]}]},"references":{"reference_data":[{"name":"https://github.com/geosolutions-it/jai-ext/security/advisories/GHSA-v92f-jx6p-73rx","refsource":"CONFIRM","url":"https://github.com/geosolutions-it/jai-ext/security/advisories/GHSA-v92f-jx6p-73rx"},{"name":"https://github.com/geosolutions-it/jai-ext/commit/cb1d6565d38954676b0a366da4f965fef38da1cb","refsource":"MISC","url":"https://github.com/geosolutions-it/jai-ext/commit/cb1d6565d38954676b0a366da4f965fef38da1cb"}]},"source":{"advisory":"GHSA-v92f-jx6p-73rx","discovery":"UNKNOWN"}},"nvd":{"publishedDate":"2022-04-13 21:15:00","lastModifiedDate":"2023-02-16 19:08:00","problem_types":["CWE-94"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":9.8,"baseSeverity":"CRITICAL"},"exploitabilityScore":3.9,"impactScore":5.9},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:P/I:P/A:P","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":7.5},"severity":"HIGH","exploitabilityScore":10,"impactScore":6.4,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:geosolutionsgroup:jai-ext:*:*:*:*:*:*:*:*","versionEndExcluding":"1.1.22","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2022","CveId":"24816","Ordinal":"228299","Title":"CVE-2022-24816","CVE":"CVE-2022-24816","Year":"2022"},"notes":[{"CveYear":"2022","CveId":"24816","Ordinal":"1","NoteData":"** RESERVED ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided.","Type":"Description","Title":null}]}}}