GHSA-9wrw-p9rm-r782

Suggest an improvement
Source
https://github.com/advisories/GHSA-9wrw-p9rm-r782
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/05/GHSA-9wrw-p9rm-r782/GHSA-9wrw-p9rm-r782.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-9wrw-p9rm-r782
Published
2024-05-17T23:06:54Z
Modified
2024-12-02T05:50:14.504789Z
Summary
onelogin/php-saml Improper signature validation on LogoutRequest/LogoutResponse.
Details

In order to verify Signatures on Logoutrequests and LogoutResponses we use the verifySignature of the class XMLSecurityKey from the xmlseclibs library. That method end up calling openssl_verify() depending on the signature algorithm used.

The openssl_verify() function returns 1 when the signature was successfully verified, 0 if it failed to verify with the given key, and -1 in case an error occurs. PHP allows translating numerical values to boolean implicitly, with the following correspondences: - 0 equals false. - Non-zero equals true.

This means that an implicit conversion to boolean of the values returned by openssl_verify() will convert an error state, signaled by the value -1, to a successful verification of the signature (represented by the boolean true).

The LogoutRequest/LogoutResponse signature validator was performing an implicit conversion to boolean of the values returned by the verify() method, which subsequently will return the same output as openssl_verify() under most circumstances. This means an error during signature verification is treated as a successful verification by the method.

Since the signature validation of SAMLResponses were not affected, the impact of this security vulnerability is lower, but an update of the php-saml toolkit is recommended.

Database specific
{
    "nvd_published_at": null,
    "cwe_ids": [],
    "severity": "LOW",
    "github_reviewed": true,
    "github_reviewed_at": "2024-05-17T23:06:54Z"
}
References

Affected packages

Packagist / onelogin/php-saml

Package

Name
onelogin/php-saml
Purl
pkg:composer/onelogin/php-saml

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
2.10.4

Affected versions

2.*

2.0.0
2.1.0
2.3.0
2.4.0
2.5.0
2.6.0
2.6.1
2.7.0
2.8.0
2.9.0
2.9.1
2.10.0
2.10.1
2.10.2
2.10.3