GeoServer is an open source software server written in Java that allows users to share and edit geospatial data. A stored cross-site scripting (XSS) vulnerability exists in versions prior to 2.23.3 and 2.24.1 that enables an authenticated administrator with workspace-level privileges to store a JavaScript payload in the GeoServer catalog that will execute in the context of another user's browser when viewed in the WMS GetMap OpenLayers Output Format. Access to the WMS OpenLayers Format is available to all users by default although data and service security may limit users' ability to trigger the XSS. Versions 2.23.3 and 2.24.1 contain a patch for this issue.
{
"cwe_ids": [
"CWE-79"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/23xxx/CVE-2024-23818.json",
"cna_assigner": "GitHub_M"
}{
"cpe": [
"cpe:2.3:a:geoserver:geoserver:*:*:*:*:*:*:*:*",
"cpe:2.3:a:geoserver:geoserver:2.24.0:-:*:*:*:*:*:*"
],
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "2.23.3"
},
{
"introduced": "2.24.0-NA"
},
{
"last_affected": "2.24.0-NA"
}
],
"source": [
"CPE_RANGE",
"CPE_STRING",
"REFERENCES"
]
}
"2026-08-12T15:15:02Z"
[
{
"id": "CVE-2024-23818-252b07eb",
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"length": 1383.0,
"function_hash": "162852862137982352561524146406188703002"
},
"source": "https://github.com/geoserver/geoserver/commit/a26c32a469ee4c599236380452ffb4260361bd6f",
"target": {
"function": "testXssFix",
"file": "src/wms/src/test/java/org/geoserver/wms/map/OpenLayersMapOutputFormatTest.java"
}
},
{
"id": "CVE-2024-23818-2cfa0b2b",
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"length": 1435.0,
"function_hash": "103541133623903565671385216271101314267"
},
"source": "https://github.com/geoserver/geoserver/commit/a26c32a469ee4c599236380452ffb4260361bd6f",
"target": {
"function": "testXssOL3",
"file": "src/wms/src/test/java/org/geoserver/wms/map/OpenLayersMapOutputFormatTest.java"
}
},
{
"id": "CVE-2024-23818-72522462",
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"length": 1383.0,
"function_hash": "162852862137982352561524146406188703002"
},
"source": "https://github.com/geoserver/geoserver/commit/4557a832eed19ec18b9753cb97e8aa85269741d2",
"target": {
"function": "testXssFix",
"file": "src/wms/src/test/java/org/geoserver/wms/map/OpenLayersMapOutputFormatTest.java"
}
},
{
"id": "CVE-2024-23818-860bce1a",
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"length": 1435.0,
"function_hash": "103541133623903565671385216271101314267"
},
"source": "https://github.com/geoserver/geoserver/commit/4557a832eed19ec18b9753cb97e8aa85269741d2",
"target": {
"function": "testXssOL3",
"file": "src/wms/src/test/java/org/geoserver/wms/map/OpenLayersMapOutputFormatTest.java"
}
},
{
"id": "CVE-2024-23818-a7fd2bd0",
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"224264937081916243836141923898132492611",
"294459535711436370538729170487043712308",
"40235694257250725338840524448157626459",
"286705106247018954640487693570175228780",
"94378562485952067029096021219677592071",
"207464686002787945655241648622529118247",
"14783354295156376914351387270319617198",
"191670145529259986513945679022408454147",
"339257218031115495822818571895945465508",
"337112281106764398972222088083213514840",
"209677558201897700165162062696381557905",
"74070049806932761481346383588348488066",
"203868636115539953986162529489221064936",
"174572295610254579738678258181604228752",
"229723538630384662215646493735858597638",
"298181646088304387709029869177554211237",
"172519815653351051656715243472479806380",
"29682433511462476489266422438799977432",
"197207243588206481245636480066718624198",
"289868365059570534699332817708904681132",
"44265425178525496768276308264645597763",
"129545233307009849658929389774372115483",
"191670145529259986513945679022408454147",
"339257218031115495822818571895945465508",
"337112281106764398972222088083213514840",
"209677558201897700165162062696381557905",
"74070049806932761481346383588348488066",
"203868636115539953986162529489221064936",
"174572295610254579738678258181604228752",
"229723538630384662215646493735858597638",
"298181646088304387709029869177554211237",
"172519815653351051656715243472479806380",
"271059655596522285220343297645912786214"
]
},
"source": "https://github.com/geoserver/geoserver/commit/4557a832eed19ec18b9753cb97e8aa85269741d2",
"target": {
"file": "src/wms/src/test/java/org/geoserver/wms/map/OpenLayersMapOutputFormatTest.java"
}
},
{
"id": "CVE-2024-23818-d6447ef6",
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"224264937081916243836141923898132492611",
"294459535711436370538729170487043712308",
"40235694257250725338840524448157626459",
"286705106247018954640487693570175228780",
"94378562485952067029096021219677592071",
"207464686002787945655241648622529118247",
"14783354295156376914351387270319617198",
"191670145529259986513945679022408454147",
"339257218031115495822818571895945465508",
"337112281106764398972222088083213514840",
"209677558201897700165162062696381557905",
"74070049806932761481346383588348488066",
"203868636115539953986162529489221064936",
"174572295610254579738678258181604228752",
"229723538630384662215646493735858597638",
"298181646088304387709029869177554211237",
"172519815653351051656715243472479806380",
"29682433511462476489266422438799977432",
"197207243588206481245636480066718624198",
"289868365059570534699332817708904681132",
"44265425178525496768276308264645597763",
"129545233307009849658929389774372115483",
"191670145529259986513945679022408454147",
"339257218031115495822818571895945465508",
"337112281106764398972222088083213514840",
"209677558201897700165162062696381557905",
"74070049806932761481346383588348488066",
"203868636115539953986162529489221064936",
"174572295610254579738678258181604228752",
"229723538630384662215646493735858597638",
"298181646088304387709029869177554211237",
"172519815653351051656715243472479806380",
"271059655596522285220343297645912786214"
]
},
"source": "https://github.com/geoserver/geoserver/commit/a26c32a469ee4c599236380452ffb4260361bd6f",
"target": {
"file": "src/wms/src/test/java/org/geoserver/wms/map/OpenLayersMapOutputFormatTest.java"
}
},
{
"id": "CVE-2024-23818-d81a94d0",
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"241159091924052138102429844631583455424",
"266612685684535735447485710816566822030",
"2505040059849479366980853866073117986",
"178466140869489779666401568228565195429",
"75450498022407658115503417247719368170",
"124118249392246653729084599759132752733"
]
},
"source": "https://github.com/geoserver/geoserver/commit/a26c32a469ee4c599236380452ffb4260361bd6f",
"target": {
"file": "src/wms/src/main/java/org/geoserver/wms/map/AbstractOpenLayersMapOutputFormat.java"
}
},
{
"id": "CVE-2024-23818-e3b9cb86",
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"241159091924052138102429844631583455424",
"266612685684535735447485710816566822030",
"2505040059849479366980853866073117986",
"178466140869489779666401568228565195429",
"75450498022407658115503417247719368170",
"124118249392246653729084599759132752733"
]
},
"source": "https://github.com/geoserver/geoserver/commit/4557a832eed19ec18b9753cb97e8aa85269741d2",
"target": {
"file": "src/wms/src/main/java/org/geoserver/wms/map/AbstractOpenLayersMapOutputFormat.java"
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-23818.json"