Skip to content

Improperly sanitizied paths cause filesystem escape

High
MCJack123 published GHSA-hr3w-wc83-6923 Aug 16, 2024

Package

CraftOS-PC (Windows)

Affected versions

< v2.8.3

Patched versions

v2.8.3
CraftOS-PC (macOS)
< v2.8.3
v.2.8.3
CraftOS-PC (Launchpad PPA ~jackmacwindows)
< v2.8.3
v2.8.3
CraftOS-PC (Arch Linux AUR)
< v2.8.3
v2.8.3
CraftOS-PC (iOS App Store)
< v2.8.3
v2.8.3
CraftOS-PC (Google Play Store)
< v2.8.3
v2.8.3

Description

Describe the bug
You can escape the computer folder and access files anywhere without permission or notice,
by obfuscating ..s to bypass the internal check preventing parent directory traversal.

To Reproduce
Link: Microsoft - Naming Conventions
You can mix the following reserved characters < > : " | ? (excludes / \ *) into a .. to bypass the check, e.g. <..> or ..|.
Afterwards the reserved characters appear to be silently dropped by the filesystem.

Steps to reproduce the behavior:

  1. Use the emulator
  2. Type cd ..| followed by ls multiple times.
  3. Observe escaping the computer folder.

Expected behavior
For the reserved characters to be filtered out by the fs api before the internal check against ..s, preventing parent directory traversal.

Screenshots

image

Environment

  • OS: Windows 11 Home
  • OS Version: 23H2
  • CraftOS-PC Version: v2.8.2
  • Compiled from source? No

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

CVE ID

CVE-2024-43395

Weaknesses

Credits