---
id: CVE-2026-48544
title: >-
  Taipy 4.1.1, fixed in commit 129fd40, contains a path traversal vulnerability
  in the ElementLibrary.get_resource() method in taipy/gui/extension/library.py
  that allows unauthenticated attackers to escape the intended module directory
  by …
summary: >-
  Taipy 4.1.1, fixed in commit 129fd40, contains a path traversal vulnerability
  in the ElementLibrary.get_resource() method in taipy/gui/extension/library.py
  that allows unauthenticated attackers to escape the intended module directory
  by …
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-22
vendor: Avaiga
product: taipy
affected:
  - taipy <= 4.1.1
published: '2026-05-27'
updated: '2026-10-08'
sourceUpdated: '2026-10-08T16:17:17.850'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-48544'
references:
  - url: >-
      https://github.com/Avaiga/taipy/commit/129fd407ffca49ee4ab853772c88d0c873e038dd
    label: disclosure@vulncheck.com
  - url: 'https://github.com/Avaiga/taipy/issues/2868'
    label: disclosure@vulncheck.com
  - url: 'https://github.com/Avaiga/taipy/pull/2871'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/taipy-path-traversal-via-elementlibrary-get-resource
    label: disclosure@vulncheck.com
  - url: 'https://github.com/Avaiga/taipy/issues/2868'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-48544'
  - url: 'https://github.com/Avaiga/taipy'
tags:
  - nvd
  - cve.org
  - exploit-available
  - osv
  - pip
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-05-28T15:38:20.951176Z'
epss: 0.0052
epssPercentile: 0.43959
aliases:
  - GHSA-28gh-q3gw-pvx8
ecosystem: pip
ingestedAt: '2026-07-08T18:25:44.185Z'
---

## Overview

Taipy 4.1.1, fixed in commit 129fd40, contains a path traversal vulnerability in the ElementLibrary.get_resource() method in taipy/gui/extension/library.py that allows unauthenticated attackers to escape the intended module directory by exploiting an incomplete path containment check using str.startswith() without a trailing path separator. Attackers can send crafted GET requests with path traversal segments targeting a prefix-matching sibling directory on disk, bypassing the directory containment check because Flask's path converter and Werkzeug's WSGI layer preserve the traversal segments while the resolved path still satisfies the flawed startswith comparison, enabling unauthorized file access outside the intended library directory.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-48544)

Affected packages:

- `taipy <= 4.1.1`

Source: https://osv.dev/vulnerability/GHSA-28gh-q3gw-pvx8
