CVE-2026-111946 in Plack::Middleware::ETaginfo

Summary

by MITRE • 10/20/2026

Plack::Middleware::ETag versions from 0.04 before 0.06 for Perl disclose file inode numbers in the default ETag header.

When the response body is a filehandle and the file_etag option is not set, the ETag is built from the file's inode number, modification time and size. Clients receiving affected responses may use the disclosed inode numbers to aid backend fingerprinting and correlation of files served through different URLs.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 10/20/2026

The vulnerability in Plack::Middleware::ETag versions prior to 0.06 represents a significant information disclosure flaw rooted in the default configuration behavior for generating HTTP ETag headers. When the middleware processes a response body that is delivered via a filehandle, and the application has not explicitly configured the file_etag option, the system defaults to constructing the ETag value using metadata extracted directly from the underlying filesystem object. Specifically, this construction incorporates three distinct attributes: the inode number of the file, its modification timestamp, and its byte size. While the inclusion of modification time and file size is a common practice for cache validation purposes, the inclusion of the Unix inode number introduces unnecessary exposure to sensitive system-level identifiers that are not intended for transmission over network protocols.

The technical flaw lies in the assumption that filesystem metadata such as inode numbers can be safely exposed without compromising security or privacy. Inode numbers serve as unique identifiers for files within a specific file system instance, often correlating directly with internal server architecture and storage layout. By embedding this identifier into an HTTP response header, which is typically visible to any client making the request, including search engines, third-party analytics services, or malicious actors performing reconnaissance, the application inadvertently leaks structural information about the backend environment. This behavior violates the principle of least privilege regarding data exposure, as inode numbers provide no value for cache validation but offer substantial utility for attackers seeking to map server infrastructure.

The operational impact of this vulnerability extends beyond simple metadata leakage, facilitating more sophisticated attack vectors such as backend fingerprinting and file correlation across different URLs. An attacker can leverage the disclosed inode numbers to correlate files that are served through disparate endpoints or URL structures, effectively bypassing any logical separation intended by the application architecture. This capability allows for precise mapping of internal directory structures and file relationships, which aids in identifying sensitive assets such as configuration files, backup archives, or proprietary data stores. Furthermore, consistent inode patterns can help attackers determine if multiple domains or subdomains are hosted on the same physical server or virtual machine instance, thereby narrowing the scope of potential targets and simplifying subsequent exploitation efforts against other services running on that infrastructure.

From a classification perspective, this vulnerability aligns with CWE-200: Information Exposure, as it involves the unintentional disclosure of information to an actor not authorized to access it. It also relates to CWE-538: File and Directory Information Leakage, specifically regarding the exposure of internal file system identifiers that can be used for further reconnaissance. In terms of offensive security frameworks, this flaw supports techniques categorized under ATT&CK T1046: Network Service Discovery, where attackers gather information about network services and their underlying infrastructure to plan targeted attacks. The leakage of inode data essentially provides a unique fingerprint for the server's file system state, which can be used over time to detect changes or identify specific files based on their persistent identifiers within that environment.

Mitigation strategies must focus on either disabling the automatic generation of ETags from filesystem metadata entirely or ensuring that only safe attributes are utilized in the hash calculation. The most direct remediation is to upgrade Plack::Middleware::ETag to version 0.06 or later, where this default behavior has been corrected to prevent inode exposure. For environments unable to immediately update dependencies, developers should explicitly configure the file_etag option within their application code. This configuration allows for the specification of a custom method for generating ETags that excludes sensitive identifiers like inodes, relying instead on content hashes such as MD5 or SHA-1 sums derived solely from the file's actual data payload. Additionally, implementing strict Content Security Policies and reviewing middleware configurations across all Perl-based Plack applications is recommended to ensure no other components are inadvertently exposing similar low-level system details through HTTP headers.

Responsible

CPANSec

Reservation

10/17/2026

Disclosure

10/20/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you need the next level of professionalism?

Upgrade your account now!