Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with built-in teacher role
-
ExploitSubmit School Information update with forged staff_id
-
ExecutionTrigger password reset on targeted admin account
-
ImpactLog 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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).
Primary rating from Vendor (Fluid Attacks).
CVSS VectorVendor: Fluid Attacks
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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Opensis Classic
View allSQL injection in OS4ED openSIS-Classic (up to and including version 9.3) lets an authenticated low-privileged user - a s
Authenticated SQL injection in OS4ED openSIS-Classic 9.3 and earlier allows a low-privileged user to manipulate the LO_s
SQL injection in OS4ED openSIS-Classic up to and including version 9.3 lets an authenticated attacker with any valid low
SQL injection in OS4ED openSIS-Classic 9.0 through 9.3 allows a high-privilege authenticated user to manipulate the 'stu
SQL injection in OS4ED openSIS-Classic up to and including 9.3 lets an authenticated, highly privileged user manipulate
Path traversal in openSIS Classic 9.3 exposes arbitrary server files through the legacy messaging sent-mail attachment d
EUVD-2026-92806
GHSA-r588-8qfc-26mv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB