Medium severity · published Jul 17, 2026
CVE-2026-48049
@hapi/inert: Static-file confinement bypass via sibling-prefix path
5.3
CVSS
0.6%
EPSS
No
On KEV
Description
@hapi/inert provides static file and directory handlers for hapi.js. From 4.0.0 to 7.1.0, @hapi/inert serves static files from a directory configured with path in the directory or file handlers or relativeTo for h.file(), with confinement enforced by the confine option, but the confinement check compared the resolved absolute path against the confine directory using a raw string-prefix test, so a sibling directory such as /app/static-secret next to /app/static was incorrectly accepted and could allow an unauthenticated remote attacker to read files via /..%2fstatic-secret/secret.txt. This issue is fixed in version 7.1.1.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
Low
Integrity
None
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.6% · higher than 48% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
IN
inert · hapijs
>= 4.0.0, < 7.1.1 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-48049
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-48049
github.com
https://github.com/hapijs/inert/commit/bcceb761a43b9d1178eb6bd553e4ad2bb70494d9
github.com
https://github.com/hapijs/inert/pull/176
github.com
https://github.com/hapijs/inert/releases/tag/v7.1.1
github.com
https://github.com/hapijs/inert/security/advisories/GHSA-rcvq-m9j9-6f4g
