---
id: "CVE-2026-121501"
kind: "vulnerability"
aliases: ["CVE-2026-121501"]
title: "CloudClassroom-PHP-Project: login page allows session fixation via PHPSESSID"
severity: "high"
cvss: 7.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["cloudclassroom-php-project", "package", "php", "self-hosted", "session-fixation"]
not_affected_if: ["not-deployed", "other-codebase"]
published_at: "2026-11-03T19:18:04+00:00"
first_seen_at: "2026-11-03T19:44:52+00:00"
updated_at: "2026-11-03T19:46:37+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-121501", "first_seen_at": "2026-11-03T19:44:52+00:00"}, {"source": "analyst", "url": null, "first_seen_at": "2026-11-03T19:46:37+00:00"}]
---

# CloudClassroom-PHP-Project: login page allows session fixation via PHPSESSID

A PHP course-management project's admin login script (loginlinkadmin.php) can be made to accept a session ID chosen by an attacker through the PHPSESSID argument. An attacker who gets a victim to log in with that session ID can then use the same session to act as the victim.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

Open loginlinkadmin.php in your deployment. The upstream master version calls session_start() and sets $_SESSION['umail'] after a successful login, with no session_regenerate_id() call. If yours matches, it is exposed. Also check php.ini: session.use_strict_mode=0 lets PHP accept a client-supplied session ID. Also check any other login scripts in the project (student, faculty) for the same pattern.

## Timeline

- 2026-11-03T19:44:52+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-121501
- 2026-11-03T19:46:37+00:00 analyst — NVD (VulDB CNA) lists CVSS 4.0 vector AV:N/PR:N/UI:P with low C/I/A impact, so it is not a full admin takeover by itself; the 7.5 on the signal is unconfirmed against the vector. The vendor did not respond and no fix exists. I read upstream loginlinkadmin.php on GitHub: no session_regenerate_id after login, which fits fixation. The same file has an unrelated SQL injection (CVE-2025-26198) that already gives admin access without fixation. Nothing marked verified, since there is no vendor advisory. No PoC link found.

## Documents

- [describes] loginlinkadmin.php (master) - CloudClassroom-PHP-Project https://github.com/mathurvishal/CloudClassroom-PHP-Project/blob/master/loginlinkadmin.php
- [mentions] NVD CVE-2026-121501 https://nvd.nist.gov/vuln/detail/CVE-2026-121501

## From the sources

A vulnerability was determined in mathurvishal CloudClassroom-PHP-Project. The affected element is the function session_regenerate_id of the file loginlinkadmin.php. Executing a manipulation of the argument PHPSESSID can lead to session fixiation. The attack can be launched remotely. The exploit has been publicly disclosed and may be utilized. This product does not use versioning. This is why information about affected and unaffected releases are unavailable. The vendor was contacted early about this disclosure but did not respond in any way.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
