Skip to main content

RosarioSIS CVE-2026-121732

LOW
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-11-03 disclosure@vulncheck.com
2.1
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as school-scoped admin
  2. Delivery
    Open Mass Assign Fees/Payments form
  3. Exploit
    Substitute foreign student IDs in student[] array
  4. Execution
    Submit modfunc=save request
  5. Impact
    Alter other schools' billing balances

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 administrator account that is school-scoped (the patch gates the new check on User('SCHOOLS') being set, i.e. an operator restricted to specific schools rather than a global admin) with access to the Student Billing module. The attacker must send a modfunc=save POST request to MassAssignFees.php or MassAssignPayments.php and place student IDs belonging to another school into the student[] POST array; pre-patch code iterated $_REQUEST['student'] directly without verifying each ID's SCHOOL_ID against the user's authorized schools. Limiting factors: the attacker must already hold a privileged school-admin session (PR:H), must know or guess valid foreign student IDs (integer IDs, likely enumerable), and impact is confined to writing/altering billing data - there is no read disclosure and no availability effect.

Impact

This is a low-severity, authorization-boundary flaw that is not an operational priority. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:H/UI:N) and the vendor base score of 2.1 agree with the mechanism: exploitation requires an already-authenticated, school-scoped administrator (PR:H), and the only impact is low integrity (VI:L) - the ability to write fees/payments onto students belonging to other schools. There is no confidentiality or availability impact. The vuln.today decision label is 'monitor', consistent with a low-urgency, insider-boundary issue. No EPSS score is provided and the CVE is not listed in CISA KEV, so exploitation status is 'no public exploit identified at time of analysis'; the references are an upstream advisory, commit, and bug tracker issue, not working exploit code. The realistic risk is limited to a malicious or compromised school-level administrator corrupting billing data across the tenant boundary in a multi-school deployment - a data-integrity and trust problem, not a remote unauthenticated compromise. Note one metadata conflict to verify: the input tag 'Authentication Bypass' mischaracterizes this; CWE-639 and the description make clear it is improper authorization (IDOR) by an authenticated user, not an authentication bypass.

Exploit ScenarioDerived

A legitimate but malicious (or compromised) administrator whose account is scoped to one school logs into RosarioSIS and opens the Mass Assign Fees or Mass Assign Payments screen. They submit a modfunc=save request but replace the student IDs in the student[] POST array with IDs belonging to a different school, causing fees or payment records to be written against students outside their authorized scope. No public exploit code is identified, though the trivial request-tampering technique is described in the upstream advisory and GitLab issue #376.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet

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

Alert me

AnalysisAIv1 – Nov 03, 2026

School-scoped administrators in RosarioSIS before 12.9 can write fees and payments against students enrolled at other schools, breaking the per-school isolation the application otherwise enforces on billing data. The flaw is an IDOR (CWE-639): MassAssignFees.php and MassAssignPayments.php iterate the student[] POST array on a modfunc=save request without verifying that each supplied student ID belongs to a school inside the administrator's own SCHOOLS scope. Exploitation requires an authenticated, highly privileged school-admin session (PR:H), the impact is integrity-only on billing balances with no read disclosure or availability effect, no public exploit code has been identified at time of analysis, and the vendor fix ships in 12.9; the priority signal is 'monitor'.

RemediationAI

Vendor-released patch: RosarioSIS 12.9 - upgrade from any earlier release to the 12.9 tag (https://github.com/francoisjacquet/rosariosis/releases/tag/v12.9), which is the commit a8bb460aacb11661934e6e91fbe0d8158fbc0c4f and closes GitLab issue #376; the fix enrolls the submitted student[] IDs against the operator's authorized schools before any fee or payment is written, and covers the same cross-school assignment pattern in AddAbsences.php, AddActivity.php, Requests.php, AssignOtherInfo.php and AddStudents.php, so all of those paths should be verified as patched, not just the two Student_Billing endpoints. The supplied sources do not document a workaround or a configuration-level mitigation for pre-12.9 deployments, so the vendor upgrade is the remediation the advisory supports; because exploitation is gated on an existing school-scoped administrator session with access to the Student Billing module, the exposure of a given installation is bounded by who already holds that role. Track the advisory and release notes via https://www.vulncheck.com/advisories/rosariosis-before-12.9-improper-authorization-via-student-billing-mass-assignment and https://gitlab.com/francoisjacquet/rosariosis/-/issues/376.

Affected ProductsAI

RosarioSIS releases before 12.9 are affected, specifically the Student_Billing module files MassAssignFees.php and MassAssignPayments.php as they exist in v12.8.1, plus the additional modules corrected in the same upstream fix (Attendance/AddAbsences.php, Eligibility/AddActivity.php, Scheduling/Requests.php, Students/AssignOtherInfo.php and the AddStudents flow). No CPE identifiers were included in the supplied intelligence, so the version range is taken from the advisory text and the v12.8.1 source links in the references. Vendor material: the release at https://github.com/francoisjacquet/rosariosis/releases/tag/v12.9, the fixing commit at https://github.com/francoisjacquet/rosariosis/commit/a8bb460aacb11661934e6e91fbe0d8158fbc0c4f, the upstream issue at https://gitlab.com/francoisjacquet/rosariosis/-/issues/376, and the VulnCheck advisory at https://www.vulncheck.com/advisories/rosariosis-before-12.9-improper-authorization-via-student-billing-mass-assignment.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

RosarioSIS is a PHP-based school management / student information system in which a single installation serves multiple schools, and accounts can be scoped to a subset of those schools (the User('SCHOOLS') value) rather than being global administrators. CWE-639 (authorization bypass through user-controlled key) applies here: the vulnerable handlers took the attacker-supplied student[] array from the POST body and iterated it directly inside the modfunc=save branch, so any integer student ID supplied was accepted and written to, regardless of whether that student was enrolled in one of the operator's authorized schools. The upstream fix in commit a8bb460aac (referenced against v12.8.1 source in the NVD references for MassAssignFees.php line 15 and MassAssignPayments.php line 16) wraps the loop in a User('SCHOOLS') guard and pre-filters the submitted IDs through a DBGet query on the student_enrollment table, matching SYEAR to UserSyear() and restricting SCHOOL_ID to the schools the account is entitled to; IDs failing that check are dropped and the loop runs over the filtered set (with a '0' fallback when nothing survives). The identical pattern was applied in the same commit to AddAbsences.php, AddActivity.php, Requests.php, AssignOtherInfo.php and AddStudents.php under GitLab issue #376, which is distinct from the time-based SQL injection tracked as #375 in StudentSumary.php. The trigger described in the available sources is a crafted modfunc=save POST request to the two Student_Billing endpoints with foreign IDs substituted into student[]; no further exploitation mechanics are described in the supplied data.

Know when PHP 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 (vulncheck) PRIMARY 2.1 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 2.7 LOW

Authenticated school-admin privilege required (PR:H) over the web (AV:N/AC:L/UI:N); only billing data is modified (I:L), with no confidentiality or availability impact and no cross-authority scope change.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

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

DescriptionCVE.org

RosarioSIS before 12.9 contains an improper authorization vulnerability that allows school-scoped administrators to assign fees and payments to students of other schools via MassAssignFees.php and MassAssignPayments.php. Attackers can substitute foreign student IDs in the student[] POST array of a modfunc=save request to alter other schools' student billing balances, breaking school isolation.

Threat Intelligence Overview

Prevalence
Low
niche open-source school information system, limited institutional footprint
Data Quality
3 sources
Confidence: Low

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 LOW
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
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· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
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.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

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