Skip to main content

AsyncHttpClient CVE-2026-102740

| EUVDEUVD-2026-102223 MEDIUM
UNIX Symbolic Link (Symlink) Following (CWE-61)
2026-10-15 GitHub_M
5.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain local account on shared host
  2. Delivery
    Pre-plant symlink at $tmpdir/ahc/ResumableAsyncHandler.properties
  3. Exploit
    Victim app saves resumable state via ResumableAsyncHandler
  4. Execution
    Client follows symlink on write
  5. Impact
    Truncate/overwrite target file and read leaked URLs

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling UNIX symlink resolution
Exploitation Conditions

Exploitation requires (1) the application to use ResumableAsyncHandler decorating another AsyncHandler backed by PropertiesBasedResumableProcessor - applications using the no-argument constructors get a no-op processor and are NOT vulnerable; (2) a shared, multi-user filesystem where the attacker is a separate local user who can read the default-permission store (for URL/token disclosure) or write within / pre-create the $java.io.tmpdir/ahc directory (for the symlink overwrite); and (3) the client process actually saving resumable download state so the planted link is followed. Limiting factors: no remote vector (local access mandatory), a low-but-present privilege requirement (a local account), high attack complexity from the needed directory control and timing against the save, dependence on a POSIX shared tmpdir shared across trust boundaries, and affected versions being below 2.16.1 / 3.0.12. Single-user, single-tenant, or container-isolated deployments with no untrusted local users are effectively unexposed.

Impact

This is a moderate, locally-scoped issue rather than a top-tier priority. The supplied CVSS 3.1 vector (AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L, base 5.8) is internally consistent with the description: exploitation requires a local account on a shared multi-user host (AV:L/PR:L), a non-trivial precondition and timing/race against the client's save operation (AC:H), and yields limited confidentiality (C:L - leaked download URLs/tokens) but high integrity impact (I:H - symlink-driven truncate/overwrite of a file writable by the client process). No EPSS score, KEV listing, or public POC was provided, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The combination of local-only vector, high attack complexity, and the requirement that the application actually use the filesystem-backed resumable handler makes this a low-to-moderate real-world risk despite the HIGH integrity sub-score. A dependency significantly narrows exposure: the flaw only applies when ResumableAsyncHandler decorates another AsyncHandler using PropertiesBasedResumableProcessor - the no-argument constructors use a no-op processor and are unaffected - so many deployments pulling in the library are not vulnerable at all. Prioritize patching on shared/multi-tenant hosts; single-tenant or containerized single-user deployments face little practical exposure.

Exploit ScenarioDerived

On a shared multi-user Linux host, a low-privileged local attacker who can write to or pre-create $java.io.tmpdir/ahc plants a symbolic link at ResumableAsyncHandler.properties pointing at a file the victim Java process can write. When the application's ResumableAsyncHandler next saves resumable download state, the client follows the link and truncates/overwrites the target file; the attacker can also simply read the world-readable store to harvest download URLs containing embedded credentials or query tokens. No public exploit code was provided, and the high attack complexity reflects the need for local access and favorable timing against the client's save operation.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Local information disclosure and symlink-following file overwrite in AsyncHttpClient versions 2.0.0 through 2.16.0 and 3.x before 3.0.12 let an authenticated local user on a shared multi-user host read resumable download URLs - including embedded credentials and query tokens - from a predictably named store at $java.io.tmpdir/ahc/ResumableAsyncHandler.properties, or plant a symbolic link that the client follows when saving state, truncating and overwriting any file writable by the client process. Only applications that decorate another AsyncHandler with ResumableAsyncHandler backed by PropertiesBasedResumableProcessor are exposed; the no-argument constructors use a no-op processor and are unaffected. Exploitation requires local access, control of the shared $java.io.tmpdir/ahc directory, and timing against a state save; no public exploit code was identified at time of analysis and there is no KEV confirmation of active exploitation. The issue is fixed in 2.16.1 and 3.0.12.

RemediationAI

Upgrade to a fixed release: AsyncHttpClient 2.16.1 for the 2.x line or 3.0.12 for the 3.x line, per the vendor advisory at https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-cf59-3jcr-vfhw and the corresponding release tags. If an immediate upgrade is not possible, stop using ResumableAsyncHandler with PropertiesBasedResumableProcessor on shared multi-user hosts - the no-argument ResumableAsyncHandler constructors fall back to a no-op processor and are unaffected, though they disable resumable-download state persistence entirely - or supply a custom ResumableProcessor that writes to a per-user directory created with owner-only permissions (0700) and opens files with NOFOLLOW_LINKS and CREATE_NEW semantics to defeat pre-planted links. As a compensating control, restrict $java.io.tmpdir/ahc so it is owned by the service account and inaccessible to other local users (mode 0700 on the directory and 0600 on the properties file); the trade-off is potential breakage if other legitimate processes rely on that path, and the control must be re-applied whenever the directory is recreated. Deploy the client in a single-user container or namespace where no untrusted local account shares the temp directory, which eliminates both the disclosure and symlink-overwrite vectors at the cost of losing the shared-temp execution model. Note that upgrades also require confirming that any custom code depending on the old default path or default permissions is updated, since the fixed versions enforce owner-only POSIX permissions and link-refusing opens that will cause saves to fail rather than follow a re-planted file or symlink.

Affected VersionsENISA

async-http-client 2.0.0, < 2.16.1
async-http-client 3.0.0, < 3.0.12

Affected Packages

euvd async_http_client fix: 2.16.1, 3.0.12

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

AsyncHttpClient is a Java library for executing HTTP requests and asynchronously processing responses; its resumable-download support stores per-URL byte offsets so interrupted transfers can continue. In affected releases, PropertiesBasedResumableProcessor persisted that index at the fixed, world-predictable path $java.io.tmpdir/ahc/ResumableAsyncHandler.properties using default umask permissions and plain java.io.File operations that do not pass LinkOption.NOFOLLOW_LINKS, so reads and writes traverse any symbolic link already present at that path. The root-cause class is CWE-61 (UNIX symbolic link following), compounded by creation of a shared file in a multi-user temp directory with permissive defaults: any local account able to read the file harvests the download URLs (which may carry userinfo or query tokens), and any local account able to write inside or pre-create the $java.io.tmpdir/ahc directory can redirect the save path via a planted link, causing a createNewFile/FileOutputStream-style write to truncate and overwrite a target the client process can write. The upstream fix replaces the path handling with java.nio.file APIs that open with NOFOLLOW_LINKS, create the directory and store with POSIX owner-only permissions (rwx------ and rw------- respectively), and use WRITE plus CREATE_NEW after a deleteIfExists so a re-planted file or link causes failure rather than being written through. The CPE cpe:2.3:a:asynchttpclient:async-http-client:*:*:*:*:*:*:*:* covers the affected Maven artifact org.asynchttpclient:async-http-client across both the 2.x and 3.x release lines below the fixed versions.

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

Vendor (GitHub_M) PRIMARY 5.8 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L
vuln.today AI 5.8 MEDIUM

Local shared-tmpdir vector (AV:L) requiring a local account (PR:L) and favorable timing/directory control (AC:H); limited URL/token disclosure (C:L) but arbitrary writable-file truncation (I:H, A:L).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
High
Availability
Low

Lifecycle Timeline

1
Patch available
Oct 15, 2026 - 19:18 EUVD

DescriptionCVE.org

The AsyncHttpClient library allows Java applications to execute HTTP requests and asynchronously process HTTP responses. From 2.0.0 until 2.16.1 and 3.0.12, PropertiesBasedResumableProcessor stores resumable download state at the predictable shared path $java.io.tmpdir/ahc/ResumableAsyncHandler.properties with default permissions and link-following file operations. A local user who can read the shared store can see download URLs, including embedded user information or query tokens. A local user who can write within or pre-create the affected shared store directory can plant a symbolic link that the client follows when saving state, truncating and overwriting a target file writable by the client process. The filesystem path is used when ResumableAsyncHandler decorates another AsyncHandler, while the no-argument constructors use a no-op processor and are unaffected. This issue is fixed in versions 2.16.1 and 3.0.12.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Medium
popular but declining Java HTTP client library, used as a dependency
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

29
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +29
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

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

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy