Skip to main content

PILOS CVE-2025-62523

MEDIUM
Permissive Cross-domain Security Policy with Untrusted Domains (CWE-942)
2025-10-27 security-advisories@github.com
6.3
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Lure victim to attacker site
  2. Delivery
    Browser sends credentialed cross-origin API request
  3. Exploit
    Origin reflected in ACAO header
  4. Execution
    Laravel session-origin check blocks authentication
  5. Impact
    Exploitation fails in default config

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A02:2025 - Security Misconfiguration
ASVS 5.0
V13 - Configuration CORS policy restriction
Exploitation Conditions

Requires a logged-in PILOS user (version before 4.8.0) to actively visit an attacker-controlled web page in the same browser session (UI:R), which then issues credentialed cross-origin requests to the victim's PILOS API endpoints (api/*, sanctum/csrf-cookie). The pre-4.8.0 config/cors.php set allowed_origins to '*' with supports_credentials true, and the HandleCors middleware reflected the Origin header. The decisive LIMITING factor is Laravel's built-in session-origin validation, which refuses to treat cross-origin requests as authenticated by default - meaning successful exploitation would additionally require a separate, currently-unknown vulnerability that bypasses Laravel's origin/session checks. Without that, the misconfiguration does not yield credentialed access.

Impact

This is a high-CVSS-on-paper but low-real-risk issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L, score 6.3) describes a network-reachable, low-complexity, unauthenticated flaw requiring user interaction with only partial confidentiality/integrity/availability impact. However, every corroborating signal points to low practical risk: EPSS is just 0.20% (9th percentile), the CVE is NOT in CISA KEV, and no public exploit code was identified. Most importantly, the vendor's own GitHub advisory (GHSA-pgfw-f4mp-5445) explicitly states that Laravel's session handling applies origin checks that prevent cross-origin requests from being authenticated by default, so the reflected-Origin CORS misconfiguration 'is not believed to be exploitable in typical PILOS deployments' absent some other unknown bypass. This is a conflict worth stating explicitly: the CVSS base metrics assume the CORS weakness translates into real credentialed cross-origin actions, but the framework-level session-origin protection breaks that assumption, making the C:L/I:L/A:L impacts largely theoretical. There is no SSVC decision data in the input. Net assessment: defense-in-depth hardening fix, not an urgent priority; patch during normal maintenance cycles.

Exploit ScenarioDerived

An attacker lures an authenticated PILOS user to a malicious website, which issues cross-origin fetch requests (with credentials) to the victim's PILOS API, hoping the reflected Access-Control-Allow-Origin plus Access-Control-Allow-Credentials:true lets the browser read authenticated responses or perform actions as the victim. In practice Laravel's session-origin checks reject these cross-origin requests as unauthenticated, so the attack does not succeed in default deployments. No public exploit code was identified at the time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
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 08, 2026

PILOS versions before 4.8.0 shipped a permissive CORS configuration that reflected the caller's Origin header back in Access-Control-Allow-Origin while setting Access-Control-Allow-Credentials to true, nominally exposing the api/* and sanctum/csrf-cookie endpoints to credentialed cross-origin requests from any website. An attacker who persuades a logged-in PILOS user to open a malicious page could have that page attempt credentialed requests against the victim's PILOS API (unauthenticated from a network standpoint per the PR:N vector, but requiring user interaction). There is no public exploit code identified at time of analysis and the CVE is not in CISA KEV; EPSS is 0.20% (9th percentile), and because Laravel's built-in session-origin validation refuses to treat cross-origin requests as authenticated by default, the misconfiguration is not exploitable in typical deployments without an additional unknown bypass, making this a high-score-on-paper but low-real-risk issue.

RemediationAI

Vendor-released patch: PILOS 4.8.0 (upstream commit 14655bc4f8128ffd2b3c25004b01d9a802808da8, PR #2519); upgrade all instances below 4.8.0 and redeploy the container image so the new nginx security-header snippet and hardened php.ini are picked up. The patch works by removing Laravel's HandleCors middleware from app/Http/Kernel.php and deleting config/cors.php, so no CORS response headers are emitted for api/* or sanctum/csrf-cookie; if you maintain a customized fork, apply those two edits rather than only editing allowed_origins, and note that any legitimate first-party SPA or integration relying on cross-origin API calls will stop working once the headers disappear, so re-add a narrow explicit origin whitelist (never '*' with supports_credentials) for those consumers. As a compensating control for systems that cannot upgrade immediately, strip or override Access-Control-Allow-Origin and Access-Control-Allow-Credentials at the reverse proxy for /api and /sanctum/csrf-cookie rather than leaving the reflected values; the trade-off is broken cross-origin frontends, and it does not address the underlying middleware. Additional hardening in the same release - session regeneration on password change, X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy strict-origin-when-cross-origin, and removal of the PHP version banner - is worth adopting even on otherwise-patched forks. Because Laravel's session-origin checks already prevent cross-origin requests from being authenticated by default, patching is prudent hygiene rather than emergency response; consult the advisory at https://github.com/THM-Health/PILOS/security/advisories/GHSA-pgfw-f4mp-5445 for the vendor's authoritative guidance.

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

PILOS is a PHP/Laravel frontend and management platform for BigBlueButton. The flaw is a classic CWE-942 permissive cross-domain policy: the application registered Laravel's \Illuminate\Http\Middleware\HandleCors middleware and shipped a config/cors.php file declaring paths ['api/*','sanctum/csrf-cookie'], allowed_methods ['*'], allowed_origins ['*'], allowed_headers ['*'], and supports_credentials => true. With an unrestricted origin list plus credential support, Laravel's CORS handling echoes the request's Origin header into Access-Control-Allow-Origin, which in a browser is the precondition for reading responses to credentialed cross-origin requests. The decisive mitigating control is Laravel's own session-origin/CSRF protection: sessions are not treated as authenticated for cross-origin requests by default, so an attacker page cannot simply piggyback on the victim's authenticated session without an additional, currently unidentified vulnerability that bypasses those checks. The upstream fix (commit 14655bc4f8128ffd2b3c25004b01d9a802808da8, PR #2519) removes the HandleCors middleware from app/Http/Kernel.php entirely, deletes config/cors.php, regenerates the session on password change, and hardens nginx/PHP defaults with X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy strict-origin-when-cross-origin, X-XSS-Protection 0, and removal of the PHP version header. The affected CPE is cpe:2.3:a:thm:pilos:*:*:*:*:*:*:*:* (all releases prior to 4.8.0).

Know when Pilos 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 (github) PRIMARY 6.3 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
vuln.today AI 4.2 MEDIUM

Network CORS flaw (AV:N) but requires victim interaction (UI:R) and, per vendor, a further bypass of Laravel session-origin checks to achieve impact, so AC:H; no availability impact (A:N).

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

DescriptionCVE.org

PILOS (Platform for Interactive Live-Online Seminars) is a frontend for BigBlueButton. PILOS before 4.8.0 includes a Cross-Origin Resource Sharing (CORS) misconfiguration in its middleware: it reflects the Origin request header back in the Access-Control-Allow-Origin response header without proper validation or a whitelist, while Access-Control-Allow-Credentials is set to true. This behavior could allow a malicious website on a different origin to send requests (including credentials) to the PILOS API. This may enable exfiltration or actions using the victim’s credentials if the server accepts those cross-origin requests as authenticated. Laravel’s session handling applies additional origin checks such that cross-origin requests are not authenticated by default. Because of these session-origin protections, and in the absence of any other unknown vulnerabilities that would bypass Laravel’s origin/session checks, this reflected-Origin CORS misconfiguration is not believed to be exploitable in typical PILOS deployments. This vulnerability has been patched in PILOS in v4.8.0

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche academic e-learning BigBlueButton frontend, limited institutional footprint
Data Quality
4 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Affected Products (CPE)CVE.org

cpe:2.3:a:thm:pilos:*:*:*:*:*:*:*:*

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