CVE-2026-55599: phpseclib SSRF in X.509 certificate validation

CVE-2026-55599 · Severity: medium · CVSS 5.8 · Published 2026-06-22

phpseclib is a widely used PHP library for secure communications and handling digital certificates. A vulnerability exists where the library automatically attempts to connect to web addresses found inside untrusted security certificates during the validation process. An attacker can provide a specially crafted certificate to force the server into making unauthorized requests to internal systems, such as private databases, cloud management interfaces, or local services, potentially exposing internal network structure or sensitive metadata.

Technologies: phpseclib/phpseclib (Packagist), Phpseclib. Vendors: Packagist, Phpseclib.

Quick answers

Is CVE-2026-55599 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-55599 being exploited in the wild.
How severe is CVE-2026-55599?
Medium severity, with a CVSS score of 5.8, published 22 June 2026.
Which products and versions are affected?
phpseclib/phpseclib (Packagist) ECOSYSTEM:introduced=0.1.1,fixed=1.0.30; Phpseclib >= 0.1.1, < 1.0.30; >= 2.0.0, < 2.0.55; >= 3.0.0, < 3.0.54.
Is there a fix for CVE-2026-55599?
Yes. phpseclib/phpseclib (Packagist): upgrade to 1.0.30 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-55599 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-55599?
Check whether you run phpseclib/phpseclib (Packagist) or Phpseclib at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • phpseclib/phpseclib (Packagist): upgrade to 1.0.30 or later
    composer require phpseclib/phpseclib:^1.0.30

Technical details

A Server-Side Request Forgery (SSRF) vulnerability exists in phpseclib's X.509 certificate validation logic. When `X509::validateSignature()` processes a certificate whose issuer is not in the trust store, it performs 'AIA chasing' by default. The `testForIntermediate()` method extracts a URL from the `id-ad-caIssuers` field of the Authority Information Access (AIA) extension and passes it to `fetchURL()`. Because `fetchURL()` uses `fsockopen()` without validating the destination, an unauthenticated attacker providing a malicious certificate can force the server to initiate TCP connections to arbitrary hosts and ports, including loopback (127.0.0.1) and cloud metadata services (169.254.169.254). While the attack is 'blind' (the response body is only used if it parses as a valid certificate), it allows for internal port scanning and exploitation of internal services. The issue is addressed in versions 1.0.30, 2.0.55, and 3.0.54 by restricting or disabling this default behavior.

Affected products

  • phpseclib phpseclib >= 0.1.1, < 1.0.30; >= 2.0.0, < 2.0.55; >= 3.0.0, < 3.0.54

Identifiers

  • CVE-2026-55599
  • GHSA-m557-wrgg-6rp4

Timeline

  • 2026-06-14: advisory: GitHub Security Advisory published by maintainer
  • 2026-06-22: disclosed: CVE published to NVD

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.