Chamilo LMS Unauthenticated SSRF Vulnerability
An unauthenticated server-side request forgery (SSRF) vulnerability exists in Chamilo LMS versions prior to 2.0.0-RC.3, allowing attackers to probe internal network services, access cloud metadata, or trigger state-changing operations on internal services.
CVE search metadata
CVE search record: CVE-2026-34160. Severity: high. CVSS: 8.6. KEV: no. Brief: Chamilo LMS Unauthenticated SSRF Vulnerability. Brief link: https://feed.craftedsignal.io/briefs/2026-04-15-chamilo-ssrf/
Triage facts
Revision 2- Evidence
- Unknown
- Severity
- High
- Sources
- 1 public source
- Freshness
- Revision 2Apr 15, 12:00 UTC
- Detection
- 2 rules · 1 IOC
- Vulnerabilities
- 1 CVE
Revision history 1 entry · Revision 2
- Revision 2
Repaired a legacy canonical identity collision
Changed: slug
Chamilo LMS, an open-source learning management system, is vulnerable to a Server-Side Request Forgery (SSRF) flaw in versions prior to 2.0.0-RC.3. The vulnerability resides within the PENS plugin endpoint at public/plugin/Pens/pens.php, which is accessible without authentication. The package-url parameter is not properly validated, allowing an attacker to specify arbitrary URLs for the server to fetch using curl. This enables unauthenticated attackers to probe internal network services, access cloud metadata endpoints like 169.254.169.254 to potentially steal IAM credentials, and trigger state-changing operations on internal services via callback parameters. The absence of authentication requirements significantly broadens the attack surface. The vulnerability is identified as CVE-2026-34160 and has been fixed in version 2.0.0-RC.3.
Attack Chain
- Attacker identifies a Chamilo LMS instance running a vulnerable version (prior to 2.0.0-RC.3).
- Attacker crafts a malicious HTTP request targeting the
public/plugin/Pens/pens.phpendpoint. - The request includes the
package-urlparameter, set to an internal IP address or cloud metadata endpoint (e.g.,169.254.169.254). - The Chamilo server, using curl, fetches the URL specified in the
package-urlparameter without proper validation. - If targeting an internal service, the attacker probes for open ports and accessible services.
- If targeting a cloud metadata endpoint, the attacker retrieves sensitive information like IAM roles and instance metadata.
- The attacker uses the retrieved IAM credentials to access other cloud resources.
- Alternatively, the attacker manipulates receipt and alerts callback parameters to trigger state-changing operations on internal services.
Impact
Successful exploitation of this SSRF vulnerability allows attackers to gain unauthorized access to internal network resources and sensitive cloud metadata. This can lead to lateral movement within the internal network, data exfiltration of IAM credentials, or compromise of cloud infrastructure. The vulnerability affects all Chamilo LMS instances running versions prior to 2.0.0-RC.3. The impact can range from information disclosure to full compromise of the affected system and associated cloud resources.
Recommendation
- Upgrade Chamilo LMS to version 2.0.0-RC.3 or later to remediate CVE-2026-34160.
- Deploy the Sigma rule
Detect Chamilo LMS SSRF Attempt via Package URLto identify attempts to exploit the SSRF vulnerability by monitoring for requests topublic/plugin/Pens/pens.phpwith suspiciouspackage-urlvalues. - Monitor web server logs for requests to the PENS plugin endpoint (
public/plugin/Pens/pens.php) containing the IP address169.254.169.254in thepackage-urlparameter to detect access attempts to cloud metadata endpoints. - Implement network segmentation and restrict access to internal services from the Chamilo LMS server to limit the impact of potential SSRF attacks.
Detection coverage 2
Detect Chamilo LMS SSRF Attempt via Package URL
highDetects potential SSRF attempts in Chamilo LMS by monitoring the package-url parameter for suspicious values like internal IP addresses or cloud metadata endpoints.
Detect Chamilo LMS PENS Plugin Access
lowDetects access to the Chamilo LMS PENS plugin endpoint. This rule can be used in conjunction with other rules to identify potential SSRF exploitation attempts.
Detection queries are available on the platform. Get full rules →
Indicators of compromise
1
ip
| Type | Value |
|---|---|
| ip | 169.254.169.254 |