Severity by source
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:L
Admin authentication required (PR:H); network-accessible endpoint (AV:N); read-only filesystem access (I:N); low availability impact from unsanitized backup status fields.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Halo is an open source website building tool. Prior to 2.24.3, a path traversal vulnerability in the backup download endpoint allows authenticated administrators to read arbitrary files from the server filesystem. The backup download endpoint (GET /apis/console.api.migration.halo.run/v1alpha1/backups/{name}/files/{filename}) in MigrationServiceImpl.download() resolves the backup filename via Path.resolve() without validating that the resolved path stays within the designated backups directory. Also, the Backup creation endpoint (POST /apis/migration.halo.run/v1alpha1/backups) does not sanitize the status fields during creation This vulnerability is fixed in 2.24.3.
AnalysisAI
Path traversal in Halo's backup download endpoint allows authenticated administrators to read arbitrary files from the server filesystem, bypassing directory boundaries. Affected are all Halo deployments prior to version 2.24.3, where the MigrationServiceImpl.download() method invokes Path.resolve() on attacker-supplied filenames without enforcing containment within the designated backups directory. A compounding issue exists in the backup creation endpoint, which fails to sanitize status fields. No public exploit code or CISA KEV listing has been identified at time of analysis, and the PR:H requirement meaningfully constrains the attack surface.
Technical ContextAI
Halo is a Java-based open-source CMS and website building platform (CPE: cpe:2.3:a:halo-dev:halo:*:*:*:*:*:*:*:*). The vulnerability manifests as CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) in MigrationServiceImpl.download(). The backup download REST endpoint - GET /apis/console.api.migration.halo.run/v1alpha1/backups/{name}/files/{filename} - accepts a user-controlled {filename} parameter and passes it directly to Java's Path.resolve() without asserting that the resulting canonical path begins with the expected backups directory prefix. Path.resolve() in Java joins paths and normalizes traversal sequences (e.g., ../../), making it trivially bypassed when the result is not validated. A secondary weakness exists in the POST /apis/migration.halo.run/v1alpha1/backups endpoint, where status fields are accepted during backup creation without sanitization, potentially enabling injection of crafted backup metadata to further influence path resolution.
RemediationAI
Upgrade to Halo 2.24.3, which introduces proper path boundary validation in MigrationServiceImpl.download() and sanitization of status fields in the backup creation endpoint. This is the only confirmed fix per the vendor advisory at https://github.com/halo-dev/halo/security/advisories/GHSA-h8wj-chr2-hf66. For operators unable to upgrade immediately, a compensating control is to restrict network access to the migration API path prefix /apis/console.api.migration.halo.run/ and /apis/migration.halo.run/ via a reverse proxy or WAF, blocking or rate-limiting access to these endpoints for all but a known-safe admin IP range - note this reduces operational convenience for legitimate backup workflows. Additionally, auditing admin account credentials and enforcing MFA on administrator accounts reduces the likelihood of an adversary obtaining the PR:H access required for exploitation. There are no known side effects of upgrading to 2.24.3 beyond the security fix.
Halo CMS v1.5.3 was discovered to contain a Server-Side Request Forgery (SSRF) via the template remote download function
Halo CMS v1.5.3 was discovered to contain an arbitrary file upload vulnerability via the component /api/admin/attachment
An Arbitrary file writing vulnerability in halo v1.1.3. Rated critical severity (CVSS 9.8), this vulnerability is remote
A Server-Side Freemarker template injection vulnerability in halo CMS v1.1.3 In the Edit Theme File function. Rated crit
An issue was discovered in halo V1.1.3. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
There is a XML external entity (XXE) vulnerability in halo v1.1.3, The function of importing other blogs in the backgrou
An issue in halo v.2.22.4 and before allows a remote attacker to cause a denial of service via a crafted payload to the
Halo Blog CMS v1.4.17 was discovered to allow attackers to upload arbitrary files via the Attachment Upload function. Ra
Halo V1.1.3 is affected by: Arbitrary File reading. Rated high severity (CVSS 7.5), this vulnerability is remotely explo
Halo before 1.2.0-beta.1 allows Server Side Template Injection (SSTI) because TemplateClassResolver.SAFER_RESOLVER is no
Halo is an open source website building tool. Rated medium severity (CVSS 6.4), this vulnerability is remotely exploitab
Halo is an open source website building tool. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitab
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39465