CVE-2025-68696
High · 8.2CVSS
8.2
EPSS
0.3%
Published
Dec 23, 2025
CISA due date
—
Cloudanix analysis
Some applications using this software could be tricked into fetching private internal resources and exposing secrets that should not be reachable from the internet.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- SSRF
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
HTTParty versions 0.23.2 and earlier can be abused for server-side request forgery when an application passes attacker-controlled URLs, hosts, redirects, or request options into HTTParty without enforcing a strict destination policy. An unauthenticated remote attacker may cause the vulnerable application server to initiate HTTP requests to arbitrary destinations, including loopback interfaces, private network ranges, cloud instance metadata services, and internal administrative endpoints. The primary technical risk is confidentiality loss through retrieval of internal-only resources, metadata credentials, API keys, or service tokens; limited integrity impact is also possible if reachable internal services accept state-changing HTTP requests.
Why it matters to the business
Applications using affected HTTParty versions may unintentionally become a proxy into private infrastructure. This can expose cloud credentials, API keys, internal service responses, or administrative interfaces that are not reachable from the public internet, potentially leading to data exposure, unauthorized cloud access, lateral movement, or abuse of trusted backend connectivity. The CVSS score is high at 8.2 because exploitation can be remote, unauthenticated, and low complexity, although the current EPSS value is low and the issue is not listed in CISA KEV, indicating limited public exploitation signal at this time. Because HTTParty is a common Ruby HTTP client library, the practical exposure depends on whether applications use it with user-supplied URLs or redirect targets.
How an attack unfolds
An attacker first identifies application functionality that causes the server to fetch a URL or make an outbound HTTP request, such as webhooks, URL previews, import-from-URL features, integrations, callbacks, proxy endpoints, or file ingestion workflows. The attacker supplies a URL pointing to a sensitive internal destination rather than an expected external service. If the application uses a vulnerable HTTParty version and does not validate or restrict the destination, the server performs the request from its own network position. The attacker then observes returned content, response timing, error messages, or side effects to infer reachable internal services. In a cloud environment, the attacker may target metadata endpoints to obtain temporary credentials or service-account tokens. If credentials or internal API responses are exposed, the attacker can use them to access additional services, enumerate permissions, retrieve sensitive data, or make further internal requests. No named threat actors or active ransomware use are currently associated with this issue in the provided intelligence.
How to fix it
Upgrade HTTParty to a version that includes commit 0529bcd6309c9fd9bfdd50ae211843b10054c240, or apply the upstream patch if consuming the library directly from Git. Treat all versions 0.23.2 and earlier as affected. In addition to upgrading, enforce application-level SSRF defenses: allow only approved URL schemes such as https; use a strict allowlist of expected domains; resolve and validate hostnames before connecting; block loopback, link-local, private, multicast, and reserved IP ranges; prevent DNS rebinding by validating the final resolved address at connection time; disable or tightly control redirects; strip user-supplied request headers that could affect routing; and place egress controls around application workloads. In cloud environments, require metadata service protections such as IMDSv2 where applicable and restrict workloads from reaching metadata endpoints unless explicitly needed.
How to confirm the fix worked
Confirm dependency remediation by reviewing Gemfile.lock, dependency manifests, container images, vendored source, and software composition analysis results to ensure HTTParty is no longer at version 0.23.2 or earlier and, for Git-based consumption, includes commit 0529bcd6309c9fd9bfdd50ae211843b10054c240. Exercise application features that accept URLs and verify that requests to localhost, 127.0.0.1, ::1, RFC1918 private ranges, link-local addresses, cloud metadata endpoints, and unapproved internal hostnames are rejected before any outbound connection occurs. Test redirect handling to ensure a permitted initial URL cannot redirect to a blocked destination. Review outbound firewall, proxy, or service-mesh logs to confirm denied attempts are logged and that application workloads cannot reach prohibited internal or metadata addresses.
Typical attack path
- Find an internet-facing feature that accepts a URL, host, callback, webhook, redirect, or import source.
- Submit a crafted URL targeting loopback, private IP ranges, link-local metadata services, or internal DNS names.
- Cause the vulnerable application to issue the outbound request through HTTParty.
- Collect the response directly, or infer success through errors, timing differences, DNS callbacks, or outbound interaction logs.
- Use retrieved metadata, API keys, tokens, or internal service responses to expand access or perform additional unauthorized actions.
- Repeat requests to enumerate internal network services or target sensitive administrative endpoints.
How to detect it
To determine whether exploitation already occurred, review logs from application servers, reverse proxies, outbound proxies, service meshes, DNS resolvers, cloud network flow logs, WAFs, and cloud audit services. Focus on application features that accept user-provided URLs, webhook endpoints, preview/import functions, and integration callbacks. Look for outbound requests from application workloads to loopback addresses, private RFC1918 ranges, link-local metadata addresses, internal hostnames, nonstandard ports, or URLs embedded in parameters where external URLs are expected. Correlate suspicious inbound requests containing metadata or internal destinations with immediate outbound connections from the application tier. In cloud environments, examine metadata service access logs where available and audit logs for unusual use of temporary credentials issued to application roles after suspicious requests. Also investigate DNS queries for internal names or metadata hostnames that originated from web application processes. Because this is an SSRF class issue, there may be no single exploit string; detection is strongest when correlating user-controlled URL parameters with unexpected outbound traffic to sensitive destinations.
- 169.254.169.254
- http://169.254.169.254/latest/meta-data/
- http://169.254.169.254/latest/user-data/
- http://169.254.169.254/latest/api/token
- metadata.google.internal
- http://metadata.google.internal/computeMetadata/v1/
- Metadata-Flavor: Google
- 169.254.169.254/metadata/instance
- Metadata: true
- 100.100.100.200
- http://100.100.100.200/latest/meta-data/
- 127.0.0.1
- http://127.0.0.1
- localhost
- http://localhost
- ::1
- http://[::1]
- 0.0.0.0
- 10.
- 172.16.
- 172.17.
- 172.18.
- 172.19.
- 172.20.
- 172.21.
- 172.22.
- 172.23.
- 172.24.
- 172.25.
- 172.26.
- 172.27.
- 172.28.
- 172.29.
- 172.30.
- 172.31.
- 192.168.
- file://
- gopher://
- dict://
What your security team should do
- Inventory Ruby applications and services that depend on HTTParty, including transitive, vendored, containerized, and Git-sourced copies.
- Prioritize remediation for internet-facing applications and any feature that accepts user-controlled URLs, webhooks, callbacks, imports, or remote resource fetches.
- Upgrade HTTParty beyond affected versions or ensure the source includes commit 0529bcd6309c9fd9bfdd50ae211843b10054c240.
- Add centralized SSRF guardrails, including URL allowlisting, blocked network ranges, redirect validation, DNS rebinding protection, and default-deny egress policies.
- Harden cloud metadata access and rotate credentials if logs show attempted or successful access to metadata endpoints through affected applications.
- Search historical application, proxy, DNS, WAF, and cloud audit logs for SSRF patterns targeting internal IP ranges, localhost, and metadata services.
- Add regression tests for all URL-fetching features so blocked destinations remain blocked after future dependency or framework changes.
The record
httparty is an API tool. In versions 0.23.2 and prior, httparty is vulnerable to SSRF. This issue can pose a risk of leaking API keys, and it can also allow third parties to issue requests to internal servers. This issue has been patched via commit 0529bcd.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | httparty | 0 | 0.24.0 |
| Chainguard | gitlab-rails-ce-18.1 | 0 | 18.1.6-r3 |
| Chainguard | gitlab-rails-ce-18.2 | 0 | 18.2.8-r3 |
| Chainguard | gitlab-rails-ce-18.3 | 0 | 18.3.6-r2 |
| Chainguard | gitlab-rails-ce-18.4 | 0 | 18.4.6-r1 |
| Chainguard | gitlab-rails-ce-18.5 | 0 | 18.5.5-r0 |
| Chainguard | gitlab-rails-ce-18.6 | 0 | 18.6.3-r0 |
| Chainguard | gitlab-rails-ce-18.7 | 0 | 18.7.1-r0 |
| Chainguard | gitlab-rails-ce-assets-18.1 | 0 | 18.1.6-r2 |
| Chainguard | gitlab-rails-ce-assets-18.2 | 0 | 18.2.8-r3 |
| Chainguard | gitlab-rails-ce-assets-18.3 | 0 | 18.3.6-r1 |
| Chainguard | gitlab-rails-ce-assets-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-rails-ce-assets-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-rails-ce-assets-18.6 | 0 | 18.6.2-r1 |
| Chainguard | gitlab-rails-ce-assets-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-rails-ce-assets-fips-18.1 | 0 | 18.1.6-r4 |
| Chainguard | gitlab-rails-ce-assets-fips-18.2 | 0 | 18.2.8-r3 |
| Chainguard | gitlab-rails-ce-assets-fips-18.3 | 0 | 18.3.6-r1 |
| Chainguard | gitlab-rails-ce-assets-fips-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-rails-ce-assets-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-rails-ce-assets-fips-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-rails-ce-assets-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-rails-ce-doc-18.1 | 0 | 18.1.6-r2 |
| Chainguard | gitlab-rails-ce-doc-18.2 | 0 | 18.2.8-r3 |
| Chainguard | gitlab-rails-ce-doc-18.3 | 0 | 18.3.6-r1 |
| Chainguard | gitlab-rails-ce-doc-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-rails-ce-doc-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-rails-ce-doc-18.6 | 0 | 18.6.2-r1 |
| Chainguard | gitlab-rails-ce-doc-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-rails-ce-doc-fips-18.1 | 0 | 18.1.6-r4 |
| Chainguard | gitlab-rails-ce-doc-fips-18.2 | 0 | 18.2.8-r3 |
| Chainguard | gitlab-rails-ce-doc-fips-18.3 | 0 | 18.3.6-r1 |
| Chainguard | gitlab-rails-ce-doc-fips-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-rails-ce-doc-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-rails-ce-doc-fips-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-rails-ce-doc-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-rails-ce-fips-18.1 | 0 | 18.1.6-r4 |
| Chainguard | gitlab-rails-ce-fips-18.2 | 0 | 18.2.8-r4 |
| Chainguard | gitlab-rails-ce-fips-18.3 | 0 | 18.3.6-r2 |
| Chainguard | gitlab-rails-ce-fips-18.4 | 0 | 18.4.6-r1 |
| Chainguard | gitlab-rails-ce-fips-18.5 | 0 | 18.5.5-r0 |
| Chainguard | gitlab-rails-ce-fips-18.6 | 0 | 18.6.3-r0 |
| Chainguard | gitlab-rails-ce-fips-18.7 | 0 | 18.7.1-r0 |
Related vulnerabilities
- GHSA-hm5p-x4rq-38w4 httparty Has Potential SSRF Vulnerability That Leads to API Key Leakage Same vulnerability
- CVE-2026-1182 GitLab has remediated an issue in GitLab CE/EE affecting all versions from 8.14 before… Also affects gitlab-rails-ce-18.1
- CVE-2026-0595 GitLab has remediated an issue in GitLab CE/EE affecting all versions from 13.9 before… Also affects gitlab-rails-ce-18.1
- CVE-2025-3950 Exposure of Private Personal Information to an Unauthorized Actor in GitLab Also affects gitlab-rails-ce-18.1
- CVE-2025-10569 Allocation of Resources Without Limits or Throttling in GitLab Also affects gitlab-rails-ce-18.1
- CVE-2025-11246 Insufficient Granularity of Access Control in GitLab Also affects gitlab-rails-ce-18.1
- CVE-2025-61594 URI is a module providing classes to handle Uniform Resource Identifiers. Also affects gitlab-rails-ce-18.1
- CVE-2025-12029 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in… Also affects gitlab-rails-ce-18.1