Halo is an open source website building tool. Prior to version 2.20.13, a vulnerability in Halo allows attackers to bypass file type validation controls. This bypass enables the upload of malicious files including executables and HTML files, which can lead to stored cross-site scripting attacks and potential remote code execution under certain circumstances. This issue has been patched in version 2.20.13.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/56xxx/CVE-2024-56156.json",
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-79"
]
}{
"source": [
"CPE_RANGE",
"REFERENCES"
],
"cpe": "cpe:2.3:a:halo:halo:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "2.20.13"
}
]
}"2026-07-09T09:39:30Z"
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-56156.json"
[
{
"id": "CVE-2024-56156-06438b5c",
"digest": {
"line_hashes": [
"308286607768438965412485276009345035789",
"37784403832034737852672431338867462279",
"32938059038195226345115164646030276917",
"233859440219836383676336450205697770007",
"73648646302343415584109925127690901478",
"324161528823559354430801658746800708018"
],
"threshold": 0.9
},
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/halo-dev/halo/commit/24f8d7b57127e2607ec05adb7c912b3decddeb99",
"deprecated": false,
"target": {
"file": "api/src/main/java/run/halo/app/infra/utils/FileTypeDetectUtils.java"
}
},
{
"id": "CVE-2024-56156-464cd6f3",
"digest": {
"line_hashes": [
"283990517940916171028507367235448754478",
"248307788067699315672156709772948628269",
"208513776720255145549380681291241000073"
],
"threshold": 0.9
},
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/halo-dev/halo/commit/24f8d7b57127e2607ec05adb7c912b3decddeb99",
"deprecated": false,
"target": {
"file": "application/src/test/java/run/halo/app/infra/utils/FileTypeDetectUtilsTest.java"
}
},
{
"id": "CVE-2024-56156-62c56dab",
"digest": {
"line_hashes": [
"204324476436687121148206967278788817544",
"227023478197154213195959932288792639635",
"182486560640653852548608348551131289606",
"79553655478393974928705978424866690013",
"67163630478968246527885036921989899500",
"171028842582632146660905990712239524663",
"166014448017560817842382276839854753451",
"272074115240180419173523298677623408605",
"272200433090454593160104643163108705155",
"298620985275836919973151909909444526055",
"29596680874074686395157453116021420706",
"273958625069882193077661506878823816007",
"229274283530701941748879452614477120058",
"230583622959731293816297631898288171241",
"235346249049808512882120750812464200828",
"241087103939655665738487687577059988903",
"281430806937412667773803521286546049930",
"122304110473408577625958950104834330047",
"262486138101699323282289948102491539635",
"38463825445599489883340009872696268896"
],
"threshold": 0.9
},
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/halo-dev/halo/commit/24f8d7b57127e2607ec05adb7c912b3decddeb99",
"deprecated": false,
"target": {
"file": "application/src/main/java/run/halo/app/core/attachment/endpoint/LocalAttachmentUploadHandler.java"
}
},
{
"id": "CVE-2024-56156-afeacdd3",
"digest": {
"function_hash": "284357765505324520087157028262349661615",
"length": 367.0
},
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/halo-dev/halo/commit/24f8d7b57127e2607ec05adb7c912b3decddeb99",
"deprecated": false,
"target": {
"function": "detectFileExtensionTest",
"file": "application/src/test/java/run/halo/app/infra/utils/FileTypeDetectUtilsTest.java"
}
},
{
"id": "CVE-2024-56156-b0eccf21",
"digest": {
"function_hash": "298649890399864920023408143606064532868",
"length": 1207.0
},
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/halo-dev/halo/commit/24f8d7b57127e2607ec05adb7c912b3decddeb99",
"deprecated": false,
"target": {
"function": "validateFile",
"file": "application/src/main/java/run/halo/app/core/attachment/endpoint/LocalAttachmentUploadHandler.java"
}
}
]