/

CVE-2026-97646

Severity:

HIGH RISK

(7.3)

Authorization Bypass (CWE-285) in Student Management System

CVE-2026-97646

Deferred

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-285, CWE-639

Impact:

Unauthorized Access and Potential Data Exposure

Severity:

HIGH RISK

(7.3)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A remotely reachable authorization weakness in the student-management-system affects the admin/fun/getStudent.php component. By manipulating the sid argument, an attacker may bypass intended access controls and access or act on student records without the required authorization.

Affected context

The issue affects deployments of ningzichun student-management-system versions up to the identified commit where admin/fun/getStudent.php processes the sid parameter without consistently verifying that the requesting user is permitted to access the referenced student record. Risk depends on the endpoint being remotely reachable and on the application's authorization checks being insufficient or absent for this operation.

Exploit preconditions

  • Attack surface: The remotely accessible admin/fun/getStudent.php endpoint
  • Required access: Any access level accepted by the endpoint, depending on deployment authentication and routing controls
  • Trigger point: Processing of a user-controlled sid argument
  • Why exploitation is possible: The requested student identifier may be accepted without a reliable server-side authorization decision tying the record to the requesting user or role

Why this happens

The underlying bug is an access-control failure in which object-level authorization is not properly enforced for a client-supplied record identifier. The application appears to rely on the sid value to select a student record without sufficiently verifying whether the current principal is allowed to access that specific object. This maps primarily to CWE-285: Improper Authorization and is closely related to CWE-639: Authorization Bypass Through User-Controlled Key.

Potential impact

  • An attacker could access student records outside their authorized scope
  • Sensitive student information may be disclosed
  • Unauthorized record changes could occur if the endpoint supports modification actions
  • The vulnerability may enable account or privilege boundary violations within the application
  • Exposed records could support follow-on social engineering or privacy attacks

General mitigation guidance

Mitigation generally focuses on enforcing authorization at the server-side object-access boundary rather than trusting identifiers supplied by clients.

Common defensive patterns include:

  • Applying an explicit, deny-by-default authorization check for every requested student record
  • Binding record access to the authenticated user's role, ownership, or permitted organizational scope
  • Treating all identifiers, including sid, as untrusted input
  • Centralizing access-control decisions so endpoint implementations cannot omit them
  • Returning consistent responses that do not reveal whether unauthorized records exist
  • Limiting service accounts and database identities to the minimum required privileges
  • Logging denied object-access attempts and reviewing anomalous identifier enumeration behavior

How teams detect issues like this

Organizations can assess for this class of issue through:

  • Static analysis and code review searches for database lookups keyed directly by request parameters
  • Review of controller and endpoint paths for missing record-level authorization checks
  • Test cases that request valid identifiers belonging to other users, roles, or tenants
  • Dynamic testing that compares authorized and unauthorized responses for status, content, and timing differences
  • Policy enforcement requiring centralized authorization middleware or service-layer checks before object retrieval
  • Monitoring for repeated requests containing sequential or unusual student identifiers

Automated security testing and code review tools may help identify direct object-reference patterns, but findings should be validated against the application's intended authorization model.

Sources

SourceLink
github.comgithub.com/ningzichun/student-management-system/
github.comgithub.com/ningzichun/student-management-system/issues/9
vuldb.comvuldb.com/cve/CVE-2026-97646
vuldb.comvuldb.com/submit/910054
vuldb.comvuldb.com/vuln/409748
vuldb.comvuldb.com/vuln/409748/cti

Frequently asked

questions

The reported attack surface is remotely reachable when the affected endpoint is exposed over the application's network interface. Successful exploitation still depends on deployment routing, authentication, and other access controls.

The description does not establish a universal authentication requirement. The relevant prerequisite is whatever access the endpoint accepts; even authenticated users may be able to cross authorization boundaries if record-level checks are missing.

Enforce a server-side authorization decision for every requested student record, using the authenticated principal and applicable role or ownership policy rather than trusting the supplied sid.

Use centralized object-level access-control checks, test cross-user and cross-role record access, avoid exposing predictable identifiers where practical, and monitor for identifier enumeration attempts.

Find out what's already
exploitable in your codebase.