Browse / CVEs / CVE-2025-53887
CVE-2025-53887· monospace / directus· CWE-200
Directus < 11.9.0 - Version Disclosure
Directus versions from 9.0.0 before 11.9.0 expose the exact running version through the OpenAPI specification returned by the unauthenticated /server/specs/oas endpoint. The version is placed in the OpenAPI info.version field, letting an unauthenticated attacker fingerprint the precise Directus release. The fix replaces the exact version in that field with a hashed value.
Impact
An unauthenticated attacker can read the exact Directus version and use it to look up known vulnerabilities in that release or its bundled dependencies.
Fix
Upgrade to Directus 11.9.0 or later, where the OpenAPI info.version field no longer contains the exact version.
How to confirm it
Send: GET {{BaseURL}}/server/specs/oas
Positive when: contains "Dynamic API Specification" and "This is a dynamically generated API specification" AND status_code == 200 and compare_versions(version, ">= 9.0.0", "< 11.9.0")Run it with nuclei: nuclei -id CVE-2025-53887 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2025-53887
info:
name: Directus < 11.9.0 - Version Disclosure
author: ChrisJr404
severity: medium
description: |
Directus versions from 9.0.0 before 11.9.0 expose the exact running version through the OpenAPI specification returned by the unauthenticated /server/specs/oas endpoint. The version is placed in the OpenAPI info.version field, letting an unauthenticated attacker fingerprint the precise Directus release. The fix replaces the exact version in that field with a hashed value.
impact: |
An unauthenticated attacker can read the exact Directus version and use it to look up known vulnerabilities in that release or its bundled dependencies.
remediation: |
Upgrade to Directus 11.9.0 or later, where the OpenAPI info.version field no longer contains the exact version.
reference:
- https://github.com/directus/directus/security/advisories/GHSA-rmjh-cf9q-pv7q
- https://github.com/directus/directus/pull/25353
- https://github.com/directus/directus/commit/e74f3e4e92edc33b5f83eefb001a3d2a85af17a3
- https://nvd.nist.gov/vuln/detail/CVE-2025-53887
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2025-53887
epss-score: 0.01019
epss-percentile: 0.63657
cwe-id: CWE-200
metadata:
verified: false
max-request: 1
vendor: monospace
product: directus
shodan-query: 'X-Powered-By: Directus'
fofa-query: 'header="X-Powered-By: Directus"'
tags: cve,cve2025,directus,exposure,disclosure,vuln
http:
- method: GET
path:
- "{{BaseURL}}/server/specs/oas"
matchers-condition: and
matchers:
- type: word
part: body
words:
- "Dynamic API Specification"
- "This is a dynamically generated API specification"
condition: and
- type: dsl
dsl:
- 'status_code == 200'
- 'compare_versions(version, ">= 9.0.0", "< 11.9.0")'
condition: and
extractors:
- type: regex
name: version
group: 1
regex:
- 'dynamically generated API specification for all endpoints existing on the current project\.",\s*"version":\s*"([0-9]+\.[0-9]+\.[0-9]+)"'References
- https://github.com/directus/directus/security/advisories/GHSA-rmjh-cf9q-pv7q
- https://github.com/directus/directus/pull/25353
- https://github.com/directus/directus/commit/e74f3e4e92edc33b5f83eefb001a3d2a85af17a3
- https://nvd.nist.gov/vuln/detail/CVE-2025-53887
Use this check only on systems you are authorised to test. Where the data comes from