
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-34160 is an unauthenticated Server-Side Request Forgery (SSRF) vulnerability in the PENS (Package Exchange Notification Services) plugin of Chamilo LMS. The vulnerable endpoint at public/plugin/Pens/pens.php accepts a user-controlled package-url parameter and fetches it via curl without filtering private or internal IP addresses, requiring no authentication to exploit. Affected versions include all Chamilo LMS releases up to and including 1.11.38, as well as 2.0.0-alpha1 through 2.0.0-RC.2; the issue was fixed in version 2.0.0-RC.3. It carries a CVSS v3.1 base score of 8.6 (High) (GitHub Advisory).
The root cause is a combination of missing authentication for a critical function (CWE-306) and improper SSRF controls (CWE-918) in public/plugin/Pens/lib/PensProcessor.php. The original isAllowedDownloadUrl() and isAllowedCallbackUrl() methods only validated URL scheme and host presence but did not block private or reserved IP ranges, allowing any URL — including http://169.254.169.254/ — to be fetched by the server's curl client. Additionally, the receipt and alerts callback parameters cause the server to issue POST requests to attacker-specified URLs, enabling state-changing interactions with internal services. The fix (commit de4058d) replaced the permissive validation logic with a stricter isAllowedRemoteUrl() function that blocks private and reserved IP ranges for both download and callback URLs (GitHub Commit, GitHub Advisory).
Successful exploitation allows an unauthenticated attacker to perform internal network reconnaissance by probing services such as databases, admin panels, and internal APIs through timing and error-based side channels. In cloud-hosted deployments (AWS, GCP, Azure), attackers can reach the instance metadata service at 169.254.169.254 to steal IAM credentials, instance identity tokens, and other sensitive metadata, potentially leading to full cloud account compromise. The callback SSRF vectors via receipt and alerts parameters can additionally trigger state-changing POST requests to internal services, extending the impact beyond information disclosure (GitHub Advisory).
No public proof-of-concept exploit code was known at the time of initial disclosure, though a GitHub repository (github.com/romain-deperne/CVE-2026-34160) attributed to the reporter appeared shortly after disclosure, suggesting PoC code may now be publicly available. There is no confirmed evidence of in-the-wild exploitation, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.05%, reflecting low but non-zero exploitation probability. The zero-authentication requirement and broad version impact significantly lower the barrier for exploitation (GitHub Advisory, Feedly).
https://<target>/public/plugin/Pens/pens.php without any authentication challenge.package-url parameter pointing to the cloud metadata service, e.g.:GET /public/plugin/Pens/pens.php?package-url=http://169.254.169.254/latest/meta-data/iam/security-credentials/package-url parameter, using response timing differences to infer open ports.receipt or alerts parameters to trigger POST requests to internal services, potentially modifying state or triggering actions on unauthenticated internal APIs (GitHub Advisory).169.254.169.254 or other RFC-1918 addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16); unusual curl-initiated connections to internal hosts or metadata endpoints originating from the web server process./public/plugin/Pens/pens.php with package-url, receipt, or alerts parameters containing internal IP addresses or metadata service URLs; PHP error logs referencing [Pens][collectPackage] download url rejected (indicating blocked attempts post-patch, or absence of this message indicating pre-patch exploitation).Upgrade Chamilo LMS to version 2.0.0-RC.3 or later, which refactors URL validation in PensProcessor.php to block private and reserved IP ranges for both download and callback URLs (GitHub Release, GitHub Commit). All versions through 1.11.38 and 2.0.0-alpha1 through 2.0.0-RC.2 are affected and require patching. As an interim workaround, implement network-level egress filtering on the LMS server to block outbound connections to RFC-1918 addresses and the link-local range 169.254.0.0/16, and consider restricting access to the PENS plugin endpoint via web server configuration if the feature is not in use (GitHub Advisory).
The vulnerability was reported by researcher romain-deperne and published via GitHub Security Advisories by Chamilo maintainer ywarnier on April 14, 2026. The Hacker Wire covered the disclosure with a dedicated article on the unauthenticated SSRF (The Hacker Wire). No significant vendor statements beyond the GitHub advisory or notable social media debate have been identified.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."