CVE-2026-55599
Analyzed Analyzed - Analysis Complete

SSRF in phpseclib via Untrusted X.509 Certificate

Vulnerability report for CVE-2026-55599, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-06-22

Last updated on: 2026-06-26

Assigner: GitHub, Inc.

Description

phpseclib is a PHP secure communications library. From 0.1.1 until 1.0.30, 2.0.55, and 3.0.54, when an application validates an untrusted X.509 certificate with phpseclib, X509::validateSignature() reads a URL out of that certificate's Authority Information Access (AIA) extension and connects to it. Attacker who supplies certificate fully controls host, port, and path of that connection. URL fetching is enabled by default, and no destination is blocked. An unauthenticated attacker can therefore make a validating server open connections to internal hosts and ports it should never reach, for example loopback 127.0.0.1, cloud metadata address 169.254.169.254, and internal-only services. This is a server-side request forgery (SSRF) caused by an insecure default. This vulnerability is fixed in 1.0.30, 2.0.55, and 3.0.54.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-06-22
Last Modified
2026-06-26
Generated
2026-07-13
AI Q&A
2026-06-23
EPSS Evaluated
2026-07-12
NVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
phpseclib phpseclib From 0.1.1 (inc) to 1.0.30 (exc)
phpseclib phpseclib From 2.0.0 (inc) to 2.0.55 (exc)
phpseclib phpseclib From 3.0.0 (inc) to 3.0.54 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-918 The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability exists in the phpseclib PHP secure communications library versions from 0.1.1 up to 1.0.30, 2.0.55, and 3.0.54. When an application uses phpseclib to validate an untrusted X.509 certificate, the function X509::validateSignature() reads a URL from the certificate's Authority Information Access (AIA) extension and connects to it.

Because the attacker fully controls the host, port, and path of this URL, and URL fetching is enabled by default without any destination blocking, an unauthenticated attacker can cause the validating server to open connections to internal hosts and ports it should never reach. This includes sensitive internal addresses like loopback (127.0.0.1), cloud metadata services (169.254.169.254), and other internal-only services.

This behavior results in a server-side request forgery (SSRF) vulnerability caused by an insecure default configuration. The issue has been fixed in versions 1.0.30, 2.0.55, and 3.0.54.

Impact Analysis

This vulnerability can allow an unauthenticated attacker to make your server initiate unauthorized network connections to internal systems and services that should be inaccessible externally.

Such unauthorized connections can lead to exposure of sensitive internal resources, potential data leakage, or further exploitation of internal services that are normally protected by network boundaries.

Because the attacker controls the destination of these connections, they could target critical internal infrastructure such as loopback interfaces, cloud metadata endpoints, or other internal-only services, potentially compromising the security and integrity of your environment.

Mitigation Strategies

To mitigate this vulnerability, upgrade phpseclib to version 1.0.30, 2.0.55, or 3.0.54 or later, where the issue is fixed.

Detection Guidance

This vulnerability involves phpseclib making outbound connections to URLs extracted from untrusted X.509 certificates' Authority Information Access (AIA) extensions. Detection can focus on monitoring unexpected outbound network connections initiated by the vulnerable application, especially to internal IP addresses such as 127.0.0.1 or 169.254.169.254.

You can detect exploitation attempts by capturing and analyzing network traffic for unusual outbound requests from the server running phpseclib.

  • Use network monitoring tools like tcpdump or Wireshark to capture outbound traffic on the server: tcpdump -i <interface> host 127.0.0.1 or tcpdump -i <interface> host 169.254.169.254
  • Check application logs for unexpected outbound HTTP/HTTPS requests triggered during certificate validation.
  • Use system-level tools like netstat or ss to identify active outbound connections from the phpseclib process: netstat -plant | grep php or ss -plant | grep php
  • If possible, enable verbose or debug logging in phpseclib or the application using it to log URL fetch attempts during X.509 certificate validation.
Compliance Impact

The vulnerability allows an attacker to cause server-side request forgery (SSRF) by making the server connect to internal hosts and services it should not access. This can lead to unauthorized internal reconnaissance and potential exposure of internal network structure.

While the vulnerability itself does not directly disclose sensitive data, the ability to interact with internal services could indirectly impact compliance with standards like GDPR or HIPAA by increasing the risk of unauthorized access or data breaches within internal systems.

Organizations relying on phpseclib for X.509 certificate validation should consider this vulnerability as a risk factor for their security posture and compliance requirements, and apply the recommended fixes to mitigate SSRF risks.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-55599. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart