Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as ROLE_USER on Stirling-PDF instance
-
DeliverySubmit crafted pipeline request to /api/v1/pipeline/handleData
-
ExploitTrigger INTERNAL_API_USER key injection into subrequest
-
ExecutionRetrieve injected key via /api/v1/user/get-api-key
-
PersistAuthenticate as internal service account
-
ImpactQuery privileged monitoring endpoints /api/v1/info/requests/all and /api/v1/info/load/all
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an active, authenticated ROLE_USER account on the target Stirling-PDF instance (CVSS PR:L confirms authentication is mandatory - unauthenticated exploitation is not possible). The /api/v1/pipeline/handleData endpoint must be reachable by the user, which is the default configuration for any Stirling-PDF deployment using the pipeline feature. The STIRLING-PDF-BACKEND-API-USER internal service account must have an API key provisioned, which is standard in pipeline-enabled deployments. Exploitation is strictly bounded to instances running versions prior to 2.9.0. Limiting factors include: the requirement for a valid user account (no anonymous exploitation), the self-hosted nature of Stirling-PDF (attacker must know or reach the specific instance URL), and the absence of external system compromise - impact is confined to the Stirling-PDF instance itself. Single-user deployments have no meaningful incremental risk since the escalating credential provides no access beyond what the sole operator already possesses. |
| Impact | The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N scores 8.5 and accurately reflects the attack profile: network-reachable, low complexity, requiring only a standard user account, with a scope change to the privileged internal service account context and high confidentiality impact from API key disclosure and sensitive endpoint access. The Scope:Changed designation is well-justified - a ROLE_USER credential escalates to the INTERNAL_API_USER tier, crossing a security boundary within the application. Real-world risk is context-dependent: in single-user or small-team deployments where all ROLE_USER accounts are trusted, the incremental risk is low since no external system compromise occurs. Multi-tenant or shared-instance deployments where ROLE_USER accounts belong to semi-trusted parties represent the genuine risk scenario. EPSS score is not available in the provided intelligence, so exploitation probability cannot be quantified. No CISA KEV listing and no public POC have been identified, meaningfully reducing urgency compared to the raw CVSS score. The I:L component reflects rate-limit bypass and service account impersonation rather than direct data modification, which is a realistic but limited integrity concern. No availability impact is present. |
| Exploit ScenarioDerived | An authenticated ROLE_USER on a shared Stirling-PDF instance submits a crafted pipeline request to /api/v1/pipeline/handleData, causing the server to inject the STIRLING-PDF-BACKEND-API-USER API key into the subrequest context; the attacker then calls /api/v1/user/get-api-key to retrieve that key. Using the recovered key, the attacker re-authenticates as the internal service account and queries /api/v1/info/requests/all to enumerate all other users' request histories and /api/v1/info/load/all for system telemetry, while also bypassing per-user rate limits for bulk PDF processing abuse. No public exploit code has been identified, but the attack requires only standard HTTP requests and knowledge of the documented API surface. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
Privilege escalation in Stirling-PDF before 2.9.0 allows any authenticated ROLE_USER to obtain the privileged STIRLING-PDF-BACKEND-API-USER internal service account API key through the pipeline subrequest mechanism, then impersonate that account to bypass rate limits and query sensitive monitoring endpoints such as /api/v1/info/requests/all and /api/v1/info/load/all. The root cause is PipelineProcessor.java injecting the static internal service account key into pipeline subrequests rather than the requesting user's own key, making it retrievable via /api/v1/user/get-api-key. No public exploit or CISA KEV listing exists at time of analysis; vendor-released patch v2.9.0 resolves the issue.
RemediationAI
Upgrade Stirling-PDF to version 2.9.0 or later, available at https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v2.9.0 and confirmed by the vendor advisory GHSA-3xxh-mm3g-c9w5. The patch (PR #6047, commit de9625942bbc329fdefcfde161476a633a3b3213) replaces the injected INTERNAL_API_USER key with the calling user's own key and enforces a path-prefix allowlist on pipeline subrequests. If immediate upgrade is not feasible, restrict access to /api/v1/pipeline/handleData at the reverse-proxy or network layer to only the most trusted users, accepting that pipeline functionality becomes unavailable to general users as a trade-off. Operators should also rotate the STIRLING-PDF-BACKEND-API-USER API key immediately in any instance where untrusted ROLE_USER accounts existed before 2.9.0, treating the key as potentially compromised; failure to rotate means the old key remains exploitable even after patching if it was previously exfiltrated.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Stirling-PDF is a self-hosted Java Spring Boot web application (CPE: cpe:2.3:a:stirling-tools:stirling-pdf:*:*:*:*:*:*:*:*) that orchestrates multi-step PDF processing pipelines. The vulnerable component is PipelineProcessor.java, which builds HTTP subrequests to internal API endpoints on behalf of the user. Prior to 2.9.0, these subrequests were authenticated using getApiKeyForUser(Role.INTERNAL_API_USER.getRoleId()) - the static privileged backend key - rather than the calling user's own key. Because the injected key flows through a context accessible via /api/v1/user/get-api-key, any ROLE_USER triggering a pipeline operation could retrieve it. CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) is the root cause class: an internal credential scoped to elevated backend operations was inadvertently exposed to a lower-privileged security principal. The absence of a URL allowlist further allowed pipeline subrequests to target administrative information endpoints outside the intended PDF-processing surface. The fix (PR #6047) addresses both issues: replacing the injected key with getCurrentUserApiKey() and adding a strict path-prefix allowlist restricting pipeline targets to /api/v1/general/, /api/v1/misc/, /api/v1/security/, /api/v1/convert/, and /api/v1/filter/.
Know when Java gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
PR:L because a valid ROLE_USER account is required; S:C because exploitation crosses from user context into privileged internal service account; C:H from API key disclosure and sensitive endpoint access; I:L from rate-limit bypass and impersonation; A:N as no availability impact is described.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Stirling-PDF is a locally hosted web application that facilitates various operations on PDF files. Prior to 2.9.0, the /api/v1/pipeline/handleData endpoint in app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineProcessor.java injects the STIRLING-PDF-BACKEND-API-USER API key into pipeline subrequests, allowing an authenticated ROLE_USER to retrieve the key through /api/v1/user/get-api-key, impersonate the internal service account, bypass normal rate limits, and access internal endpoints including /api/v1/info/requests/all and /api/v1/info/load/all. This issue is fixed in version 2.9.0.
Executive ViewAI
Stirling-PDF versions before 2.9.0 contain a privilege escalation vulnerability (CVSS 8.5) allowing authenticated users to impersonate a privileged internal system account, with no public exploit identified at time of analysis. This enables bypass of API security controls and access to confidential operational metrics. Organizations using this product must patch immediately to v2.9.0 to restore secure API operations.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-60364
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB