/

CVE-2026-109325

Severity:

HIGH RISK

(7.5)

Information Exposure (CWE-200) in Grav Clockwork Profiler

CVE-2026-109325

Deferred

Vulnerability type

Category:

Information Exposure

CWE:

CWE-200

Impact:

Exposure of Sensitive Information

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Grav's Clockwork profiler can be accessed without authentication when it trusts a loopback REMOTE_ADDR value supplied through a same-host HTTP proxy. An attacker who can reach the profiler in this deployment context may read records containing system details, plugin configuration, secrets, request metadata, and database queries.

Grav's Clockwork profiler can be accessed without authentication when it trusts a loopback REMOTE_ADDR value supplied through a same-host HTTP proxy. An attacker who can reach the profiler in this deployment context may read records containing system details, plugin configuration, secrets, request metadata, and database queries.

Affected context

The issue occurs in Grav deployments that enable the Clockwork profiler and determine client locality from request address information that may be influenced or rewritten by a same-host HTTP proxy. It becomes risky when the profiler endpoint is reachable without authentication and its records contain sensitive operational or application data.

The issue occurs in Grav deployments that enable the Clockwork profiler and determine client locality from request address information that may be influenced or rewritten by a same-host HTTP proxy. It becomes risky when the profiler endpoint is reachable without authentication and its records contain sensitive operational or application data.

Exploit preconditions

  • Attack surface: The Clockwork profiler endpoint exposed by a Grav application
  • Required access: Network access to the profiler endpoint; authentication may not be required
  • Deployment condition: Traffic passes through a same-host HTTP proxy or similar component that causes the application to trust a loopback REMOTE_ADDR value
  • Trigger point: A request to retrieve profiler records
  • Why exploitation is possible: Access control relies on an insufficiently trustworthy client-address signal rather than robust authentication and authorization
  • Attack surface: The Clockwork profiler endpoint exposed by a Grav application
  • Required access: Network access to the profiler endpoint; authentication may not be required
  • Deployment condition: Traffic passes through a same-host HTTP proxy or similar component that causes the application to trust a loopback REMOTE_ADDR value
  • Trigger point: A request to retrieve profiler records
  • Why exploitation is possible: Access control relies on an insufficiently trustworthy client-address signal rather than robust authentication and authorization

Why this happens

The vulnerability results from treating a loopback REMOTE_ADDR value as sufficient proof that a request originates from a trusted local client. In deployments involving a same-host proxy, that trust decision can incorrectly classify an unauthenticated request as local and permit access to profiler data. This maps to CWE-200: Exposure of Sensitive Information, because diagnostic records can disclose secrets, configuration, request details, and query data to an unauthorized party.

The vulnerability results from treating a loopback REMOTE_ADDR value as sufficient proof that a request originates from a trusted local client. In deployments involving a same-host proxy, that trust decision can incorrectly classify an unauthenticated request as local and permit access to profiler data. This maps to CWE-200: Exposure of Sensitive Information, because diagnostic records can disclose secrets, configuration, request details, and query data to an unauthorized party.

Potential impact

  • An attacker may obtain application and system configuration details
  • Secrets or sensitive plugin settings could be disclosed
  • Request metadata and database queries may be exposed
  • Exposed information could support further attacks or privilege escalation
  • Operational and application behavior may become easier to profile
  • An attacker may obtain application and system configuration details
  • Secrets or sensitive plugin settings could be disclosed
  • Request metadata and database queries may be exposed
  • Exposed information could support further attacks or privilege escalation
  • Operational and application behavior may become easier to profile

General mitigation guidance

Mitigation generally focuses on treating proxy-provided client-address information as untrusted and protecting diagnostic interfaces independently of network locality.

Common defensive patterns include:

  • Requiring strong authentication and authorization for profiler and debugging endpoints
  • Allowing trusted proxy headers only from explicitly configured proxy identities
  • Keeping diagnostic interfaces disabled or isolated outside controlled development workflows
  • Redacting secrets, tokens, credentials, and sensitive query data from profiler records
  • Restricting profiler access through network policy and least-privilege administrative roles
  • Applying secure-by-default settings that do not expose diagnostic data to unauthenticated clients

Mitigation generally focuses on treating proxy-provided client-address information as untrusted and protecting diagnostic interfaces independently of network locality.

Common defensive patterns include:

  • Requiring strong authentication and authorization for profiler and debugging endpoints
  • Allowing trusted proxy headers only from explicitly configured proxy identities
  • Keeping diagnostic interfaces disabled or isolated outside controlled development workflows
  • Redacting secrets, tokens, credentials, and sensitive query data from profiler records
  • Restricting profiler access through network policy and least-privilege administrative roles
  • Applying secure-by-default settings that do not expose diagnostic data to unauthenticated clients

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static and configuration analysis for profiler endpoints protected only by loopback checks
  • Code review of REMOTE_ADDR, forwarded headers, and trusted-proxy handling
  • Tests that send requests through local proxies and verify authentication remains mandatory
  • Web-server and application logs showing unauthenticated access to diagnostic routes
  • Policy checks that prohibit publicly reachable debugging or profiling interfaces
  • Automated security review tools that flag sensitive data exposure and weak network-based authorization

Organizations can look for this class of issue through:

  • Static and configuration analysis for profiler endpoints protected only by loopback checks
  • Code review of REMOTE_ADDR, forwarded headers, and trusted-proxy handling
  • Tests that send requests through local proxies and verify authentication remains mandatory
  • Web-server and application logs showing unauthenticated access to diagnostic routes
  • Policy checks that prohibit publicly reachable debugging or profiling interfaces
  • Automated security review tools that flag sensitive data exposure and weak network-based authorization

Sources

SourceLink
github.comgithub.com/getgrav/grav/security/advisories/GHSA-v8fx-pc9p-934x
vulncheck.comvulncheck.com/advisories/grav-from-2.0.22-before-2.1.7-clockwork-profiler-authentication-bypass-via-proxy

Frequently asked

questions

It can be remotely exploitable to an attacker who can reach the application through a same-host HTTP proxy or equivalent deployment path that causes the request to appear to originate from loopback.

The described issue permits unauthenticated access to profiler records, but the attacker must still have network reachability to the affected profiler endpoint and the required proxy or address-handling conditions must be present.

Protect profiler endpoints with independent authentication and authorization, and do not treat a loopback address alone as proof of trust.

Keep diagnostic features isolated, configure trusted proxies explicitly, avoid exposing sensitive values in profiling records, and continuously test access controls across proxy and direct-request paths.

It can be remotely exploitable to an attacker who can reach the application through a same-host HTTP proxy or equivalent deployment path that causes the request to appear to originate from loopback.

The described issue permits unauthenticated access to profiler records, but the attacker must still have network reachability to the affected profiler endpoint and the required proxy or address-handling conditions must be present.

Protect profiler endpoints with independent authentication and authorization, and do not treat a loopback address alone as proof of trust.

Keep diagnostic features isolated, configure trusted proxies explicitly, avoid exposing sensitive values in profiling records, and continuously test access controls across proxy and direct-request paths.

Find out what's already
exploitable in your codebase.