☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L 🐛 CWE-918
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2023-40148

CVE-2023-40148 Server-Side Request Forgery in Pingidentity
📅 PUBLISHED: 2024-04-10 00:03 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.13%
👁️
0.13% probability
3.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: L Availability Low
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-40148 is a Server-Side Request Forgery (SSRF) vulnerability in PingFederate, an identity federation and single sign-on (SSO) product. The flaw allows an unauthenticated attacker to send forged HTTP POST requests from the PingFederate server, enabling them to attack internal network resources and consume server-side resources. This can lead to internal network reconnaissance, denial of service, and potential lateral movement within the environment. The vulnerability has a CVSS score of 6.5 (Medium) and is currently unpatched according to available data. No public proof-of-concept (PoC) or exploit code has been released.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Score: 6.5 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L
  • Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
  • Attack Complexity (AC): Low – No special conditions or complex attack sequences are required.
  • Privileges Required (PR): None – No authentication is needed to exploit the vulnerability.
  • User Interaction (UI): None – The attacker does not need to trick a legitimate user.
  • Scope (S): Unchanged – The exploitation does not affect other components beyond the vulnerable PingFederate server.
  • Confidentiality Impact (C): Low – Limited information disclosure (e.g., internal network mapping).
  • Integrity Impact (I): None – No data modification is possible.
  • Availability Impact (A): Low – Server-side resource consumption may cause limited denial of service.

Threat Level: Medium. While the CVSS score is moderate, the SSRF nature of the vulnerability can be a stepping stone for more severe attacks, especially in cloud or hybrid environments where internal services are exposed.

Deep Dive & Mechanics

The vulnerability resides in how PingFederate handles HTTP POST requests. An unauthenticated attacker can craft a malicious POST request that causes the PingFederate server to initiate outbound HTTP connections to arbitrary destinations. This is a classic SSRF flaw.

Attack Flow:

  1. The attacker sends a specially crafted HTTP POST request to a vulnerable endpoint in PingFederate.
  2. The server processes the request and, due to insufficient validation of user-supplied URLs or parameters, makes an outbound HTTP request to a target specified by the attacker.
  3. The attacker can target internal IP addresses (e.g., 10.0.0.1, 192.168.1.1) or cloud metadata endpoints (e.g., 169.254.169.254) to probe internal services.
  4. The server’s response may leak information about the internal network, or the attacker can cause resource exhaustion by making the server send many requests.

Root Cause: Lack of proper input validation and URL whitelisting in the HTTP client implementation used by PingFederate. The server does not restrict the destination of outbound HTTP requests initiated by user input.

Vulnerable vs. Patched Code

Since no official patch or source code diff is available, the following is a hypothetical comparison based on typical SSRF fixes.

Vulnerable Code (Conceptual):

# Vulnerable: No validation of the target URL
def handle_post_request(request):
    target_url = request.form['url']
    response = requests.post(target_url, data=request.form['data'])
    return response.text

Patched Code (Conceptual):

# Patched: Validate and restrict the target URL
ALLOWED_HOSTS = ['api.example.com', 'trusted.internal']

def handle_post_request(request):
    target_url = request.form['url']
    parsed_url = urlparse(target_url)
    if parsed_url.hostname not in ALLOWED_HOSTS:
        return "Forbidden", 403
    response = requests.post(target_url, data=request.form['data'])
    return response.text

The patched version implements a whitelist of allowed hosts and rejects any request targeting an unapproved destination.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  • Target: PingFederate instance (version vulnerable to CVE-2023-40148)
  • Attacker: Kali Linux machine
  • Internal target: A simple HTTP server on a private IP (e.g., 10.0.0.5:8080) to simulate internal resource

Exploitation Steps:

  1. Identify the vulnerable endpoint (e.g., /pf/SSRF – hypothetical).
  2. Craft a POST request using curl:
    curl -X POST https://target.pingfederate.com/pf/SSRF \
      -d "url=http://10.0.0.5:8080/internal&data=test"
    
  3. Observe the response from the internal server, confirming SSRF.
  4. For resource exhaustion, send multiple requests in a loop:
    for i in {1..100}; do
      curl -X POST https://target.pingfederate.com/pf/SSRF \
        -d "url=http://10.0.0.5:8080/slow&data=test" &
    done
    

Blue Team (Defensive)

Detection:

  • Monitor outbound HTTP connections from PingFederate servers to unexpected internal IPs.
  • Look for spikes in server resource usage (CPU, memory) correlated with POST requests.
  • Analyze logs for requests containing suspicious url parameters pointing to private IP ranges.

Mitigation:

  • Implement network segmentation to restrict PingFederate’s outbound access.
  • Use a web application firewall (WAF) to block requests with private IPs in the url parameter.
  • Apply virtual patching if an official patch is not yet available.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests from PingFederate to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
    • Repeated POST requests to the same endpoint with varying url parameters
    • Connections to cloud metadata IPs (169.254.169.254)
  • Log IOCs:
    • Log entries showing url parameter containing internal IPs
    • Error logs indicating connection timeouts to internal hosts
  • System IOCs:
    • High CPU or memory usage on PingFederate server without legitimate cause
    • Unusual outbound network connections from the PingFederate process

Detection Engineering

YARA Rule

rule CVE_2023_40148_SSRF_PingFederate {
    meta:
        description = "Detects SSRF attempts targeting CVE-2023-40148 in PingFederate logs"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-40148"
    strings:
        $url_param = "url=" nocase
        $private_ip = /(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[0-1])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})/
        $post_method = "POST" nocase
    condition:
        $post_method and $url_param and $private_ip
}

Sigma Rule

title: CVE-2023-40148 SSRF Attempt on PingFederate
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects HTTP POST requests to PingFederate with internal IP addresses in the url parameter
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-40148
logsource:
    category: webserver
    product: pingfederate
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'url='
        cs-uri-query|contains|all:
            - '10.'
            - '172.'
            - '192.168.'
    condition: selection
falsepositives:
    - Legitimate internal API calls if allowed
level: high

Suricata Rule

alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"CVE-2023-40148 SSRF Attempt on PingFederate"; flow:to_server; content:"POST"; http_method; content:"url="; http_client_body; pcre:"/(10\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.(1[6-9]|2[0-9]|3[0-1])\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3})/"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Network Segmentation: Restrict outbound HTTP access from PingFederate servers to only trusted destinations using firewall rules.
  2. WAF Rules: Deploy a web application firewall to block POST requests containing private IP addresses in the url parameter.
  3. Monitor: Enable detailed logging and monitor for SSRF patterns.

Long-term Fix:

  • Apply the official patch from PingIdentity when it becomes available.
  • Implement input validation and URL whitelisting in the application code.
  • Conduct a security review of all HTTP client implementations in PingFederate.

Workaround:

  • If patching is not possible, disable the vulnerable endpoint or restrict access to it via IP whitelisting.

Valters IT
DevSecOps & Cyber Threat Intelligence Expert

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

PingFederate
PingFederate http

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-40148/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.