Skip to main content

openSIS Classic CVE-2026-91107

| EUVDEUVD-2026-92806 CRITICAL
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-10-05 Fluid Attacks GHSA-r588-8qfc-26mv
9.3
CVSS 4.0 · Vendor: Fluid Attacks
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with built-in teacher role
  2. Exploit
    Submit School Information update with forged staff_id
  3. Execution
    Trigger password reset on targeted admin account
  4. Impact
    Log in to hijacked privileged account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Requires an authenticated session holding the built-in teacher role (PR:L); no admin rights, user interaction, or non-default configuration is needed. The specific prerequisite is access to the School Information update path (modules/users/includes/SchoolsInfoInc.php via Staff.php), where the user-controlled staff_id request parameter is not validated against the logged-in user's own user_id, so the operator can select an arbitrary staff record and cause its password to be reset. The limiting factor is that the attacker must first possess valid teacher-level credentials to the openSIS Classic instance; exploitation is otherwise straightforward over the network against default installations.

Impact

This is a genuine high-priority issue, not a CVSS-inflated one. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N, 9.3 Critical) is well-supported by the description and the vendor patch: a low-privileged but authenticated teacher account can reset any staff account's password via an unvalidated staff_id, which is a classic CWE-639 IDOR enabling privilege escalation to administrator and effective account takeover. The patch commit directly corroborates the flaw - it adds an ownership check tying the selected staff_id to the session user's own user_id and a 403 for non-admins editing other records - so the vulnerability and fix are confirmed from source code, not merely asserted. Tempering the risk: no EPSS score, no CISA KEV listing, and no public POC are provided, so there is no evidence of active or automated exploitation; realistic risk is bounded by the fact that an attacker must first hold a valid teacher-level account. Note a minor labeling tension: the Tags list 'Authentication Bypass,' but the CWE and behavior describe an authorization/IDOR flaw that results in account takeover - the practical effect (resetting another user's credentials) overlaps with authentication compromise but the root cause is broken authorization. Verify the exact affected version range with the vendor, as CPE lists all versions ('*') while the title cites 9.3 specifically.

Exploit ScenarioDerived

A malicious or compromised teacher logs into openSIS Classic and, using the School Information update feature, substitutes the staff_id parameter with the identifier of an administrator account. The vulnerable update path accepts the attacker-controlled staff_id without verifying ownership and resets that admin account's password, letting the teacher take over a privileged account and gain full administrative control of the student information system. No public exploit code is identified at time of analysis, but the flaw is simple and reliably triggered via normal web requests.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 05, 2026

An authenticated user holding openSIS Classic 9.3's built-in teacher role can reset the password of any other staff account by supplying an arbitrary staff_id value to the School Information update path, giving a low-privileged operator full control of higher-privileged accounts. The flaw is a classic user-controlled key (CWE-639) authorization bypass: the application trusts the staff_id request parameter when populating the session's staff context and then uses that context to authorize a password change without confirming it matches the caller's own user_id. Only a valid teacher-level session is required; no admin rights, user interaction, or non-default configuration is needed, and severity is rated 9.3 (CVSS:4.0 AV:N/AC:L/AT:N/PR:L/UI:N with high confidentiality and integrity impact plus scope change), consistent with an independent assessment of CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N. No public exploit code and no confirmed active exploitation were identified at time of analysis, but the vendor reports a patch and the affected code path is trivially reachable for any authenticated teacher.

RemediationAI

Apply the upstream fix commit 24bb530391a67c114cd4fe3dff65da7e070f5ed1 in the OS4ED/openSIS-Classic repository, which validates the caller's identity in both modules/users/Staff.php and modules/users/includes/SchoolsInfoInc.php and rejects non-admin password changes for records the session does not own with an HTTP 403; vendor-reported patch availability is reflected in the GitHub patch reference, but a released, tagged version number is not independently confirmed, so verify the commit is present in the build you deploy and track https://github.com/OS4ED/openSIS-Classic for the next tagged release. Because only a teacher-role session is needed, interim mitigations should target that role's reach: restrict or remove the built-in teacher profile's access to the users/School Information module so it cannot invoke the password-reset path at all (side effect: teachers lose self-service staff/profile functions that route through the same screens), and, if the application is not internet-facing, restrict network access to the administrative and users endpoints to trusted management networks or a VPN (side effect: off-campus teacher access is curtailed). A targeted WAF rule or reverse-proxy check that rejects School Information update requests whose staff_id does not match the session user is a compensating control but is brittle and must not substitute for the code fix, since the vulnerable logic lives server-side and the session variable can be set by a separate request to Staff.php first. Advisory details and the reporting credit to Fluid Attacks are available at https://fluidattacks.com/advisories/hearts. There is no public exploit code and no confirmed active exploitation at time of analysis, so remediation urgency is driven by the low privilege bar and high impact rather than observed attack activity.

Affected VersionsENISA

openSIS-Classic 9.3

Affected Packages

euvd opensis_classic no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

openSIS Classic is a PHP/MySQL student information system whose administrative UI separates staff and school configuration functions into modules/users. The root cause is CWE-639, Authorization Bypass Through User-Controlled Key: modules/users/Staff.php accepted the client-supplied staff_id parameter and stored it into $_SESSION['staff_id'] whenever the session value was empty and the parameter was not "new", with no check that the referenced staff record belonged to the logged-in account. modules/users/includes/SchoolsInfoInc.php then consumed that session-derived staff identifier (via UserStaffID()) on the School Information update path, which includes a password reset for the selected staff record; the only gate was the pre-patch absence of an identity comparison, meaning any non-admin profile - specifically the built-in teacher role - could reach it. The upstream fix adds a lookup against the login_authentication table (matching USERNAME and PROFILE_ID to retrieve the caller's own user_id) in both files: Staff.php now only accepts staff_id when it equals the authenticated user's own record, and SchoolsInfoInc.php returns HTTP 403 for non-admin profiles whose selected user id does not match their own, otherwise exiting with "You are not authorized to change this password." The CVSS:4.0 vector (PR:L, UI:N, S:C, VC:H/VI:H/SC:H/SI:H) reflects an authenticated but low-privileged attacker achieving cross-boundary compromise of other accounts' confidentiality and integrity without availability impact, while the independent CVSS:3.1 assessment (S:C/C:H/I:H/A:N) agrees on impact and prerequisites. The CPE cpe:2.3:a:os4ed:opensis-classic:*:*:*:*:*:*:*:* indicates the product family is affected, with 9.3 the confirmed vulnerable release. No KEV listing, EPSS value, or public proof-of-concept is present in the provided intelligence, so exploitation is assessed as feasible but not observed.

Know when Opensis Classic gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Fluid Attacks) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N
vuln.today AI 9.6 CRITICAL

Network-reachable web request with low-privilege teacher auth (PR:L, AC:L); IDOR lets takeover of other accounts managed by a different authority, so S:C with C:H/I:H; no direct availability impact (A:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N

Primary rating from Vendor (Fluid Attacks).

CVSS VectorVendor: Fluid Attacks

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
None

DescriptionCVE.org

openSIS Classic 9.3 allows an authenticated user with the built-in teacher role can select an arbitrary staff record through staff_id and cause the School Information update path to reset that selected account's password.

Executive ViewAI

Why It Matters

OpenSIS Classic 9.3, a widely used school information system, contains a critical authorization bypass that allows any authenticated teacher to reset passwords for other staff accounts, including administrators. This flaw could enable a low-privileged user to gain full control of higher-privileged accounts, leading to unauthorized access to sensitive student and staff data, operational disruptions, and potential regulatory penalties. Leadership should treat this as a high-priority risk requiring immediate remediation.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
niche open-source student information system for K-12 schools
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy