Cloudanix VulnDB

CVE-2025-68696

High · 8.2

CVSS

8.2

EPSS

0.3%

Published

Dec 23, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

Some applications using this software could be tricked into fetching private internal resources and exposing secrets that should not be reachable from the internet.

Chainable
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

  1. Find an internet-facing feature that accepts a URL, host, callback, webhook, redirect, or import source.
  2. Submit a crafted URL targeting loopback, private IP ranges, link-local metadata services, or internal DNS names.
  3. Cause the vulnerable application to issue the outbound request through HTTParty.
  4. Collect the response directly, or infer success through errors, timing differences, DNS callbacks, or outbound interaction logs.
  5. Use retrieved metadata, API keys, tokens, or internal service responses to expand access or perform additional unauthorized actions.
  6. 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